1.我們在程序中經(jīng)常使用“System.out.println()”來輸出信息便脊,System是java.lang包下的一個類奄毡,out為System的final靜態(tài)成員(PrintStream類型),println()是PrintStream類的實(shí)例方法第岖。
2.String str1 = “abc”金蜀,“abc”分配在內(nèi)存哪個區(qū)域?(字符串常量區(qū))
棧:存放基本類型的數(shù)據(jù)和對象的引用茁裙,但對象本身不存放在棧中,而是存放在堆中
堆:存放用new產(chǎn)生的數(shù)據(jù)
靜態(tài)域:存放在對象中用static定義的靜態(tài)成員
常量池:存放常量
非RAM存儲:硬盤等永久存儲空間
3.以下程序運(yùn)行的結(jié)果為(run main)
public class Example extends Thread{
@Override
public void run(){
try{
Thread.sleep(1000);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.print("run");
}
public static void main(String[] args){
Example example=new Example();
example.run();
System.out.print("main");
}
}
4.下面哪種情況會導(dǎo)致持久區(qū)jvm堆內(nèi)存溢出节仿?(使用CGLib技術(shù)直接操作字節(jié)碼運(yùn)行晤锥,生成大量的動態(tài)類)
http://blog.csdn.net/sivyer123/article/details/17139443
簡單的來說 java的堆內(nèi)存分為兩塊:permantspace(持久帶) 和 heap space。
持久帶中主要存放用于存放靜態(tài)類型數(shù)據(jù),如 Java Class, Method 等矾瘾, 與垃圾收集器要收集的Java對象關(guān)系不大女轿。
而heapspace分為年輕帶和年老帶
年輕代的垃圾回收叫 Young GC, 年老代的垃圾回收叫 Full GC壕翩。
在年輕代中經(jīng)歷了N次(可配置)垃圾回收后仍然存活的對象蛉迹,就會被復(fù)制到年老代中。因此放妈,可以認(rèn)為年老代中存放的都是一些生命周期較長的對象
年老代溢出原因有 循環(huán)上萬次的字符串處理北救、創(chuàng)建上千萬個對象、在一段代碼內(nèi)申請上百M(fèi)甚至上G的內(nèi)存芜抒,既A B D選項
持久代溢出原因 動態(tài)加載了大量Java類而導(dǎo)致溢出珍策。
5.通過Intent傳遞一些二進(jìn)制數(shù)據(jù)的方法有哪些?
A宅倒、使用Serializable接口實(shí)現(xiàn)序列化攘宙,這是java常用的方法
B、實(shí)現(xiàn)Parcelable接口拐迁,這里Andriod的部分分類比如Bitmap類就已經(jīng)實(shí)現(xiàn)了模聋,同時Parcelable在Android AIDL中交換數(shù)據(jù)也很常見
6.ScrollView可以有幾個直接的子控件?(1個)
7.關(guān)于Message唠亚、Handler、Message Queue持痰、Looper以下描述:
A.Message消息灶搜,理解為線程間交流的信息,處理數(shù)據(jù)后臺線程需要更新UI工窍,則發(fā)送Message內(nèi)含一些數(shù)據(jù)給UI線程割卖。
B.Handler處理者,是Message的主要處理者患雏,負(fù)責(zé)Message的發(fā)送鹏溯,Message內(nèi)容的執(zhí)行處理。
C.Message Queue消息隊列淹仑,用來存放通過Handler發(fā)布的消息丙挽,按照先進(jìn)先出執(zhí)行。
D.Looper是每條線程里的Message Queue的管家匀借。
8.service的生命周期:
9.ANR產(chǎn)生時, 系統(tǒng)會生成一個跟蹤日志文件颜阐,文件是(data/anr/traces.txt)
10.使用AIDL完成遠(yuǎn)程service方法調(diào)用下列說法正確的是:
aidl對應(yīng)的接口名稱不能與aidl文件名相同。
aidl的文件的內(nèi)容類似java代碼
創(chuàng)建一個Service(服務(wù))吓肋,在服務(wù)的onBind(Intent intent)方法中返回實(shí)現(xiàn)了aidl接口的對象凳怨。
aidl對應(yīng)的接口的方法前面不能加訪問權(quán)限修飾符。
11.在 Android 中, 在屏幕密度為160時肤舞, 1pt 大概等于_2.22_sp
12.哪些方法可用于顯示指定目標(biāo)組件紫新?
setComponent()、setClass()李剖、setClassName()
13.下列哪些情況下芒率,系統(tǒng)可能會彈出ANR對話框?
在Activity中杖爽,Main線程消息隊列中的消息在5秒內(nèi)沒有得到響應(yīng)敲董。
在BroadcastReceiver中,onReceive()方法執(zhí)行時間超過10秒慰安。
在Android上腋寨,如果你的應(yīng)用程序有一段時間響應(yīng)不夠靈敏,系統(tǒng)會向用戶顯示一個對話框化焕,這個對話框稱作應(yīng)用程序無響應(yīng)(ANR:Application Not Responding)對話框萄窜。用戶可以選擇“等待”而讓程序繼續(xù)運(yùn)行,也可以選擇“強(qiáng)制關(guān)閉”撒桨。
默認(rèn)情況下查刻,在android中Activity的最長執(zhí)行時間是5秒,BroadcastReceiver的最長執(zhí)行時間則是10秒凤类。超出就會提示應(yīng)用程序無響應(yīng)(ANR:Application Not Responding)對話框穗泵。
三種常見類型:
1: KeyDispatchTimeout(5 seconds) -- 主要類型
按鍵或觸摸事件在特定時間內(nèi)無響應(yīng)
2 : BroadcastTimeout(10 seconds)
BroadcastReceiver在特定時間內(nèi)無法處理完成
3: ServiceTimeout(20 seconds) -- 小概率類型
Service在特定的時間內(nèi)無法處理完成
Activity----->5秒
Broadcast----->10秒
Service----->20秒
會報ANR,都是在主線程中運(yùn)行的
14.Activity生命周期事件回調(diào)函數(shù)的說法正確的是
onCreate()方法在Activity第一次被創(chuàng)建時調(diào)用谜疤。
onStop()方法在Activity對用戶不可見時調(diào)用佃延。
15.Intent傳遞數(shù)據(jù)時,下列的數(shù)據(jù)類型哪些可以被傳遞夷磕?
Serializable履肃、CharSequence、Parcelable坐桩、Bundle