sun認證java程序員考試試題
SUN認證是給網(wǎng)絡設計界建立的一套認證標準,Sun公司推出了Java以及Solaris技術認證方案。下面是小編整理的關于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語句的執(zhí)行。try—catch語句參見第4題的講解。所謂靜態(tài),據(jù)本人理解指的是其在內(nèi)存中的位置是固定的,即程序裝載完成后所有靜態(tài)變量就固定于某一內(nèi)存地址中,它們不隨著類的實例化而隨對象的地址而變動,所以有人說靜態(tài)變量屬于類而不屬于對象。所以靜態(tài)方法可以不對類進行實例化而直接調(diào)用,靜態(tài)變量也可以不對其所屬類進行實例化而直接使用。而多次實例化的對象使用靜態(tài)變量時,實際是使用同一內(nèi)存地址的內(nèi)容。
解答: 從主程序的調(diào)用入手分析。1、foo(0)調(diào)用foo函數(shù),并將0傳給foo函數(shù)的i變量。2、運行try語句塊,比較i==1不成立,執(zhí)行if后面的語句output +='1',此時output的值為“1”。3、try語句沒有異常拋出,在執(zhí)行finally語句后即結(jié)束。finally語句改變output的值為“13”。4、執(zhí)行try語句外面的語句output+='4',此時output的值為“134”,foo(0)調(diào)用結(jié)束。5、foo(1)調(diào)用foo函數(shù)并將1傳給foo函數(shù)的i變量。6、運行try語句塊,比較i==1成立,執(zhí)行if語句塊內(nèi)的語句。7、拋出一個異常。8、catch語句立刻捕獲異常并執(zhí)行output+='2',此時output的值為“1342”。9、繼續(xù)向下執(zhí)行return準備結(jié)束foo函數(shù),但是return前要執(zhí)行finally語句的內(nèi)容output+='3',此時output的值為“13423”。然后結(jié)束foo函數(shù)。在第24行處output的值為“13423”。
注意: 答案時應該寫“”?
示例: w05.java
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
題意: 執(zhí)行結(jié)束后,i和j的值分別是什么?
分析: 說實話,我開始以為這題還有點復雜,是考x++和++x的區(qū)別以及continue語句的作用,可是經(jīng)過分析發(fā)現(xiàn)其實知不知道以上兩個知識點對答案并沒有影響,簡單的計算一下就ok了,i和的值經(jīng)過循環(huán)依次為:2、9;3、8;4、7;5、6。此時i<5不成立,程序結(jié)束,而已。
解答: i=5,j=6 。答案為d
注意: 還是要注意一下x++和++x的區(qū)別,x++表達式的值為x原值,++x表達式的值為x經(jīng)+1計算后的值。但經(jīng)過x++或++x后x本身的值都比原值增加了1。例如:int a=1,b=1; int c=a++;int d=++b;最后a為2,b為2,c為1,d為2。還有就是continue用于循環(huán)塊內(nèi)表示本次循環(huán)結(jié)束(注意不是循環(huán)結(jié)束!)下次循環(huán)開始,它后面的語句就不執(zhí)行了。
示例: w08.java
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;
system.out.println(oa[0]);
9) }
10) }
which line is the earliest point the object a refered is definitely elibile to be garbage collectioned?
a.after line 4
b.after line 5
c.after line 6
d.after line 7
e.after line 9(that is,as the method returns)
題意: (此題有拼寫錯誤大概意思是)哪一行是引用對象明確的允許被垃圾收集機收集的最早的位置
分析: 一個對象成為垃圾有兩種情況,一是失去引用;一是離開了作用域。
解答: 程序在第3行new了一個值為3.14的float對象,并用object引用類型o指向它。第4行聲明一個大小為1的object類型的數(shù)組oa,第5行將o的引用傳遞給oa的第一個成員oa[0]。注意此時有兩個引用o和oa[0]指向?qū)嶋H值為3.14的float對象。第6行讓o為空,既o失去對象的引用,也就是float對象失去一個引用o。此時float對象還有一個引用oa[0],用oa[0]依然可以訪問。第7行,oa[0]置空,此時float對象已經(jīng)沒有引用指向它,既變?yōu)槔,可以被收集。所以答案是d。
注意: 注意對象和對象的引用的區(qū)別。
示例: 無
【sun認證java程序員考試試題】相關文章:
sun java認證考試介紹10-23
sun認證java基礎模擬試題10-26
Sun Java認證考試科目08-30
sun認證:java程序設計考試試題07-25
sun java認證考試報考指南10-18
SUN JAVA認證介紹12-18