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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风雪边城 中级黑马   /  2016-4-27 20:54  /  11682 人查看  /  57 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
本帖最后由 风雪边城 于 2016-4-27 20:56 编辑

String s1 = "abc";String s2 = s1 + "c";这过程中建立了几个对象

57 个回复

倒序浏览
两个对象,是s1和s2各一个
回复 使用道具 举报
两个.s1在常量池创建"abc",然后"abc"和"c"组合成"abcc",所以有两个对象
回复 使用道具 举报
s1  一个abc在常量池;s1+c 在堆内存中创建了一个stringbuffer或stringbuilder对象 然后再通过tostring方法     
最终将地址值赋给s2
回复 使用道具 举报
那不是3个对象?   常量池2个   堆内存一个
回复 使用道具 举报
2个字符串对象,
回复 使用道具 举报
本帖最后由 hsy一生戎马 于 2016-4-28 01:49 编辑

String s1 = "abc";String s2 = s1 + "c";第一个式子中先是在常量池中创建“abc”对象,然后到堆内存中创建s1+“c”对象,共两个
回复 使用道具 举报
allave 中级黑马 2016-4-28 11:57:08
8#
两个对象,一个是常量池中的“abc” 还有一个是在堆内存中创建s1+“c”
回复 使用道具 举报
逆水z行舟 发表于 2016-4-27 23:23
s1  一个abc在常量池;s1+c 在堆内存中创建了一个stringbuffer或stringbuilder对象 然后再通过tostring方法 ...

是在堆内存2个对象,一个StringBuffer,一个new String ,还有个常量池的吗?
回复 使用道具 举报
昨天说错了,应该是三个对象吧
常量池一个,stringbuffer一个,string一个吧
回复 使用道具 举报
有点汗颜。。。基础班第四天,零基础正在努力夯实基础。
回复 使用道具 举报
2个对象
回复 使用道具 举报
2个对象
回复 使用道具 举报
2个对象
回复 使用道具 举报
2个对象
回复 使用道具 举报
风雪边城 发表于 2016-4-28 22:04
是在堆内存2个对象,一个StringBuffer,一个new String ,还有个常量池的吗?

我认为过程中是建立了三个  堆里边两个 常量池一个  仅供参考 我也是刚学基础
回复 使用道具 举报
四个对象
回复 使用道具 举报
两个对象,abc在常量池中,s1+c在堆内存中
回复 使用道具 举报
2个噢  我去  回复还受字数限制
回复 使用道具 举报
两个对象
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马