免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Java對象怎么初始化

本篇內容主要講解“Java對象怎么初始化”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java對象怎么初始化”吧!

為黃龍等地區用戶提供了全套網頁設計制作服務,及黃龍網站建設行業解決方案。主營業務為網站設計制作、網站設計、黃龍網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

一、什么時候需要初始化一個類

首次創建某個對象時:

Dogdog=newDog();

首次訪問某個類的靜態方法或者靜態字段時:

Dog.staticFields;

Java解釋器就會去找類的路徑,定位已經編譯好的Dog.class文件。

二、獲得類的資源

然后jvm就會載入Dog.class,生成一個class對象。這個時候如果有靜態的方法或者變量,靜態初始化動作都會被執行。這個時候要注意啦,靜態初始化在程序運行過程中只會在Class對象首次加載的時候運行一次。這些資源都會放在jvm的方法區。

方法區又叫靜態區,跟堆一樣,被所有的線程共享。

方法區中包含的都是在整個程序中永遠唯一的元素,包含所有的class和static變量。

三、初始化對象Dogdog=newDog()

1.第一次創建Dog對象先執行上面的一二步

2.在堆上為Dog對象分配足夠的存儲空間,所有屬性和方法都被設置成默認值(數字為0,字符為null,布爾為false,而所有引用被設置成null)

3.執行構造函數檢查是否有父類,如果有父類會先調用父類的構造函數,這里假設Dog沒有父類,執行默認值字段的賦值即方法的初始化動作。

4.執行構造函數。

有父類情況下的初始化

假設:DogextendsAnimal

1、執行第一步,找出Dog.class文件,接著在加載過程中發現他有一個基類(通過extends關鍵字),于是先執行Animal類的第一二步,加載其靜態變量和方法,加載結束之后再加載子類Dog的靜態變量和方法。

如果Animal類還有父類就以此類推,最終的基類叫做根基類。

注意:因為子類的static初始化可能會依賴于父類的靜態資源,所以要先加載父類的靜態資源。

2、接著要newDog對象,先為Dog對象分配存儲空間->到Dog的構造函數->創建默認的屬性。這里其構造函數里面的第一行有個隱含的super(),即父類構造函數,所以這時會跳轉到父類Animal的構造函數。

Java會幫我們完成構造函數的補充,Dog實際隱式的構造函數如下:

Dog(){

//創建默認的屬性和方法

//調用父類的構造函數super()(可顯式寫出)

//對默認屬性和方法分別進行賦值和初始化

}

3、父類Animal執行構造函數前也是分配存儲空間->到其構造函數->創建默認的屬性->發現挖槽我已經沒有父類了,這個時候就給它的默認的屬性賦值和方法的初始化。

4、接著執行構造函數余下的部分,結束后跳轉到子類Dog的構造函數。

5、子類Dog對默認屬性和方法分別進行賦值和初始化,接著完成構造函數接下來的部分。

到此,相信大家對“Java對象怎么初始化”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

文章題目:Java對象怎么初始化
網站URL:http://m.newbst.com/article12/jeipgc.html

成都網站建設公司_創新互聯,為您提供網站策劃小程序開發微信公眾號關鍵詞優化網站內鏈企業網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站優化排名