錯題整理10.10
1.
.java檔案只能有一個類是與檔名相同,而包含的其他類不能與之相同,還需注意的是一個.java檔案最多有一個public修飾的類。這裡要與.class檔案分開,一個.class檔案有且只有一個類編譯後.class
2.
checked exception:指的是編譯時異常,該類異常需要本函式必須處理的,用try和catch處理,或者用throws丟擲異常,然後交給呼叫者去處理異常。
runtime exception:指的是執行時異常,該類異常不必須本函式必須處理,當然也可以處理。
Thread.sleep()丟擲的InterruptException屬於checked exception;IllegalArgumentException屬於Runtime exception;
3.
Integer i01=59 的時候,會呼叫 Integer 的 valueOf 方法,
1 2 3 4 5 |
|
這個方法就是返回一個 Integer 物件,只是在返回之前,看作了一個判斷,判斷當前 i 的值是否在 [-128,127] 區別,且 IntegerCache 中是否存在此物件,如果存在,則直接返回引用,否則,建立一個新的物件。
在這裡的話,因為程式初次執行,沒有 59 ,所以,直接建立了一個新的物件。
int i02=59 ,這是一個基本型別,儲存在棧中。
Integer i03 =Integer.valueOf(59); 因為 IntegerCache 中已經存在此物件,所以,直接返回引用。
Integer i04 = new Integer(59) ;直接建立一個新的物件。
System. out .println(i01== i02); i01 是 Integer 物件, i02 是 int ,這裡比較的不是地址,而是值。 Integer 會自動拆箱成 int ,然後進行值的比較。所以,為真。
System. out .println(i01== i03); 因為 i03 返回的是 i01 的引用,所以,為真。
System. out .println(i03==i04); 因為 i04 是重新建立的物件,所以 i03,i04 是指向不同的物件,因此比較結果為假。
System. out .println(i02== i04); 因為 i02 是基本型別,所以此時 i04 會自動拆箱,進行值比較,所以,結果為真。
3.
A,CopyOnWriteArrayList適用於寫少讀多的併發場景
B,ReadWriteLock即為讀寫鎖,他要求寫與寫之間互斥,讀與寫之間互斥,
讀與讀之間可以併發執行。在讀多寫少的情況下可以提高效率
C,ConcurrentHashMap是同步的HashMap,讀寫都加鎖
D,volatile只保證多執行緒操作的可見性,不保證原子性
4.
Iterable介面是Collection介面的父介面。
5.
- A選項:
- 通過 pageContext(PageContext類的例項,提供對JSP頁面所有物件以及名稱空間的訪問) 獲取stringBean 的值,賦給 String 型別的變數 myBean,然後通過 Jsp 表示式 處理該值。
- bean:define
- 題目中的 Struts 的bean:define 標籤定義了一個字串變數 stringBean ,它的值為 helloworld。
- bean:write
- bean:write相當於 <%=request.getAttribute("something")%> 其中 something 是屬性的名字。所以 B 錯,C對。
- D選項:
- 通過Jsp 表示式 獲取變數 stringBean 的值