Java中的數組

來源:互聯網
上載者:User

幾乎所有程式設計語言都支援數組。在C和C++裡使用數組是非常危險的,因為那些數組只是記憶體塊。若程式訪問自己記憶體塊以外的數組,或者在初始化之前使用記憶體(屬於常規編程錯誤),會產生不可預測的後果(注釋②)。

②:在C++裡,應盡量不要使用數組,換用標準模板庫(Standard TemplateLibrary)裡更安全的容器。

Java的一項主要設計目標就是安全性。所以在C和C++裡困擾程式員的許多問題都未在Java裡重複。一個Java可以保證被初始化,而且不可在它的範圍之外訪問。由於系統自動進行範圍檢查,所以必然要付出一些代價:針對每個數組,以及在運行期間對索引的校正,都會造成少量的記憶體開銷。但由此換回的是更高的安全性,以及更高的工作效率。為此付出少許代價是值得的。
建立對象數組時,實際建立的是一個控制代碼數組。而且每個控制代碼都會自動初始化成一個特殊值,並帶有自己的關鍵字:null(空)。一旦Java看到null,就知道該控制代碼並未指向一個對象。正式使用前,必須為每個控制代碼都分配一個對象。若試圖使用依然為null的一個控制代碼,就會在運行期報告問題。因此,典型的數組錯誤在Java裡就得到了避免。

也可以建立主類型數組。同樣地,編譯器能夠擔保對它的初始化,因為會將那個數組的記憶體劃分成零。
數組問題將在以後的章節裡詳細討論。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.