當前位置:才華齋>IT認證>SUN認證>

sun認證java程式設計師考試試題

SUN認證 閱讀(1.28W)

SUN認證是給網路設計界建立的一套認證標準,Sun公司推出了Java以及Solaris技術認證方案。下面是小編整理的關於sun認證java程式設計師考試試題,歡迎大家參考!

sun認證java程式設計師考試試題

1.

public class test{

public static string output='';

public static void foo(int i){

try {

if(i==1){

throw new exception();

}

output +='1';

}

catch(exception e){

output+='2';

return;

}

finally{

output+='3';

}

output+='4';

}

public static void main(string args[]){

foo(0);

foo(1);

24)

}

}

what is the value of output at line 24?

題意: 在第24行處,output的值是什麼。

分析: 本題考察static型別的變數和try—catch語句的執行。try—catch語句參見第4題的講解。所謂靜態,據本人理解指的是其在記憶體中的位置是固定的,即程式裝載完成後所有靜態變數就固定於某一記憶體地址中,它們不隨著類的例項化而隨物件的.地址而變動,所以有人說靜態變數屬於類而不屬於物件。所以靜態方法可以不對類進行例項化而直接呼叫,靜態變數也可以不對其所屬類進行例項化而直接使用。而多次例項化的物件使用靜態變數時,實際是使用同一記憶體地址的內容。

解答: 從主程式的呼叫入手分析。1、foo(0)呼叫foo函式,並將0傳給foo函式的i變數。2、執行try語句塊,比較i==1不成立,執行if後面的語句output +='1',此時output的值為“1”。3、try語句沒有異常丟擲,在執行finally語句後即結束。finally語句改變output的值為“13”。4、執行try語句外面的語句output+='4',此時output的值為“134”,foo(0)呼叫結束。5、foo(1)呼叫foo函式並將1傳給foo函式的i變數。6、執行try語句塊,比較i==1成立,執行if語句塊內的語句。7、丟擲一個異常。8、catch語句立刻捕獲異常並執行output+='2',此時output的值為“1342”。9、繼續向下執行return準備結束foo函式,但是return前要執行finally語句的內容output+='3',此時output的值為“13423”。然後結束foo函式。在第24行處output的值為“13423”。

注意: 答案時應該寫“”?

示例:

a. i=6 j=5

b. i=5 j=5

c. i=6 j=4

d. i=5 j=6

e. i=6 j=6

題意: 執行結束後,i和j的值分別是什麼?

分析: 說實話,我開始以為這題還有點複雜,是考x++和++x的區別以及continue語句的作用,可是經過分析發現其實知不知道以上兩個知識點對答案並沒有影響,簡單的計算一下就ok了,i和的值經過迴圈依次為:2、9;3、8;4、7;5、6。此時i<5不成立,程式結束,而已。

解答: i=5,j=6 。答案為d

注意: 還是要注意一下x++和++x的區別,x++表示式的值為x原值,++x表示式的值為x經+1計算後的值。但經過x++或++x後x本身的值都比原值增加了1。例如:int a=1,b=1; int c=a++;int d=++b;最後a為2,b為2,c為1,d為2。還有就是continue用於迴圈塊內表示本次迴圈結束(注意不是迴圈結束!)下次迴圈開始,它後面的語句就不執行了。

示例:

2.

1)public class x{

2) public object m(){

3) object o=new float(3.14f);

4) object[] oa=new object[1];

5) oa[0]=o;

6) o=null;

7) oa[0]=null;

tln(oa[0]);

9) }

10) }

which line is the earliest point the object a refered is definitely elibile to be garbage collectioned?

r line 4

r line 5

r line 6

r line 7

r line 9(that is,as the method returns)

題意: (此題有拼寫錯誤大概意思是)哪一行是引用物件明確的允許被垃圾收集機收集的最早的位置

分析: 一個物件成為垃圾有兩種情況,一是失去引用;一是離開了作用域。

解答: 程式在第3行new了一個值為3.14的float物件,並用object引用型別o指向它。第4行宣告一個大小為1的object型別的陣列oa,第5行將o的引用傳遞給oa的第一個成員oa[0]。注意此時有兩個引用o和oa[0]指向實際值為3.14的float物件。第6行讓o為空,既o失去物件的引用,也就是float物件失去一個引用o。此時float物件還有一個引用oa[0],用oa[0]依然可以訪問。第7行,oa[0]置空,此時float物件已經沒有引用指向它,既變為垃圾,可以被收集。所以答案是d。

注意: 注意物件和物件的引用的區別。

示例: 無