Java編程思想筆記第5章

方法重載

區分重載方法:每一個重載的方法都有一個獨一無二的參數類型列表。
涉及基本數據類型的重載:基本數據類型能從一個較小的類型自動提成至一個較大的類型,如果傳入的實際參數較大,就通過類型轉換來執行窄化轉換。(char類型如果無法找到char參數的方法,則會直接提升至int型)
無法通過返回值區分方法的重載

默認構造器

默認構造器是沒有形式參數的,它的作用是創建一個默認對象,如果你的類中沒有構造器,則編譯器會自動幫你創建一個默認構造器,如果已經定義了一個構造器,則編譯器就不會再幫你自動創建構造器。

this關鍵字

this關鍵字只能在方法的內部使用,表示對調用該方法的對象的引用,this的用法和其他對象引用並無不同。
在構造器中調用構造器,使用關鍵字this。注意,雖然可以使用this調用一個構造器,但是不用調用兩個,而且必須將構造器調用置於最起始處,否則編譯器報錯。

public class A{
int xx = 0;
String ss = "";
	A(String ss){//一個參數的構造器
	this.ss = ss;
	}
	A(String ss, int xx){//實現在構造器內部調用構造器
		this("dxp");//調用上一個只有一個參數的構造器,且必須放在第一行。
		this.ss = ss;
		this.xx = xx;
	}
}

static關鍵字
static方法就是沒有this的方法。在static方法的內部不能調用非靜態方法。static的主要作用就是在類沒有創建任何對象的前提下,僅僅通過類本身來調用static方法。

終結處理和垃圾回收

爲什麼說垃圾回收並不一定會發生?
因爲在程序執行過程中,只要是內存空間沒有瀕臨用完的那一刻,對象所佔用的空間就不會得到釋放,如果這些程序執行結束,並且垃圾回收器一直都沒有釋放你所創建的任何對象的存儲空間,則隨着程序的退出,那些資源也會全部交還給操作系統,這種策略是合理的,因爲垃圾回收本身也會有開銷,如果不是必須使用,則就不需要支付這一部分的開銷。
finalize()的用途
使用垃圾回收器的唯一原因是爲了回收程序不再使用的內存。而且是java對象之外所分配的內存,但是由於java中一切皆爲對象,所以說finalize()的使用主要是在程序使用了本地方法的情況下,比如在java中調用了C++的代碼,則需要在finalize()中調用free()來釋放內存,否則會造成內存泄漏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章