1.不通過構造函數也能創建對象嗎()
A. 是
B. 否
分析:答案:A
Java創建對象的幾種方式(重要):
(1) 用new語句創建對象,這是最常見的創建對象的方法。
(2) 運用反射手段,調用java.lang.Class或者
java.lang.reflect.Constructor類的newInstance()實例方法。
(3) 調用對象的clone()方法
(4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。
(1)和(2)都會明確的顯式的調用構造函數 ;(3)是在內存上對已有對象的影印,所以不會調用構造函數 ;(4)是從文件中還原類的對象,也不會調用構造函數。
(1)和(2)都會明確的顯式的調用構造函數 ;(3)是在內存上對已有對象的影印,所以不會調用構造函數 ;(4)是從文件中還原類的對象,也不會調用構造函數。
2.下面哪些是對稱加密算法()
A. DES
B. MD5
C. DSA
D. RSA
分析:答案:A
分析:常用的對稱加密算法有:DES、3DES、RC2、RC4、AES
常用的非對稱加密算法有:RSA、DSA、ECC
使用單向散列函數的加密算法:MD5、SHA
3.下面的代碼段,當輸入為2的時候返回值是()
public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}
A. 0
B. 2
C. 4
D. 10
答案:D
分析:result = 0 + 2 * 2;
4.以下Java代碼段會產生幾個對象
public void test(){
String a="a";
String b="b";
String c="c";
c=a+""+b+""+c;
System.out.print(c);
}
分析:答案: 一個對象,因為編譯期進行了優化,3個字符串常量直接折疊為一個
5.Math.round(-11.2)的運行結果是。
答案: -11
分析:小數點后第一位=5
正數:Math.round(11.5)=12
負數:Math.round(-11.5)=-11
小數點后第一位<5
正數:Math.round(11.46)=11
負數:Math.round(-11.46)=-11
小數點后第一位>5
正數:Math.round(11.68)=12
負數:Math.round(-11.68)=-12
根據上面例子的運行結果,我們還可以按照如下方式總結,或許更加容易記憶:
參數的小數點后第一位<5,運算結果為參數整數部分。
參數的小數點后第一位>5,運算結果為參數整數部分絕對值+1,符號(即正負)不變。
參數的小數點后第一位=5,正數運算結果為整數部分+1,負數運算結果為整數部分。
終結:大於五全部加,等於五正數加,小於五全不加。
6.Java中int.long占用的字節數分別是
分析:
1:“字節”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在Java中是2個字節。java采用unicode,2個字節(16位)來表示一個字符。
short 2個字節
int 4個字節
long 8個字節
System.out.println(‘a’+1);的結果是
分析:'a'是char型,1 是int行,int與char相加,char會被強轉為int行,char的ASCII碼對應的值是97,所以加一起打印98
7.下列語句那一個正確()
A. java程序經編譯后會產生machine code
B. java程序經編譯后會產生 byte code
C. java程序經編譯后會產生DLL
D. 以上都不正確
答案:B
分析:java程序編譯后會生成字節碼文件,就是.class文件
8.下列說法正確的有()
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個對象被new時執行
D. 一個class只能定義一個constructor
答案:C
9.執行如下程序代碼()
a=0;c=0;
do{
——c;
a=a-1;
}while(a>0);
后,c的值是()
A. 0
B. 1
C. -1
D. 死循環
答案:C
do{...}while(...);語句至少執行一次
10.下列哪一種敘述是正確的()
A. abstract修飾符可修飾字段、方法和類
B. 抽象方法的body部分必須用一對大括號{}包住
C. 聲明抽象方法,大括號可有可無
D. 聲明抽象方法不可寫出大括號
答案:D
分析: abstract不能修飾字段。既然是抽象方法,當然是沒有實現的方法,根本就沒有body部分。
11.下列語句正確的是()
A. 形式參數可被視為local variable
B. 形式參數可被字段修飾符修飾
C. 形式參數為方法被調用時,真正被傳遞的參數
D. 形式參數不可以是對象
答案A:
分析:
A:形式參數可被視為local variable。形參和局部變量一樣都不能離開方法。都只有在方法內才會發生作用,也只有在方法中使用,不會在方法外可見。
B:對於形式參數只能用final修飾符,其它任何修飾符都會引起編譯器錯誤。但是用這個修飾符也有一定的限制,就是在方法中不能對參數做任何修改。 不過一般情況下,一個方法的形參不用final修飾。只有在特殊情況下,那就是:方法內部類。 一個方法內的內部類如果使用了這個方法的參數或者局部變量的話,這個參數或局部變量應該是final。
C:形參的值在調用時根據調用者更改,實參則用自身的值更改形參的值(指針、引用皆在此列),也就是說真正被傳遞的是實參。
D:方法的參數列表指定要傳遞給方法什么樣的信息,采用的都是對象的形式。因此,在參數列表中必須指定每個所傳遞對象的類型及名字。想JAVA中任何傳遞對象的場合一樣,這里傳遞的實際上也是引用,並且引用的類型必須正確。