黑马程序员技术交流社区

标题: 关于String是不可变的 [打印本页]

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


作者: 大西洋    时间: 2015-4-23 23:35
Yo~ 很好很厉害
作者: 黄文昭    时间: 2015-4-24 00:18
还是不懂!
作者: sunyue    时间: 2015-4-24 16:57
受教了 那stringbuffer是存在堆内存中吗 不像 string 是在常量池中 是吗?
作者: 小丑的眼泪    时间: 2015-4-24 17:18
奋斗吧青年,这都不是问题
作者: 爱如kongcheng    时间: 2015-4-24 20:23
这个地方我老是不明白,现在懂了些。然后给str重新赋值时,变的是地址,而内存中对象“kvill ans”是不变的对吧?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2