这两种方式,好像都是对数组gg进行操作,但是为什么最后输出的数组ss会不一样?test01的结果是:h g f e e f g h test02的结果是:a b c d e f g h
1 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
年轻人,虽然我已经多年没干Java了,但是深度复制要不要了解一下?
你的在test1中,将ss赋给了gg,无论是在java,C#,js,php等(为什么就说这几个?因为我就这四个最熟啊)语言里,都复制的都不是对象本身,而是复制的对象在内存的地址,虽然你用了gg和ss两个变量,但是两个变量引用的是同一个东西。
而你在test2中,重新给gg建立的数组,这样就会在内存里存在两个,你觉得一摸一样的对象,但是两个变量引用的却不是同一个地址。
你可以做一个实验,在两个方法中定义完两个变量,然后输出gg==ss(原谅我忘了java的控制台输出怎么写了),test1中应该是true,test2中应该是false
添加回答
举报
0/150
提交
取消