43. 下面異常是屬於Runtime Exception 的是(abcd)(多選)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
44. Math.round(11.5)等於多少(). Math.round(-11.5)等於多少(c)
A、11 ,-11
B、11 ,-12
C、12 ,-11
D、12 ,-12
Math類中提供了三個與取整有關的方法:ceil、floor、round,這些方法的作用與它們的英文名稱的含義相對應,例如,ceil的英文意義是天花板,該方法就表示向上取整,所以,Math.ceil(11.3)的結果爲12,Math.ceil(-11.3)的結果是-11;floor的英文意義是地板,該方法就表示向下取整,所以,Math.floor(11.6)的結果爲11,Math.floor(-11.6)的結果是-12;最難掌握的是round方法,它表示“四捨五入”,算法爲Math.floor(x+0.5),即將原來的數字加上0.5後再向下取整,所以,Math.round(11.5)的結果爲12,Math.round(-11.5)的結果爲-11。
45. 下列程序段的輸出結果是:(b )
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
46. Intent傳遞數據時,下列的數據類型哪些可以被傳遞(abcd)(多選)
A、Serializable B、charsequence C、Parcelable D、Bundle
47. 在android中使用Menu時可能需要重寫的方法有(ac)。(多選)
A、onCreateOptionsMenu()
B、onCreateMenu()
C、onOptionsItemSelected()
D、onItemSelected()
48. 下面是屬於GLSurFaceView特性的是(abc)(多選)A、管理一個surface,這個surface就是一塊特殊的內存,能直接排版到android的視圖
view上。
B、管理一個EGL display,它能讓opengl把內容渲染到上述的surface上。
C、讓渲染器在獨立的線程裏運作,和UI線程分離。
D、可以直接從內存或者DMA等硬件接口取得圖像數據
49. 關於ContenValues類說法正確的是(a)
A、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的
名是String類型,而值都是基本類型
B、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的
名是任意類型,而值都是基本類型
C、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的
名,可以爲空,而值都是String類型
D、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中
的名是String類型,而值也是String類型
50. 下面退出Activity錯誤的方法是(c)
A、finish()
B、拋異常強制退出
C、System.exit()
D、onStop()
51. 下面關於Android dvm的進程和Linux的進程,應用程序的進程說法正確的是(d)
A、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運行,不一定擁有一個獨立 的Dalvik虛擬機實例.而每一個DVM都是在Linux中的一個進程,所以說可以認爲是同一個概念.
B、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運行,不一定擁有一個獨立的Dalvik虛擬機實例.而每一個DVM不一定都是在Linux 中的一個進程,所以說不是一個概念.
C、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例.而每一個DVM不一定都是在Linux 中的一個進程,所以說不是一個概念.
D、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的 Dalvik虛擬機實例.而每一個DVM都是在Linux 中的一個進程,所以說可以認爲是同一個概念.
52. 下列對android NDK的理解正確的是(abcd )
A、 NDK是一系列工具的集合
B、 NDK 提供了一份穩定、功能有限的 API 頭文件聲明。
C、 使 “Java+C” 的開發方式終於轉正,成爲官方支持的開發方式
D、 NDK 將是 Android 平臺支持 C 開發的開端
54. 在android中,請簡述jni的調用過程。
1)安裝和下載Cygwin,下載 Android NDK
2)在ndk項目中JNI接口的設計
3)使用C/C++實現本地方法
4)JNI生成動態鏈接庫.so文件
5)將動態鏈接庫複製到java工程,在java工程中調用,運行java工程即可
55. 簡述Android應用程序結構是哪些?
Android應用程序結構是:
Linux Kernel(Linux內核)、Libraries(系統運行庫或者是c/c++核心庫)、Application Framework(開發框架包)、Applications (核心應用程序)
56. 程序運行的結果是:(good and gbc)
57.在SQL Server 2005中運行如下T-SQL語句,假定SALES表中有多行數據,執行查詢之 後的結果是(d)。
BEGIN TRANSACTION A
Update SALES Set qty=30 WHERE qty<30
BEGIN TRANSACTION B
Update SALES Set qty=40 WHEREqty<40
Update SALES Set qty=50 WHEREqty<50
Update SALES Set qty=60 WHEREqty<60
COMMIT TRANSACTION B
COMMIT TRANSACTION A
A、SALES表中qty列最小值大於等於30
B、SALES表中qty列最小值大於等於40
C、SALES表中qty列的數據全部爲50
D、SALES表中qty列最小值大於等於60
58.請繼承SQLiteOpenHelper實現:
1).創建一個版本爲1的“diaryOpenHelper.db”的數據庫,
2).同時創建一個 “diary” 表(包含一個_id主鍵並自增長,topic字符型100
長度, content字符型1000長度)
3).在數據庫版本變化時請刪除diary表,並重新創建出diary表。
59.java中 ==和equals的區別:
值類型是存儲在內存中的堆棧(以後簡稱棧),而引用類型的變量在棧中僅僅是存儲引用類型變量的地址,而其本身則存儲在堆中。 ==操作比較的是兩個變量的值是否相等,對於引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內容是否相同。 equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內容是否相同。 ==比較的是2個對象的地址,而equals比較的是2個對象的內容。 顯然,當equals爲true時,==不一定爲true;
60.android view繪製簡單描述
簡單描述可以解釋爲:計算大小(measure),佈局座標計算(layout),繪製到屏幕(draw);
下面看看每一步的動作到底是什麼,
第一步:當activity啓動的時候,觸發初始化view過程的是由Window對象的DecorView調用View(具體怎樣從xml中讀取是用LayoutInflater.from(context).inflate)對象的 public final void measure(int widthMeasureSpec, int heightMeasureSpec)方法開始的,這個方法是final類型的,也就是所有的子類都不能繼承該方法,保證android初始化view的原理不變。具體參數類值,後面會介紹。
第二步:View的measure方法 onMeasure(widthMeasureSpec, heightMeasureSpec),該方法進行實質性的view大小計算。注意:view的大小是有父view和自己的大小決定的,而不是單一決定的。這也就是爲什麼ViewGroup的子類會重新該方法,比如LinearLayout等。因爲他們要計算自己和子view的大小。View基類有自己的實現,只是設置大小。其實根據源碼來看,measure的過程本質上就是把Match_parent和wrap_content轉換爲實際大小
第三步:當measure結束時,回到DecorView,計算大小計算好了,那麼就開始佈局了,開始調用view的 public final void layout(int l, int t, int r, int b),該還是也是final類型的,目的和measure方法一樣。layout方法內部會調用onlayout(int l, int t, int r, int b )方法,二ViewGroup將此方法abstract的了,所以我們繼承ViewGroup的時候,需要重新該方法。該方法的本質是通過measure計算好的大小,計算出view在屏幕上的座標點
第四步:measure過了,layout過了,那麼就要開始繪製到屏幕上了,所以開始調用view的 public void draw(Canvas canvas)方法,此時方法不是final了,原因是程序員可以自己畫,內部會調用ondraw,我們經常需要重寫的方法。 簡單描述可以解釋爲:計算大小(measure),佈局座標計算(layout),繪製到屏幕(draw);