Java日常練習題,每天進步一點點(29)
承蒙各位厚愛,我們一起每天進步一點點!(鼠標選中空白處查看答案)
1、下列不屬於訪問控制符的是()
正確答案: D
public
private
protected
static
題解:
2、Java 源程序文件的擴展名為()
正確答案: A
.java
.class
.exe
.jar
題解:
.class 編譯後的Java文件
.java是未編譯的程序
.jsp是頁面程序
.xml配置程序
.jar是.calss的集合
3、以下程序的執行結果是:
static boolean foo(char c)
{
System.out.print©;
return true;
}
public static void main(String[] args) {
int i =0;
for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’))
{
i++;
foo(‘D’);
}
}
正確答案: A
ABDCBDCB
ABCDABCD
編譯時出錯
運行時拋出異常
題解:
例子:for(1;2;3){
4;
}
這題考察的應該是for循環的執行順序:
1隻在開頭執行一次便不再執行;然後是2->4->3->2->4->3這樣循環下去;等到滿足終止條件時到2就停止瞭,所以選A
4、給定代碼:
public class SwitchTest{//1
public static void main(String[] args) {//2
System.out.println(“value=”+switchit(4));//3
}//4
public static int switchit(int x) {
int j=1;
switch (x) {
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++;
}
return j+x;
}
}
第三行將輸出什麼?
正確答案: B
value=6
value=8
value=3
value=5
value=4
題解:
沒有break,從case 4開始一直執行到最後,j自加3次變成瞭4,結果返回8
5、下面有關List接口、Set接口和Map接口的描述,錯誤的是?
正確答案: A
他們都繼承自Collection接口
List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置
Set是一種不包含重復的元素的Collection
Map提供key到value的映射。一個Map中不能包含相同的key,每個key隻能映射一個value
題解:
6、以下代碼的輸出結果是?
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println(“構造塊”);
}
static
{
System.out.println(“靜態塊”);
}
public static void main(String[] args)
{
B t = new B();
}
}
正確答案: C
靜態塊 構造塊 構造塊 構造塊
構造塊 靜態塊 構造塊 構造塊
構造塊 構造塊 靜態塊 構造塊
構造塊 構造塊 構造塊 靜態塊
題解:
開始時JVM加載B.class,對所有的靜態成員進行聲明,t1 t2被初始化為默認值,為null,又因為t1 t2需要被顯式初始化,所以對t1進行顯式初始化,初始化代碼塊→構造函數(沒有就是調用默認的構造函數),咦!靜態代碼塊咋不初始化?因為在開始時已經對static部分進行瞭初始化,雖然隻對static變量進行瞭初始化,但在初始化t1時也不會再執行static塊瞭,因為JVM認為這是第二次加載類B瞭,所以static會在t1初始化時被忽略掉,所以直接初始化非static部分,也就是構造塊部分(輸出’‘構造塊”)接著構造函數(無輸出)。接著對t2進行初始化過程同t1相同(輸出’構造塊’),此時就對所有的static變量都完成瞭初始化,接著就執行static塊部分(輸出’靜態塊’),接著執行,main方法,同樣也,new瞭對象,調用構造函數輸出(‘構造塊’),所以選C
7、URL u =new URL(“http://www.123.com”);。如果www.123.com不存在,則返回______。
正確答案: A
http://www.123.com
””
null
拋出異常
題解:
new URL()時必須捕獲檢查異常,但這個異常是由於字符串格式和URL不符導致的,與網址是否存在無關。URL的toString方法返回字符串,無論網址是否存在。
8、what is the result of the following code?
enum AccountType
{
SAVING, FIXED, CURRENT;
private AccountType()
{
System.out.println(“It is a account type”);
}
}
class EnumOne
{
public static void main(String[]args)
{
System.out.println(AccountType.FIXED);
}
}
正確答案: C
Compiles fine and output is prints”It is a account type”once followed by”FIXED”
Compiles fine and output is prints”It is a account type”twice followed by”FIXED”
Compiles fine and output is prints”It is a account type”thrice followed by”FIXED”
Compiles fine and output is prints”It is a account type”four times followed by”FIXED”
Compilation fails
翻譯:
編譯良好,輸出是打印“它是一個帳戶類型”,後面跟著“FIXED”
編譯良好,輸出打印” It is a account type “兩次,後面跟著” FIXED “
編譯良好,輸出是打印“這是一個帳戶類型”三次,然後是“FIXED”
編譯良好,輸出是打印“這是一個帳戶類型”四次,然後是“FIXED”
編譯失敗
9、下面關於volatile的功能說法正確的是哪個
正確答案: B C
原子性
有序性
可見性
持久性
題解:
synchronized保證三大性,原子性,有序性,可見性,volatile保證有序性,可見性,不能保證原子性
10、下面哪些類可以被繼承? Java.lang.Thread、java.lang.Number、java.lang.Double、java.lang.Math、
java.lang.ClassLoader
正確答案: A B E
Thread
Number
Double
Math
ClassLoader
題解:
A:Thread可以被繼承,用於創建新的線程
B:Number類可以被繼承,Integer,Float,Double等都繼承自Number類
C:Double類的聲明為
public final class Doubleextends Numberimplements Comparable<Double>
final生明的類不能被繼承
D:Math類的聲明為
public final class Mathextends Object
不能被繼承
E:ClassLoader可以被繼承,用戶可以自定義類加載器
答案匯總:
1、正確答案: D
2、正確答案: A
3、正確答案: A
4、正確答案: B
5、正確答案: A
6、正確答案: C
7、正確答案: A
8、正確答案: C
9、正確答案: B C
10、正確答案:A B E
總結
本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- Java Float 保留小數位精度的實現
- 深入瞭解Java核心類庫–Math類
- Java基礎之Math和Random類知識總結
- java BigDecimal類案例詳解
- Java數組(Array)最全匯總(中篇)