Java數組在內存中是如何存放的
一個數組可以分解爲多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分爲數值數組、字符數組、指針數組、結構數組等各種類別。那麼Java數組在內存中是如何存放的?以下僅供參考!
Java中有兩種類型的數組:
基本數據類型數組;
對象數組;
當一個對象使用關鍵字“new”創建時,會在堆上分配內存空間,然後返回對象的引用,這對數組來說也是一樣的,因爲數組也是一個對象;
一維數組
int[] arr = new int[3];
在以上代碼中,arr變量存放了數組對象的引用;如果你創建了空間大小爲10的整形數組,情況是一樣的',一個數組對象所佔的空間在堆上被分配,然後返回其引用;
二維數組
那麼二維數組是如何存儲的呢?事實上,在Java中只有一維數組,二維數組是一個存放了數組的數組,如下代碼及示意圖:
int[ ][ ] arr = new int[3][ ];
arr[0] = new int[3];
arr[1] = new int[5];
arr[2] = new int[4];
對於多維數組來說,道理是一樣的;
數組對象及其引用存放在內存中的哪裏?
在Java中,數組同樣是一個對象,所以對象在內存中如何存放同樣適用於數組;
正如我們都知道的,java運行時數據區包括堆,JVM棧和其它。如下代碼是一個小例子,那麼就讓我們來看看數組和它的引用在內存中是如何存放的.
class A { int x; int y;
}
ic void m1() { int i = 0;
m2();
}public void m2() {
A a = new A();
}
...
相關文章
-
Java內存是如何劃分的
Java具有簡單性、面向對象、分佈式、健壯性、安全性、與可移植性、多線程、動態性等特點。Java的內存是怎麼劃分的?下面就一起來了解看看吧! Java內存劃分Java把內存劃分成兩種:一種是棧內存,一種是堆內存。 棧內 -
如何識別Java中的內存泄漏
Java開發人員都知道,Java利用垃圾回收機制來自動保持應用程序內存的乾淨和健康。然而可能有人不知道的是,即使使用了垃圾回收機制,Java中仍然可能存在內存泄漏風險。如果你碰到下面的錯誤代碼:如果你確認是內存分配不足,那 -
如何解決java內存泄漏
時光在流逝,從不停歇,我們的工作又進入新的階段,爲了在工作中有更好的成長,一起對今後的學習做個計劃吧。我們該怎麼擬定計劃呢?以下是小編爲大家整理的it銷售年工作計劃,僅供參考,歡迎大家閱讀。it銷售年工作計劃1工作目標 -
如何解決java內存泄漏的問題
在C++中,內存泄漏的範圍更大一些。有些對象被分配了內存空間,然後卻不可達,由於C++中沒有GC,這些內存將永遠收不回來。在Java中,這些不可達的對象都由GC負責回收,因此不需要考慮這部分的內存泄露。注重事項:1.最基本的建議是 -
java程序運行時內存如何分配
狀物作文:清高的草似在暴風雨中頂着雷鳴的那隻海燕,在牆頭隨風左右搖擺的那株青草令我感到震撼,使我想爲隨風倒的牆頭草平反。同樣是草,同樣爲了生存,同樣在爲大地綴色。爲何一上牆頭就受到了人們的鄙夷?但無論人們如何輕 -
在Java中調用存儲過程是怎樣的
謎面妲己設計害比干謎語類型打一成語謎底挖空心思 -
java中JVM虛擬機內存模型詳細說明
以下是本站小編爲大家收集的java中JVM虛擬機內存模型詳細說明內容,歡迎閱讀學習! JVM的內部結構如下圖:java中JVM虛擬機內存模型詳細說明 - 天涯草 - 天涯草一個優秀Java程序員,必須瞭解Java內存模型、GC工作原理,以及 -
Java如何實現一個簡單的緩存
緩存是在web開發中經常用到的,將程序經常使用到或調用到的對象存在內存中,或者是耗時較長但又不具有實時性的查詢數據放入內存中,在一定程度上可以提高性能和效率。那麼,用Java如何實現一個簡單的緩存?下面本站小編帶大家 -
在Java中調用存儲的過程
導語:存儲過程是指保存在數據庫並在數據庫端執行的程序。你可以使用特殊的語法在Java類中調用存儲過程。在調用時,存儲過程的名稱及指定的參數通過JDBC連接發送給DBMS,執行存儲過程並通過連接(如果有)返回結果。下面是在 -
Java的內存模型
在Java語言中,採用的是共享內存模型來實現多線程之間的信息交換和數據同步的。線程之間通過共享程序公共的狀態,通過讀-寫內存中公共狀態的方式來進行隱式的通信。同步指的是程序在控制多個線程之間執行程序的相對順序