android面試問題
android面試問題你了解了嗎?面試做好準備對于面試取得成功有很大的幫助,以下是小編幫你們整理的android面試問題,一起來學習啦。
android面試問題篇一
1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制?
可以有多個類,但只能有一個public的類,并且public的類名必須與文件名相一致。
2、Java有沒有goto?
java中的保留字,現在沒有在java中使用。
3、說說&和&&的區別。
&和&&都可以用作邏輯與的運算符,表示邏輯與(and),當運算符兩邊的表達式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。
&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對于if(str != null && !str.equals(“”))表達式,當str為null時,后面的表達式不會執行,所以不會出現NullPointerException如果將&&改為&,則會拋出NullPointerException異常。If(x==33 & ++y>0) y會增長,If(x==33 && ++y>0)不會增長
&還可以用作位運算符,當&操作符兩邊的表達式不是boolean類型時,&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。
備注:這道題先說兩者的共同點,再說出&&和&的特殊之處,并列舉一些經典的例子來表明自己理解透徹深入、實際經驗豐富。
4、在JAVA中如何跳出當前的多重嵌套循環?
在Java中,要想跳出多重循環,可以在外面的循環語句前定義一個標號,然后在里層循環體的代碼中使用帶有標號的break 語句,即可跳出外層循環。例如,
ok:
for(int i=0;i<10;i++)
{
} for(int j=0;j<10;j++) { } System.out.println(“i=” + i + “,j=” + j); if(j == 5) break ok;
另外,我個人通常并不使用標號這種方式,而是讓外層的循環條件表達式的結果可以受到里層循環體代碼的控制,例如,要 int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i
{
} for(int j=0;j
5、switch語句能否作用在byte上,能否作用在long上,能否作用在String上?
在switch(expr1)中,expr1只能是一個整數表達式或者枚舉常量(更大字體),整數表達式可以是int基本類型或Integer包裝類型,由于,byte,short,char都可以隱含轉換為int,所以,這些類型以及這些類型的包裝類型也是可以的。顯然,long和String類型都不符合switch的語法規定,并且不能被隱式轉換成int類型,所以,它們不能作用于swtich語句中。
6、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
對于short s1 = 1; s1 = s1 + 1; 由于s1+1運算時會自動提升表達式的類型,所以結果是int型,再賦值給short類型s1時,編譯器將報告需要強制轉換類型的錯誤。
對于short s1 = 1; s1 += 1;由于 += 是java語言規定的運算符,java編譯器會對它進行特殊處理,因此可以正確編譯。
android面試問題篇二
1、char型變量中能不能存貯一個中文漢字?為什么?
char型變量是用來存儲Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以,char型變量中當然可以存儲漢字啦。不過,如果某個特殊的漢字沒有被包含在unicode編碼字符集中,那么,這個char型變量中就不能存儲這個特殊漢字。補充說明:unicode編碼占用兩個字節,所以,char類型的變量也是占用兩個字節。
備注:后面一部分回答雖然不是在正面回答題目,但是,為了展現自己的學識和表現自己對問題理解的透徹深入,可以回答一些相關的知識,做到知無不言,言無不盡。
2、用最有效率的方法算出2乘以8等於幾?
2 << 3,
因為將一個數左移n位,就相當于乘以了2的n次方,那么,一個數乘以8只要將其左移3位即可,而位運算cpu直接支持的,效率最高,所以,2乘以8等於幾的最效率的方法是2 << 3。
3. 有一個一維整型數組int[] data保存的是一張寬為width,高為height的圖片像素值信息。請寫一個算法,將該圖片所有的白色不透明(0xffffffff)像素點的透明度調整為50%。
答:像素數組int[]data里就是一個個像素的顏色值,你循環和0xffffffff比較,如果相等,那么就把這個值換成0x88ffffff就行了,這樣像素數組里所有的白色不透明(0xffffffff)都變成的半透明
4. 你如何評價Android系統?優缺點。
優點:開源特性,得到眾多廠商支持。
軟件發展很快。
界面UI,系統優化不錯。
缺點:版本過多,升級過快。
用戶體驗不一致。
5. android中的動畫有哪幾類,他們的特點和區別是什么?
兩種,
一種是Tween動畫(補間動畫),
一種是Frame動畫(逐幀動畫)。
Tween動畫:使試圖組件移動,放大,縮小以及產生透明度的變化。
Frame動畫:傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影。
android面試問題篇三
1. 請描述下Activity的聲明周期。
onCreate->onStart->onRemuse->onPause->onStop->onRestart->onDestroy
2. 如果后臺的Activity由于某種原因被系統回收,如何在回收之前保存當前狀態。
onSaveInstanceState().
程序中的某一個Activity A 在運行時,主動或被動的運行另一個新的Activity B,這個時候A會執行onSaveInstanceState()。B完成以后又回來找A,這個時候有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調用onCreate()方法,不同于直接啟動的是這回onCreate()里是帶上了參數savedInstanceState;而沒被回收的就直接執行onResume(),跳過onCreate()。
3. 如何將一個Activity設置成窗口樣式。
在AndroidManifext.xml中Activity定義處添加
android:theme="@android:style/Theme.Dialog" 或
android:theme="@android:style/Theme.Translucent"。
4. 如何退出Activity?如何安全退出已調用多個Activity的Application?
1.Activity.finish();也可以用killProcess()和System.exit()這樣的方法
2.用ActivityManager的restartPackage方法
5. 請介紹下android大眾常用的五種布局。
FrameLayout(框架布局)
只可以有一個控件,并且不能設計這個控件的位置,控件會放在左上角
LinearLayout(線性布局)
一行只能控制一個控件的線性布局,所以當有很多控件需要在一個界面中列出時,可以用LinearLayout布局
AbsoluteLayout(絕對布局)
可以放置多個控件,并且可以自己定義控件的x,y的位置
RelativeLayout(相對布局)
比如要在一行上顯示多個控件,這時就要用到相對布局
TableLayout(表格布局)
將子元素的位置分配到行或列中,一個TableLayout由許多的TableRow組成
看了“android面試問題”的人還看過:
1.
2.
3.
4.
5.