关于字符数组

这两种方式,好像都是对数组gg进行操作,但是为什么最后输出的数组ss会不一样?

https://img1.mukewang.com/5b8cfa7b00010a0405300556.jpg

test01的结果是:h g f e e f g h 

test02的结果是:a b c d e f g h 


缥缈止盈
浏览 633回答 1
1回答

慕尼黑5688855

年轻人,虽然我已经多年没干Java了,但是深度复制要不要了解一下?你的在test1中,将ss赋给了gg,无论是在java,C#,js,php等(为什么就说这几个?因为我就这四个最熟啊)语言里,都复制的都不是对象本身,而是复制的对象在内存的地址,虽然你用了gg和ss两个变量,但是两个变量引用的是同一个东西。而你在test2中,重新给gg建立的数组,这样就会在内存里存在两个,你觉得一摸一样的对象,但是两个变量引用的却不是同一个地址。 你可以做一个实验,在两个方法中定义完两个变量,然后输出gg==ss(原谅我忘了java的控制台输出怎么写了),test1中应该是true,test2中应该是false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java