如何在Java 9的JShell中宣告引用型別?
JShell 是Java 9中一個互動式工具,允許使用者輸入、評估並向用戶列印輸出。
與值型別不同,引用型別不會直接儲存其值。相反,它將儲存值的地址。這意味著引用型別包含一個指向儲存資料的另一個記憶體位置的指標。引用型別包括字串、陣列、類和委託。
在下面的程式碼片段中,當我們建立一個新的Animal例項時,它可以在堆記憶體中建立。new Animal()在堆上建立一個物件。Animal@73846619,該物件儲存在堆的地址73846619處。
程式碼片段1
jshell> class Animal {
...> }
| created class Animal
jshell> Animal dog = new Animal();
dog ==> Animal@73846619在下面的程式碼片段中,在堆上建立了兩個新的Animal物件。它們的記憶體位置(引用)儲存在引用變數dog和cat中。在Java中,所有類都是引用型別。除原始變數例項外,所有例項或物件都儲存在堆中。物件的引用儲存在像dog和cat這樣的引用變數中。
程式碼片段2
jshell> class Animal {
...> int id;
...> public Animal(int id) {
...> this.id = id;
...> }
...> }
| created class Animal
jshell> Animal dog = new Animal(10);
dog ==> Animal@6adede5
jshell> Animal cat = new Animal(20);
cat ==> Animal@5025a98f在下面的程式碼片段中,“j = I”將“I”的值複製到“j”。之後,當“j”的值改變時,“I”不受影響。使用原始變數比較它們的值。
程式碼片段3
jshell> int i = 5; i ==> 5 jshell> int j; j ==> 0 jshell> j = i; j ==> 5 jshell> j = 10; j ==> 10 jshell> i; i ==> 5 jshell> i == j; $11 ==> false jshell> j = 5; j ==> 5 jshell> i == j; $13 ==> true
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP