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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Stars 中级黑马   /  2015-4-23 19:39  /  964 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

只要知道String的实例一旦生成就不会再改变了,比如说:String str=”kv”+”ill”+” “+”ans”;就是有4个字符串常量,首先”kv”和”ill”生成了”kvill”存在内存中,然后”kvill”又和” “ 生成 ”kvill “存在内存中,最后又和生成了”kvill ans”;并把这个字符串的地址赋给了str,就是因为String的“不可变”产生了很多临时变量,这也就是为什么建议用StringBuffer的原因了,因为StringBuffer是可改变的。

5 个回复

倒序浏览
Yo~ 很好很厉害
回复 使用道具 举报
还是不懂!
回复 使用道具 举报
受教了 那stringbuffer是存在堆内存中吗 不像 string 是在常量池中 是吗?
回复 使用道具 举报
奋斗吧青年,这都不是问题
回复 使用道具 举报
这个地方我老是不明白,现在懂了些。然后给str重新赋值时,变的是地址,而内存中对象“kvill ans”是不变的对吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马