黑马程序员技术交流社区
标题:
String类产生对象不可更改是怎么理解的?产生对象内容和引用存储在哪?
[打印本页]
作者:
见著
时间:
2016-6-5 23:10
标题:
String类产生对象不可更改是怎么理解的?产生对象内容和引用存储在哪?
String类产生对象不可更改是怎么理解的?产生对象内容和引用存储在哪?
作者:
ljd
时间:
2016-6-5 23:49
系统为该String在堆内存中开辟一个单独的空间用于存储内容,并把地址值传给String变量,再给String变脸赋值和追加内容等操作,都只是在堆内存中重新开辟一块内存空间并把该地址值赋给String变量,应该是这样的
作者:
骄阳登峰
时间:
2016-6-6 00:29
值存储在堆内存中,值不可更改.
作者:
见著
时间:
2016-6-6 23:31
我觉得String类型创建的对象不可变是因为对象属于字符串常量,存于常量池中,将其地址指向对象,如果再创建一个对象指向这个常量,则实际上两者指向同一个对象,地址也相同。
作者:
何亚辉
时间:
2016-6-7 11:15
实际上是因为任何对String类型进行的底层操作都会copy一份.
作者:
lifeiwangyue
时间:
2016-6-7 13:58
何亚辉 发表于 2016-6-7 11:15
实际上是因为任何对String类型进行的底层操作都会copy一份.
也就是说每次的Stringde 操作都会产生新的String对象?
作者:
云袭
时间:
2016-6-7 18:56
每次都会产生一个新的String字符串
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2