如何在Java 9的JShell中声明引用类型?

与值类型不同,引用类型不会直接存储其值。相反,它将存储存储值的地址 。这意味着引用类型包含指向另一个保存数据的存储位置指针。引用类型为String,数组,类委托

片段1

jshell> class Animal {
   ...> }
| created class Animal

jshell> Animal dog = new Animal();
dog ==> Animal@73846619

n个下面的代码片段,两个新的动物对象是在堆上创建的。它们的存储位置(引用)存储在引用变量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

n中的下面的代码段,“ J = ”复制的“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