java中引用傳遞

基本概念

棧內存

所謂的棧內存就是存儲進程在運行過程中變量的內存空間

堆內存

所謂的堆內存就是存儲系統中數據的內存空間

數組相關的引用傳遞

先來看一段代碼

public class ArrayDemo {
    public static void main(String[] args) {
        int[] x = null;
        x = new int[3];
        System.out.println(x.length);
        x[0] = 10 ; // 數組第一個元素
        x[1] = 20 ; // 數組第二個元素
        x[2] = 30 ; // 數組第三個元素
        for (int i = 0; i<x.length ; i++) {
            System.out.println(x[i]) ; // 通過循環控制索引下標更改
            }
    }
}

通過上述代碼我們來看一下上述變量在內存空間中式如何分配的
在這裏插入圖片描述
同時,多個佔內存也可以指向同一塊對內存,如下代碼

public class ArrayDemo{
	public static void main(String[] args) {
	int[] x = null ;
	int[] temp = null ; // 聲明對象
	x = new int[3] ;
	System.out.println(x.length) ;
	x[0] = 1 ; // 數組第一個元素
	x[1] = 2 ; // 數組第二個元素
	x[2] = 3 ; // 數組第三個元素
	for (int i = 0; i<x.length ; i++) {
		System.out.println(x[i]) ; // 通過循環控制索引下標更改
	}
	temp = x ; //如果要發生引用傳遞,不要出現[]
	temp[0] = 55 ; // 修改數據
	System.out.println(x[0]) ;
	}
}

在這裏插入圖片描述
相信看了這幅圖之後,就會理解java中不同的棧變量指向相同的堆變量在內存中是如何分配的了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章