初始化和類裝載

來源:互聯網
上載者:User

在許多傳統語言裡,程式都是作為啟動過程的一部分一次性載入的。隨後進行的是初始化,再是正式執行程式。在這些語言中,必須對初始化過程進行謹慎的控制,保證static資料的初始化不會帶來麻煩。比如在一個static資料獲得初始化之前,就有另一個static資料希望它是一個有效值,那麼在C++中就會造成問題。

Java則沒有這樣的問題,因為它採用了不同的裝載方法。由於Java中的一切東西都是對象,所以許多活動變得更加簡單,這個問題便是其中的一例。正如下一章會講到的那樣,每個對象的代碼都存在於獨立的檔案中。除非真的需要代碼,否則那個檔案是不會載入的。通常,我們可認為除非那個類的一個物件建構完畢,否則代碼不會真的載入。由於static方法存在一些細微的歧義,所以也能認為“類代碼在首次使用的時候載入”。

首次使用的地方也是static初始化發生的地方。裝載的時候,所有static對象和static代碼塊都會按照本來的順序初始化(亦即它們在類定義代碼裡寫入的順序)。當然,static資料只會初始化一次。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.