Java中的內存分配
摘要 Java和C一樣,內存中有堆和棧及其他,今天直說堆和棧
今天舉例說一下Java中的堆和棧。
1、基本類型
int a = 1;
對于以上變量a,是在棧中存放的。
2、 對象
A a = new A();
其中,引用a是在棧里存放的,對象A()是在堆里存放的。
3、數組
int[] a = new int[4]; a[0] = 1; a[1] = 2; a[3] = 3; a[4] = 4;
數組的內存分配如下圖所示,引用a是在棧中,數組對象在堆中。

4、函數一
void test() {
int[] a = new int[4];
a[0] = 1;
a[1] = 2;
a[3] = 3;
a[4] = 4;
change(a);
}
void change(int[] a) {
a[0] = 10;
}
內存情況如圖:

5、函數二
void test() {
int[] a = new int[4];
a[0] = 1;
a[1] = 2;
a[3] = 3;
a[4] = 4;
change(a);
}
void change(int[] a) {
a = new int[4];
a[0] = 7;
a[1] = 8;
a[2] = 9;
a[3] = 10;
}
內存情況如下圖:

本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!