轉(zhuǎn)載請注明出處:http://www.reibang.com/p/1029c75348a9
一、選擇題
1. 下列代碼的執(zhí)行結(jié)果是:( B )
public class Test3{
public static void main(String args[]){
System.out.print(100%3);
System.out.print(",");
System.out.println(100%3.0);
}
}
A芝囤、1,1
B、1悯姊,1.0
C名党、1.0,1
D挠轴、1.0传睹,1.0
2. 下列哪些語句關(guān)于內(nèi)存回收的說明是正確的? ( B )
A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存
B岸晦、內(nèi)存回收程序負責釋放無用內(nèi)存
C欧啤、內(nèi)存回收程序允許程序員直接釋放內(nèi)存
D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象
3. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少( C ).
A启上、11 邢隧,-11
B、11 冈在,-12
C倒慧、12 ,-11
D包券、12 纫谅,-12
4. 下面不是Android四大組件之一的:( B )
A、Activity
B溅固、Intent
C付秕、Service
D、ContentProvider
5. android 中下列屬于Intent的作用的是( C )
A侍郭、實現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享
B询吴、是一段長的生命周期,沒有用戶界面的程序亮元,可以保持應(yīng)用在后臺運行猛计,而不會因為切換頁面而消失
C、可以實現(xiàn)界面間的切換爆捞,可以包含動作和動作數(shù)據(jù)奉瘤,連接四大組件的紐帶
D、處理一個應(yīng)用程序整體性的工作
6. 下面關(guān)于BroadcastReceiver錯誤的是 ( B )
A嵌削、BroadcastReceiver有兩種注冊方式毛好,靜態(tài)注冊和動態(tài)注冊。
B苛秕、BroadcastReceiver必須在AndroidMainfest文件中聲明
C肌访、BroadcastReceiver的使用,一定有一方發(fā)送廣播艇劫,有一方監(jiān)聽注冊廣播,onReceive方法才會被調(diào)用吼驶。
D、廣播發(fā)送的Intent都是隱式啟動。
7. 在手機開發(fā)中常用的數(shù)據(jù)庫是( A )
A蟹演、SQLite3
B风钻、Oracle
C、Sql Server
D酒请、Db23
8. Service中如何實現(xiàn)更改Activity界面元素 ( B )
A骡技、通過把當前activity對象傳遞給service對象
B、通過向Activity發(fā)送廣播
C羞反、通過Context對象更改Activity界面元素
D布朦、可以在Service中,調(diào)用Activity的方法實現(xiàn)更改界面元素
9. 關(guān)于ContenValues類說法正確的是( A )
A昼窗、他和Hashtable比較類似是趴,也是負責存儲一些名值對,但是他存儲的名值對當中的 名是String類型澄惊,而值都是基本類型
B唆途、他和Hashtable比較類似,也是負責存儲一些名值對掸驱,但是他存儲的名值對當中的 名是任意類型肛搬,而值都是基本類型
C、他和Hashtable比較類似亭敢,也是負責存儲一些名值對滚婉,但是他存儲的名值對當中的 名,可以為空帅刀,而值都是String類型
D、他和Hashtable比較類似远剩,也是負責存儲一些名值對扣溺,但是他存儲的名值對當中 的名是String類型,而值也是String類型
10. 下面關(guān)于Android dvm的進程和Linux的進程瓜晤,應(yīng)用程序的進程說法正確的是( D )
A锥余、DVM指dalivk的虛擬機.每一個Android應(yīng)用程序都在它自己的進程中運行,不一定擁有一個獨立的Dalvik虛擬機實例.而每一個DVM都是在Linux 中的一個進程痢掠,所以說可以認為是同一個概念.
B驱犹、DVM指dalivk的虛擬機.每一個Android應(yīng)用程序都在它自己的進程中運行,不一定擁有一個獨立的Dalvik虛擬機實例.而每一個DVM不一定都是在Linux 中的一個進程足画,所以說不是一個概念.
C雄驹、DVM指dalivk的虛擬機.每一個Android應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例.而每一個DVM不一定都是在Linux 中的一個進程淹辞,所以說不是一個概念.
D医舆、DVM指dalivk的虛擬機.每一個Android應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例.而每一個DVM都是在Linux 中的一個進程,所以說可以認為是同一個概念.
11. 下列對SharedPreferences存蔬将、取文件的說法中不正確的是( C )
A爷速、屬于移動存儲解決方案
B、sharePreferences處理的就是key-value對
C霞怀、讀取xml文件的路徑是/sdcard/shared_prefs/
D惫东、數(shù)據(jù)的保存格式是xml
12. 使用AIDL 完成遠程 service 方法調(diào)用下列說法不正確的是?( A )
A毙石、aidl 對應(yīng)的接口名稱不能與 aidl 文件名相同
B凿蒜、aidl 的文件的內(nèi)容類似 java 代碼
C、創(chuàng)建一個 Service胁黑,在服務(wù)的 onBind(Intent intent)方法中返回實現(xiàn)了 aidl 接口的對象
D废封、aidl 對應(yīng)的接口的方法前面不能加訪問權(quán)限修飾符
13. 關(guān)于JSON和XML說法,錯誤的是( B )
A丧蘸、JSON的速度要遠遠快于XML
B漂洋、JSON對數(shù)據(jù)的描述性比XML好
C、JSON相對于XML來講力喷,數(shù)據(jù)的體積小
D刽漂、JSON和XML同樣擁有豐富的解析手段
14. 下列不屬于補間動畫相關(guān)類的是( B )
A、TranslateAnimation
B弟孟、FrameAnimation
C贝咙、RotateAnimation
D、AlphaAnimation
15. 關(guān)于Handler的說法不正確的是( A )
A拂募、它實現(xiàn)不同進程間通信的一種機制
B庭猩、它避免了在新線程中刷新UI的操作
C、它采用隊列的方式來存儲Message
D陈症、它實現(xiàn)不同線程間通信的一種機制
二蔼水、填空題
1. java.io包中的____________和____________類主要用于對對象(Object)的讀寫。
答案:ObjectInputStream ObjectOutputSteam
2. android 中service的實現(xiàn)方法是:____________和_____________录肯。
答案:startService 趴腋,bindService
3. 當啟動一個Activity并且新的Activity執(zhí)行完后需要返回到啟動它的Activity來執(zhí)行的回調(diào)函數(shù)是_______________。
答案:startActivityResult()
4. 程序運行的結(jié)果是:______________论咏。
public class Example{
String str=new String("good");
char[]ch={'a'优炬,'b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str厅贪,ex.ch);
System.out.print(ex.str+" and ");
Sytem.out.print(ex.ch);
}
public void change(String str蠢护,char ch[]){
str="test ok";
ch[0]='g';
}
}
答案:good and gbc
三、簡答編程題
1. 請簡述下Android的數(shù)據(jù)存儲方式卦溢。
答:共有五種數(shù)據(jù)存儲方式糊余。
1.SharedPreferences方式
2.文件存儲方式
3.SQLite數(shù)據(jù)庫方式
4.內(nèi)容提供器(Content provider)方式
- 網(wǎng)絡(luò)存儲方式
2. 請簡述下ContentProvider是如何實現(xiàn)數(shù)據(jù)共享的秀又。
答:創(chuàng)建一個屬于你自己的Content provider或者將你的數(shù)據(jù)添加到一個已經(jīng)存在的Content provider中,前提是有相同數(shù)據(jù)類型并且有寫入Content provider的權(quán)限贬芥。
3. 什么是Intent吐辙,如何使用?
答: Android基本的設(shè)計理念是鼓勵減少組件間的耦合蘸劈,因此Android提供了Intent (意圖) 昏苏,Intent提供了一種通用的消息系統(tǒng),它允許在你的應(yīng)用程序與其它的應(yīng)用程序間傳遞Intent來執(zhí)行動作和產(chǎn)生事件威沫。使用Intent可以激活A(yù)ndroid應(yīng)用的三個核心組件:活動贤惯、服務(wù)和廣播接收器。
通過startActivity() orstartActivityForResult()啟動一個Activity棒掠;
通過 startService() 啟動一個服務(wù)孵构,或者通過bindService() 和后臺服務(wù)交互;
通過廣播方法(比如 sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcast())發(fā)給broadcast receivers
4. Activity烟很、Service颈墅、BroadcastReceiver的作用。
答:Activity:Activity是Android程序與用戶交互的窗口雾袱,是Android構(gòu)造塊中最基本的一種恤筛,它需要為保持各界面的狀態(tài),做很多持久化的事情芹橡,妥善管理生命周期以及一些跳轉(zhuǎn)邏輯
Service:后臺服務(wù)于Activity毒坛,封裝有一個完整的功能邏輯實現(xiàn),接受上層指令林说,完成相關(guān)的指令煎殷,定義好需要接受的Intent提供同步和異步的接口
BroadCast Receiver:接受一種或者多種Intent作觸發(fā)事件,接受相關(guān)消息述么,做一些簡單處理蝌数,轉(zhuǎn)換成一條Notification,統(tǒng)一了Android的事件廣播模型
5. 橫豎屏切換時Activity的生命周期
答:切換時的生命周期跟清單文件里的配置有關(guān)系度秘。
不設(shè)置Activity的android:configChanges時,切屏會重新調(diào)用各個生命周期默認首先銷毀當前activity,然后重新加載
設(shè)置Activity android:configChanges="orientation|keyboardHidden|screenSize"時饵撑,切屏不會重新調(diào)用各個生命周期剑梳,只會執(zhí)行onConfigurationChanged方法。 通常在游戲開發(fā), 屏幕的朝向都是寫死的滑潘。
6. handler機制的原理
答:andriod提供了 Handler 和 Looper 來滿足線程間的通信垢乙。Handler 先進先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)语卤。
1)Looper: 一個線程可以產(chǎn)生一個Looper對象追逮,由它來管理此線程里的Message Queue(消息隊列)酪刀。
2)Handler: 你可以構(gòu)造Handler對象來與Looper溝通,以便push新消息到Message Queue里;或者接收Looper從Message Queue取出)所送來的消息钮孵。
- Message Queue(消息隊列):用來存放線程放入的消息骂倘。
4)線程:UI thread 通常就是main thread,而Android啟動程序時會替它建立一個Message Queue巴席。