1. 程式人生 > >牛客網第12天

牛客網第12天

1.類Test1定義如下:
public class Test1{//1
public float aMethod(float a,float b){}//2
//3
}//4
將以下哪種方法插入行3是不合法的。
A.public int aMethod(int a,int b){}
B.private float aMethod(int a,int b,int c){}
C.public float aMethod(float a,float b){}
D.public float aMethod(float a,float b,float c){}
正確答案: C 你的答案: D (錯誤)
解析:Java中不能定義方法名,引數個數與型別,完全相同的方法。
方法簽名=方法名+引數(個數及型別),但不包括方法返回值
即java中不能定義方法簽名相同的方法
2. 介面不能擴充套件(繼承)多個介面。( )
A.正確
B.錯誤
正確答案: B 你的答案: B (正確)
解析:Java中類是單繼承,但介面可以多繼承,Interfere1 extends Interface2,Interface3…
3.Java是從()語言改進重新設計
A.Ada
B.C++
C.Pascal
D.BASIC
正確答案: B 你的答案: B (正確)
解析:ava是類C語言,從C++改進而來
去掉了指標和多繼承,採用自動垃圾回收等
4. 有以下程式碼片段:
String str1=“hello”;
String str2=“he”+ new String(“llo”);
System.out.println(str1str2);
請問輸出的結果是:
A.true
B.都不對
C.null
D.false
解析:
String str1=“hello”; 這樣建立字串是存在於常量池中
String str2=new String(“hello”); str2存在於堆中,
是驗證兩個物件是否是一個(記憶體地址是否相同)
用+拼接字串時會建立一個新物件再返回。
5. 應用程式的main方法中有以下語句,則輸出的結果( )
String s1=new String( ” xyz ” );
String s2=new String( ” xyz ” );
Boolean b1=s1.equals(s2);
Boolean b2=(s1

s2);
System .out.print(b1+ ” ” +b2);
Atrue false
B.false true
C.true true
D.false false
正確答案: A 你的答案: A (正確)
解析:
String s1=new String( ” xyz ” ); //建立了String型別的內容為xyz的s1物件
String s2=new String( ” xyz ” ); //建立了String型別的內容為xyz的s2物件
Boolean b1=s1.equals(s2); //比較s1物件和s2物件的內容相等,返回true。
Boolean b2=(s1s2); //比較s1和s2兩個物件的儲存地址是否相等,明顯兩者分別儲存在不同的地址,所以返回:false。
故答案為:true false
6. 關於Java語言描述正確的是? ( )
A.java和C++都保留了指標
B.java和C++都有三個特徵:封裝、繼承和多型
C.java的垃圾回收機制是指程式結束時系統自動回收記憶體
D.以上說法都不正確
正確答案: B 你的答案: B (正確)
解析:
java丟棄了指標。
java的立即回收不是程式結束後回收垃圾,在程式過程中就會,如物件唄賦值NULL,該物件就成為可回收物件。
7. java 的字元型別採用的是 Unicode 編碼方案,每個 Unicode 碼佔用()個位元位。
A.8
B.16
C.32
D.64
正確答案: B 你的答案: C (錯誤)
解析:
在java中一個unicode佔2個位元組(byte)。
一個位元組等於8位元位(bit)。
所以每個Unicode碼佔用16個位元位。
8.以下Java程式執行的結果是:
public class Tester{
public static void main(String[] args){
Integer var1=new Integer(1);
Integer var2=var1;
doSomething(var2);
System.out.print(var1.intValue());
System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
integer=new Integer(2);
}
}
A.1true
B.2true
C.1false
D.2false
正確答案: A 你的答案: C (錯誤)
解析:主要分析下doSomething(),因為這裡傳遞的是引用,而不是地址值,即新建了一個Integer integer,其指向var2所指向的那個棧中的1.至此,integer和var毫無關係,除了同時指向同一個棧中的值。然後integer = new Integer(2);便是在棧中新建了一個為2的值,然後integer重新指向了這個棧中的值。所以var1和var2都沒有改變,都是指向棧中為1的那個值。
同時說明下: == 與equal
equal是值的比較
==是引用的比較
9.Which method you define as the starting point of new thread in a class from which n thread can be execution?
A.public void start()
B.public void run()
C.public void int()
D.public static void main(String args[])
E.public void runnable()
正確答案: B 你的答案: B (正確)
解析:下面哪一個是你類中定義可以作為新執行緒的起始點,直到執行緒n被執行完畢的方法 ?
其實就是在問,執行緒執行的入口,start()是啟動該執行緒的方法,是啟動的動作
繼承Thead,重寫run方法或者實現Runable介面,實現run方法,run方法就是執行緒執行的入口
10.URL u =new URL(“
http://www.123.com
”);。如果www.123.com不存在,則返回______。
A.http://www.123.com
B.””
C.null
D.丟擲異常
正確答案: A 你的答案: C (錯誤)
解析:我們在執行URL u =new URL(“http://www.123.com”);這句話的時候確實要丟擲異常,但是這個異常屬於IOException,不管網址是否存在,最後都會返回該網址的一個連線,打印出來就是該網址。