A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String类产生对象不可更改是怎么理解的?产生对象内容和引用存储在哪?

6 个回复

倒序浏览
系统为该String在堆内存中开辟一个单独的空间用于存储内容,并把地址值传给String变量,再给String变脸赋值和追加内容等操作,都只是在堆内存中重新开辟一块内存空间并把该地址值赋给String变量,应该是这样的
回复 使用道具 举报 0 1
值存储在堆内存中,值不可更改.
回复 使用道具 举报
我觉得String类型创建的对象不可变是因为对象属于字符串常量,存于常量池中,将其地址指向对象,如果再创建一个对象指向这个常量,则实际上两者指向同一个对象,地址也相同。
回复 使用道具 举报
实际上是因为任何对String类型进行的底层操作都会copy一份.   
回复 使用道具 举报
何亚辉 发表于 2016-6-7 11:15
实际上是因为任何对String类型进行的底层操作都会copy一份.

也就是说每次的Stringde 操作都会产生新的String对象?
回复 使用道具 举报
每次都会产生一个新的String字符串
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马