十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Java構(gòu)造方法
類有一個特殊的成員方法叫作構(gòu)造方法,它的作用是創(chuàng)建對象并初始化成員變量。在創(chuàng)建對象時,會自動調(diào)用類的構(gòu)造方法。
構(gòu)造方法定義規(guī)則:Java 中的構(gòu)造方法必須與該類具有相同的名字,并且沒有方法的返回類型(包括沒有void)。另外,構(gòu)造方法一般都應(yīng)用 public 類型來說明,這樣才能在程序任意的位置創(chuàng)建類的實例也就是對象。
示例:下面是一個 Rectangle 類的構(gòu)造方法,一個是帶有兩個參數(shù),分別表示矩形的長和寬;
另一個是不帶參數(shù):
public class Rectangle {
public Rectangle(int w, int h) {
width = w;
height = h;
}
public Rectangle() {}
}
那么創(chuàng)建實例,我們有兩種方式:一個是Rectangle rectangle=new Rectangle (20,20);另一個是Rectanglerectangle=new Rectangle ();都能創(chuàng)建實例,兩個唯一不同:是否初始化變量
注意點:1、每個類至少有一個構(gòu)造方法。如果不寫一個構(gòu)造方法,Java 編程語言將提供一個默認(rèn)的,該構(gòu)造方法沒有參數(shù),而且方法體為空。如果一個類中已經(jīng)定義了構(gòu)造方法則系統(tǒng)不再提供默認(rèn)的構(gòu)造方法。2、盡量不在類的構(gòu)造器中創(chuàng)建、初始化大量的對象或執(zhí)行某種復(fù)雜、耗時的運算邏輯。
Java析構(gòu)方法
當(dāng)垃圾回收器將要釋放無用對象的內(nèi)存時,先調(diào)用該對象的finalize()方法。如果在程序終止前垃圾回收器始終沒有執(zhí)行垃圾回收操作,那么垃圾回收器將始終不會調(diào)用無用對象的finalize()方法。在Java的Object基類中提供了protected類型的finalize()方法,因此任何Java類都可以覆蓋finalize()方法,通常,在析構(gòu)方法中進(jìn)行釋放對象占用的相關(guān)資源的操作。
Java 虛擬機(jī)的垃圾回收操作對程序完全是透明的,因此程序無法預(yù)料某個無用對象的finalize()方法何時被調(diào)用。如果一個程序只占用少量內(nèi)存,沒有造成嚴(yán)重的內(nèi)存需求,垃圾回收器可能沒有釋放那些無用對象占用的內(nèi)存,因此這些對象的finalize()方法還沒有被調(diào)用,程序就終止了。也就是無用對象沒被回收。
程序即使顯式調(diào)用System.gc()或Runtime.gc()方法,也不能保證垃圾回收操作一定執(zhí)行,也就不能保證對象的finalize()方法一定被調(diào)用。
當(dāng)垃圾回收器在執(zhí)行finalize()方法的時候,如果出現(xiàn)了異常,垃圾回收器不會報告異常,程序繼續(xù)正常運行。
@Override
protected void finalize(){
System.out.println("in finalize");
}
在 Java 編程里面,一般不需要我們?nèi)懳鰳?gòu)方法,這里只是了解一下就可以了。
總結(jié):
簡單理解,構(gòu)造方法是創(chuàng)建對象,析構(gòu)方法是銷毀對象
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。