android面試題練習(xí)
做一些android面試練習(xí)題對于安卓面試者來說很有必要,那么你了解哪些面試練習(xí)題了嗎?以下是小編幫你們整理的android面試題練習(xí),一起來學(xué)習(xí)啦。
選擇題
1.java.io包中定義了多個流類型來實現(xiàn)輸入和輸出功能,可以從不同的角度對其進(jìn)行分 類,按功能分為:(c),如果為讀取的內(nèi)容進(jìn)行處理后再輸出,需要使用下列哪種流?(g)
A、輸入流和輸出流 B、字節(jié)流和字符流 C、節(jié)點流和處理流
D、File stream E、Pipe stream F、Random stream G、Filter stream
2.下列代碼的執(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
3.在繼承中,關(guān)于構(gòu)造方法的說明,下列說法錯誤的是(d)
A、子類無條件的繼承父類的無參構(gòu)造方法,
B、子類可以引用父類中的有參構(gòu)造方法,使用super關(guān)鍵字,
C、如果子類沒有構(gòu)造方法,則父類無參構(gòu)造方法作為自已的構(gòu)造方法,
D、如果子類有無參構(gòu)造方法,而父類的無參構(gòu)造方法則被覆蓋。
4.以下程序的運(yùn)行結(jié)果為( b)
public class IfTest{
public static void main(String args[]){
int x=3;
int y=1;
if(x==y)
System.out.println("Not equal");
else
System.out.println("Equal");
}
}
A、Not equal B、Equal C、無輸出 D、編譯出錯
5.Java語言中字符串“學(xué)Java”所占的內(nèi)存空間是(a)
A. 6個字節(jié)
B. 7個字節(jié)
C. 10個字節(jié)
D. 11個字節(jié)
6.關(guān)于下列程序段的輸出結(jié)果,說法正確的是:(d )
public class MyClass{
static int i;
public static void main(String argv[]){
System.out.println(i);
}
}
A、有錯誤,變量i沒有初始化。
B、null
C、1
D、0
7.下列哪些語句關(guān)于內(nèi)存回收的說明是正確的? (b )
A、 程序員必須創(chuàng)建一個線程來釋放內(nèi)存
B、 內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存
C、 內(nèi)存回收程序允許程序員直接釋放內(nèi)存
D、 內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象
8.下面異常是屬于Runtime Exception 的是(abcd)(多選)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
9. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c
A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12
10.下列程序段的輸出結(jié)果是:(b )
void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;
System.out.println(b);
}
A、true B、false C、1 D、0
11.activity對一些資源以及狀態(tài)的操作保存,最好是保存在生命周期的哪個函數(shù)中進(jìn)行(d)
A、onPause() B、onCreate() C、 onResume() D、onStart()
12.Intent傳遞數(shù)據(jù)時,下列的數(shù)據(jù)類型哪些可以被傳遞(abcd)(多選)
A、Serializable B、charsequence C、Parcelable D、Bundle
13.android 中下列屬于Intent的作用的是(c)
A、實現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享
B、是一段長的生命周期,沒有用戶界面的程序,可以保持應(yīng)用在后臺運(yùn)行,而不會因為切換頁面而消失
C、可以實現(xiàn)界面間的切換,可以包含動作和動作數(shù)據(jù),連接四大組件的紐帶
D、處理一個應(yīng)用程序整體性的工作
14.下列屬于SAX解析xml文件的優(yōu)點的是(b)
A、將整個文檔樹在內(nèi)存中,便于操作,支持刪除,修改,重新排列等多種功能
B、不用事先調(diào)入整個文檔,占用資源少
填空題
1.我們用___int____來定義一個整數(shù),用___char____來定義一個字符類型,稱為原始數(shù)據(jù)類型。
2.android中常用的四個布局是framlayout,linenarlayout,relativelayout和tablelayout。 3.android 的四大組件是activiey,service,broadcast和contentprovide。
4.java.io包中的objectinputstream和objectoutputstream類主要用于對對象(Object)的讀寫。
5.android 中service的實現(xiàn)方法是:startservice和bindservice。
6.activity一般會重載
7個方法用來維護(hù)其生命周期,除了onCreate(),onStart(),onDestory()外還有onrestart,onresume,onpause,onstop。
8.當(dāng)啟動一個Activity并且新的Activity執(zhí)行完后需要返回到啟動它的Activity來執(zhí)行 的回調(diào)函數(shù)是startActivityResult()。
9.請使用命令行的方式創(chuàng)建一個名字為myAvd,sdk版本為2.2,sd卡是在d盤的根目錄下, 名字為scard.img, 并指定屏幕大小HVGA.____________________________________。 10.程序運(yùn)行的結(jié)果是:_____good and gbc__________。
參考答案
1. int char
2.FrameLayout,LilnearLayout,RelativeLayout,TableLayout
3.Activity,Broadcast,Service,ContentProvide
4.ObjectInputStream ObjectOutputSteam
5.startService ,bindService
6.onRestart(),onResume(),onPause(),onStop()
7.SharedPreferences存儲,文件存儲,SQLite存儲,ContentProvider,網(wǎng)絡(luò)存儲
8.startActivityResult()
9.adnroid create acd -n myAvd -t 8 -s HVDA - C d:\card.img 10.good and gbc
簡答編程題
1.在android中,請簡述jni的調(diào)用過程。
1)安裝和下載Cygwin,下載 Android NDK 2)在ndk項目中JNI接口的設(shè)計 3)使用C/C++實現(xiàn)本地方法 4)JNI生成動態(tài)鏈接庫.so文件5)將動態(tài)鏈接庫復(fù)制到j(luò)ava工程,在java工程中調(diào)用,運(yùn)行java工程即可
2.簡述Android應(yīng)用程序結(jié)構(gòu)是哪些?
Android應(yīng)用程序結(jié)構(gòu)是:
Linux Kernel(Linux內(nèi)核)、Libraries(系統(tǒng)運(yùn)行庫或者是c/c++核心庫)、Application Framework(開發(fā)框架包)、Applications (核心應(yīng)用程序)
3. 請繼承SQLiteOpenHelper實現(xiàn):
1).創(chuàng)建一個版本為1的“diaryOpenHelper.db”的數(shù)據(jù)庫,
2).同時創(chuàng)建一個 “diary” 表(包含一個_id主鍵并自增長,topic字符型100 長度, content字符型1000長度)
3).在數(shù)據(jù)庫版本變化時請刪除diary表,并重新創(chuàng)建出diary表。
public class DBHelper extends SQLiteOpenHelper { }
public final static String DATABASENAME = "diaryOpenHelper.db"; public final static int DATABASEVERSION = 1; //創(chuàng)建數(shù)據(jù)庫
public DBHelper(Context context,String name,CursorFactory factory,int version) {
super(context, name, factory, version); }
//創(chuàng)建表等機(jī)構(gòu)性文件
public void onCreate(SQLiteDatabase db) {
String sql ="create table diary"+
"("+
"_id integer primary key autoincrement,"+ "topic varchar(100),"+ "content varchar(1000)"+ ")";
db.execSQL(sql); }
//若數(shù)據(jù)庫版本有更新,則調(diào)用此方法
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { }
String sql = "drop table if exists diary"; db.execSQL(sql); this.onCreate(db);
4.頁面上現(xiàn)有ProgressBar控件progressBar,請用書寫線程以10秒的的時間完成其進(jìn)度 顯示工作。
答案
public class ProgressBarStu extends Activity {
private ProgressBar progressBar = null;
protected void onCreate(Bundle savedInstanceState) {
}
}
super.onCreate(savedInstanceState); setContentView(R.layout.progressbar); //從這到下是關(guān)鍵
progressBar = (ProgressBar)findViewById(R.id.progressBar);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int progressBarMax = progressBar.getMax();
try { while(progressBarMax!=progressBar.getProgress()) }
{ }
// TODO Auto-generated catch block e.printStackTrace();
int stepProgress = progressBarMax/10;
int currentprogress = progressBar.getProgress(); progressBar.setProgress(currentprogress+stepProgress); Thread.sleep(1000);
} catch (InterruptedException e) {
} });
thread.start(); //關(guān)鍵結(jié)束
看了“android面試題練習(xí)”的人還看過:
1.
2.
3.
4.
5.