1. 程式人生 > >NCAE(全國工業和資訊化應用人才考試 )-- 服務外包 JAVA 軟體開發複習整理(二)

NCAE(全國工業和資訊化應用人才考試 )-- 服務外包 JAVA 軟體開發複習整理(二)

  • 自然排序的一些細節:空格排在字元前、大寫字元排在小寫字元前
  • 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()方法時,多執行緒不能阻止他混合訊息;