1. 程式人生 > >學習筆記(一)初始化與清理

學習筆記(一)初始化與清理

自己整理的,可能有些地方不對,不喜勿噴。

1.靜態方法中不能呼叫非靜態方法和非靜態變數,當類沒有初始化的時候就可以使用靜態方法,而非靜態變數還未產生。呼叫靜態方法時推薦直接呼叫,不需建立物件。

2.如果在方法裡想用this關鍵詞時,必須先在類中定義成員變數,當成員變數和方法裡的區域性變數名字相同時,這是可以用到


this.
例:public class People{ 
String name; //這個name這就是我們說的類的成員變數(也叫類的屬性)


public void getName(String name){ 
//這裡的是name是一個引數,是getName這一個方法(也叫函式)的一個引數(變數),跟上面的name不是一樣


的東西!你必須弄清楚現在有兩個變數(引數)的存在 


this.name = name; 

    } 
如果此時例項化一個People物件A,A具有People中的屬性,A.name 和getName 方法中的 this.name 是等價的。
3.過載構造器,在一個類中呼叫同類中的構造器,可以通過this+構造器所接受的引數型別。而且只能呼叫一個。
例:public class Test{
Test(int s){
           this("Hello");            //通過給this 一個字串引數,可以呼叫接收字串型別的構造器 Test(String s)
  System.out.println("world!");
}
Test(String a){
  System.out.println(a);
}
Test(cahr b){
  System.out.println(b);
}
    }
4.java提供finalize()方法,垃圾回收器準備釋放記憶體的時候,會先呼叫finalize()。不過,垃圾回收和finalize()都是靠不住


的,只要JVM還沒有快到耗盡記憶體的地步,它是不會浪費時間進行垃圾回收的。所以想讓例子中的finalize()方法總是執行,須加


上System.gc()。System.gc()是通知java虛擬機器(jvm)執行垃圾回收的命令。
public class test {
protected void finalize(){
System.out.println("Hello World!");
}
public static void main(String[] args){
new test();
System.gc();


}
}