关于String的问题 String str ="hello" str +="world"; 此时的str还是不是原来那个? 内存怎么分配的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 肯定不是原来的那个了字符串是不可更改的对象对str运算后,对象已经变了 是新分配的.str += "world" 等同于str =(new StringBuffer().append(str).append("world")).toSting(); 此时的str 应该是 “hello world”吧,内存分配就不太清楚了 现在是“hello world”str指向了“hello world”,内存是重新分配了 堆里2块空间 一个存放hello 一个存放hello world栈里还是那个引用变量str str 存放的是hello在内存中存放的地址,在str+="world" 的时候,str重新存放的是指向hello world的内存地址!原理好像是这样的,str先找内存中有没有hello,没有则创建一个,并将他的内存地址给str,如果有则直接将内存地址给str,赋值的变化导致了类对象引用的变化,str指向了另外一个新对象!一点浅见,请指点 肯定不是原来的那个内存地址了,这时候系统会分配一个新的内存地址给str的如果你不想让系统分配新的内存地址的话那么建议你使用stringbuffer或者stringbuilder 关于包访问权限的问题 帮我解决一个关于JAVA布局的程序,谢谢 泛型可以对比吗 关于容器中iterator的用法 JDBC查询数据库问题,我是新手,请教各位,谢! 编程统计个位数是6,并且能被3整除的5位数有多少个? 我向大家要代码了!很急!大家帮我找找!很急的! LinkedList, Array, Vector的区别? 帮我查一下问题出在哪里,高分重谢!! queryDataSet4.setBigDecimal 如和把String转变成BigDecimal?????? java双缓冲绘图问题,急!在线等! java 怎么返回时间的秒数呢?
字符串是不可更改的对象
对str运算后,对象已经变了
str += "world" 等同于
str =(new StringBuffer().append(str).append("world")).toSting();
str指向了“hello world”,内存是重新分配了
栈里还是那个引用变量str
如果你不想让系统分配新的内存地址的话那么建议你使用stringbuffer或者stringbuilder