Java是一種面向對象的編程語言,其中值引用和對象引用是常見的概念。 變量可以是值類型或引用類型,具體取決于數據類型和如何聲明變量。
值類型變量存儲的是數據本身的值,而引用類型變量存儲的是一個引用(或指針),指向存儲在內存中的對象。
// 值類型變量 int number = 10; double decimal = 3.14; // 對象引用變量 String name = "John"; List<Integer> numbers = new ArrayList<>();
值類型變量的值在內存中分配了一塊空間,值類型變量的值存儲在這里。 賦值語句將值復制到另一個變量中,而不是變量本身。 例如,以下代碼片段中創建了兩個整數值,每個變量都存儲數字的一個副本。
int num1 = 10; int num2 = num1;
然而,引用類型變量不直接存儲對象本身。 相反,它們存儲一個指向對象的指針,該對象存儲在內存中的某個位置。 當一個對象引用變量被賦予一個新值時,它指向一個新的對象。
List<Integer> numbers1 = new ArrayList<>(); List<Integer> numbers2 = numbers1; numbers1.add(5); numbers2.add(7); System.out.println(numbers1); // [5, 7] System.out.println(numbers2); // [5, 7]
上面的示例中,numbers1和numbers2指向同一個對象(即ArrayList)。 當將值添加到其中一個列表時,兩個列表都會更新,因為它們實際上指向同一個內存位置中的對象。
簡而言之,值類型變量存儲實際值本身,而引用類型變量存儲指向內存中對象的指針。
上一篇java 傳參和返回值
下一篇jquery 顏色拾取器