Discuss / Java / 应该是这样吧

应该是这样吧

Topic source

尼玛作坊

#1 Created at ... [Delete] [Delete and Lock User]

一、String[]数组

String[] fullname = new String[] { "Homer", "Simpson" };

1、fullname 存放的是对象的 地址指针,对象是属性如下:

{ "Homer", "Simpson" }

2、下面调用类函数,其实是把“fullname”复制了一遍,这个也是个 地址指针,同时指向 上面的对象。

p.setName(fullname); // 传入fullname数组

3、然后将String fullname数组的第一个属性,替换成“Bart”

fullname[0] ="Bart"

也就是对象属性被替换了,所以第一次是 “Homer”,第二次是“Bart”。

二、String对象

1、String bob 存放的是对象的属性是"Bob"

String bob = "Bob";

2、下面调用类函数,其实是把“bob”复制了一遍,这个也是个 地址指针,同时指向上面的对象。

p.setName(bob); // 传入bob变量

3、因为String的不可更改性质,赋值“Alice”的是时候是 bob 指向了一个新的 对象“Alice”,不是替换原来的“Bob”

  bob = "Alice"; // bob改名为Alice

而原来的p.setName(bob),内的bob还是指向“Bob”对象,所以第一次是bob,第二次还是bob

倫巴

#2 Created at ... [Delete] [Delete and Lock User]

这样就解释通了


  • 1

Reply