首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 數組深度解析:引用語義、初始化語法與基本類型效率

     編輯:Java 相關知識

數組本質:指向堆對象的引用

Java 中數組標識符實際是指向堆內存中真實數組對象的引用(句柄)。數組對象創建方式有二:

  • 隱式創建:如 int[] a = new int[5]; 默認初始化為 0。
  • 顯式創建:如 Weeble[] d = {new Weeble(), new Weeble()}; 集合初始化語法。

唯一可訪問的字段是只讀的 length,表示容量而非實際元素數。訪問元素只能用 [] 語法。

引用賦值與別名效應

Weeble[] a = d; // a 和 d 指向同一堆對象
a = new Weeble[] {new Weeble(), new Weeble()}; // Java 1.1 動態初始化語法

賦值只是複製引用,a 和 d 成為別名,修改任一可見元素變化會影響另一視圖。

對象數組 vs 基本類型數組

特性對象數組基本類型數組
存儲內容引用(句柄)實際數值
默認初始值null0 / false / '\0'
效率間接訪問,稍慢直接訪問,極快

基本類型與集合的效率權衡

集合類(Vector 等)只能存對象引用。存基本類型需用包裝類(Integer、Double),這帶來:

  • 額外對象創建開銷
  • 拆箱/裝箱性能損耗
  • 內存佔用增加

結論:若追求極致性能且大小可預估,基本類型數組是最佳選擇。若需動態擴容,權衡下才用包裝類+集合。Java 當時缺乏 C++ 模板機制,無法為每種基本類型生成專用 Vector,這正是泛型和專用集合(如 IntArrayList)後來解決的問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved