NCAE(全國工業和資訊化應用人才考試 )-- 服務外包 JAVA 軟體開發複習整理(二)
阿新 • • 發佈:2019-02-17
- 自然排序的一些細節:空格排在字元前、大寫字元排在小寫字元前
- TreeSet集合放入的物件要求是能進行比較排序的;
- 如下程式碼,在TreeSet放入的元素有String和Integer兩種型別,在編譯時不會有問題,但會有執行異常:
package com.neu.test; import java.util.Iterator; import java.util.Set; import java.util.TreeSet; public class Test { public static void main(String[] args) { Set set =new TreeSet(); set.add("2"); set.add(3); set.add("1"); Iterator it=set.iterator(); System.out.println(set.size()); while(it.hasNext()){ System.out.println(it.next()); } } }
- Object類的hashCode()方法是native修飾的;
- Map中鍵值是不允許重複的是否重複的一個條件是判斷hashCode;
- 不重寫hashCod()方法會導致相同物件含有不同的hashCode;
- add()方法是介面CokkectIon的方法。所以實現了這個介面的類都有這個方法。
- birnarySearch()方法需要注意:
1.必須進行排序,即Array.sort,否則返回的值是不確定的,不會出現編譯錯誤;
2.如果定義了排序的方法,並在Arrays.sort方法中使用則在binrySearch()中也要使用這個引數沒否則會返回-1;
- 關鍵字this表示當前正執行的物件;在內部類中this表示內部類,二外部類的表示則是MyOuter.this;
- 如下修飾符能夠應用於內部類:
final
abstract
public
private
protected
static
strictfp
- 在一個靜態方法內宣告的區域性類只能訪問該封裝類的靜態成員;如果位於一個沒有
this
的靜態方法內,則該方法內的內部類的限制與靜態方法相同;換句話說,根本不能訪問例項變數 - 在看到匿名內部類的時候,要格外注意結束時除了有波形括號外還有一個分號;
- 如果試圖在匿名內部類引用上呼叫超類沒有定義的方法,編譯器會發出警告;靜態內部類不能訪問例項變數和類的非靜態方法;
- 只要執行緒已經啟動過,他就永遠不能再次啟動,當執行緒的目標
run()
方法結束時,該執行緒就完成了; - java規範中根本沒有提到執行緒將按照他們啟動的順序(即每個執行緒上呼叫
start()
的順序)開始執行; - 能時執行緒離開執行中狀態的三種方法:
Sleep():保證使當前執行緒至少在指定的睡眠期間停止執行(儘管它可能在指定的時間之前被中斷);
Yield():不能保證做太多事情,儘管通常它會使當前的執行中執行緒移回可執行狀態,並使具有相同優先順序的執行緒能夠有機會執行;
Join():保證當前執行緒停止執行,直到它所加入的執行緒完成為止。然而,如果它加入的執行緒不是活的,則當前執行緒不需要停止;
- import語句每次只能匯入一個包;
如果將jar檔案放入ext子目錄(.../jar/lib/ext目錄),則java和javac可以找到他們並使用他們所包含的類檔案
; - 在使用java命令編寫程式碼時:
-classpath
選項必須出現在類名前;-ea
引數表示啟用斷言;泛型是在java5中才引用的。-source
引數後面可以跟版本; - 使用
-classpath
選項查詢類的時候,引數從左向右執行;Unix下使用":"分隔目錄引數; -D
選項不是一個編譯器標誌,不能使用javac命令;而且與-D
相關的名稱=值
對必須緊跟在它的後面,中間不能有空格;- 使用靜態匯入的正確格式:
import staic java.lang.Integer.*
或者import static java.lang.Integer.MAX_VALUE
; - 以下是與jar檔案結構有關的幾條規則:
jar命令會自動建立META-INF目錄;
jar命令會自動建立MANIFEST.MF檔案;
jar命令不會將你的任何檔案放入META-INF/目錄中;
從以上規則可以看出,在jar檔案中準確的體現了樹結構;
java和javac命令會像普通的目錄樹一樣使用jar檔案;
- java和javac都使用相同的基本查詢演算法:
1.它們都具有同樣的查詢位置(目錄)清單,用於查詢類;
2.它們都以同樣的順序查詢便利這個目錄清單;
3.一旦發現所查詢的類,就不會再查詢這個類了。即(目錄中包含同個同名檔案,則會使用找的第一個);
4.查詢的首選位置是包含標準J2SE類的目錄;
5.查詢的次要位置是由類路徑定義的目錄
6.類路徑應該被看做類查詢路徑,他們是可以在其中找的類的目錄清單;
7.有兩個地方可以宣告類路徑:
類路徑可以宣告為作業系統的一個環境變數;
類路徑可以作為宣告java和javac的命令選項;
- 使用多執行緒時,如果使用的物件屬性不是static時,可能會出現執行時異常。靜態屬性不會出現這種狀況;
- Thred的
join()
方法必須放置在tyr/catch塊中。它的作用是:會使執行緒暫停,並進入到另一個執行緒的末尾
; StringBuffer
天生就是同步的,但多次在一個方中呼叫append()
方法時,多執行緒不能阻止他混合訊息;