1.導讀
- 不要在代碼中調用gc,因爲沒調用一次gc,java虛擬機就會在不定的時間執行一遍清理工作,而在這個過程中,所有的線程都必須暫停,等待清理線程執行完畢。
- java中也向c++一樣引入了構造器的概念,並額外提供了“垃圾回收器”。對於不再使用的內存資源賣垃圾回收器能將其自動釋放。
2.構造器
- java 用構造器來保證對象的初始化。
- 構造器的命名與類名相同。
- 當new一個對象時,將會對對象分配存儲空間,並調用相應的構造器。確保在操作對象之前,它已經被恰當的初始化。
- 默認構造器;不接受任何參數的構造器。
- 構造器不會返回任何東西,void還會默認返回一個null,但構造器是真的什麼都不返回。
3.this關鍵字
- Banana a = new Banana();
b = new Banana();
a.pell(1);
b.pell(2);
只有一個pell方法,它如何知道是被a調用還是被b調用的?
爲了能簡單的、面向對象的語法來編寫代碼——即“發送消息給對象”,編譯器做了一些幕後工作,。它暗自把“所操作對象的引用”作爲
第一個參數傳遞給pell().
Banana.pell(a,1);
Banana.pell(a,2);就變成了這樣。這是內部的表示。 - 假設你想在方法內獲得傳遞的這個引用,但這個引用有時編譯器“內部”傳遞的。所以沒有任何表示符可用,所以就有了this這個關鍵字。這個關鍵字即代表這個傳遞進來的引用。
也就是說this代表“調用方法的那個對象”的引用。this的用法和其他對象的引用並無不同。 - 也可理解爲對當前對象的引用。
- 使用this關鍵字可以實現在構造器中調用構造器
public class test { public test() { this(1); } public test(int type){ } }
4.static
- 靜態方法,static方法就是沒有this的方法。在static內部不能調用非靜態的方法,反過來可以。
- 可以不初始化對象,僅僅通過類本身來調用靜態方法。
- java中禁止使用全局方法,但可以在勒種植入static方法就可以訪問其他static方法和域。