天天看點

Java 學習筆記 5 - 初始化與清理

構造器的名稱必須保持和類名完全一緻,包括大小寫;

構造器預設沒有修飾符,或者使用 public、private、protected 進行修飾,但是不能使用 static、final、synchronized、abstract 等進行修飾;

構造器沒有傳回類型,void 也不行;

不接受任何參數的構造器叫做預設構造器,它的修飾符是 public,内容為空;

每個類至少要有一個構造器,如果一個類沒有顯式定義構造器,Java 會提供一個預設構造器;如果有明确定義構造器,就不會有預設構造器了(除非顯示定義的構造器和預設構造器是一樣的);

不同的構造器可以通過參數不同來進行區分,方法如果被重載也一樣可以通過參數不同進行區分,另外方法的重載還可以通過傳回值來進行區分;

class GouZaoQiOne {
    String testStr;

    /**
     * 構造器名稱包括大小寫必須和         類名保持一緻;     
     * 構造器預設沒有修飾符,或者使用 public、private、protected 進行修飾,     
     * 但是不能使用 static、final、synchronized、abstract 等進行修飾;     
     * 構造器沒有傳回類型,void 也不行;     
     * @return
     */
    GouZaoQiOne() {
        System.out.println("This is a default(friendly) GouZao method");
    }

    //不同的構造器可以通過參數不同來進行區分
    GouZaoQiOne(String str) {
        System.out.println("This is a new GouZao method with param");
    }
}
           

this 關鍵字隻能在方法内部使用,表示正在執行方法的類的執行個體對象;

構造器中也可以使用 this,他指向同一個對象中不同參數的另一個構造器;

this調用其他構造器時,代碼必須放到第一行,否則會編譯錯誤;

隻能使用 this 調用一次其他的構造器;

static 方法不可以使用this對象,因為靜态方法不屬于類的執行個體對象;

對象可能不被垃圾回收;

垃圾回收并不等于"析構";

垃圾回收隻和記憶體有關;

finalize() 調用并不會立馬觸發垃圾回收,而是在下次垃圾回收器幹活時會首先調用 finalize() 方法;

如果程式調用了非 Java 程式的本地代碼,可能需要在 finalize( 方法中調用釋放操作;

幾種觸發垃圾回收器的方法是: 主動調用 System.gc(); 讓程式占用大量記憶體; 程式退出;

變量初始化順序由其定義的先後順序決定,并且變量肯定在所有方法被調用之前被初始化,那麼其定義在方法的後面;

可變長參數清單定義格式:String... str , 同意義的還可以是 Obect[] obj;

   //String... 定義可變長參數
    public void testMethod(String... strings) {        
        for (String string : strings) {
            System.out.println(string);
        }
    }    

    //String[] 定義可變長參數
    public void testMethod2(String[] strings) {        
        for (String string : strings) {
            System.out.println(string);
        }
    }
           

枚舉類型關鍵字是 enum,比如 public enum Test {TEST1, TEST2}

 本文作者: sylan215

 本文位址: http://www.sylan215.com/

 版權聲明: 本文首發于公衆号「sylan215」,可以随意轉載,但必須在明确位置注明出處!