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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 79819275   /  2014-11-5 14:09  /  3408 人查看  /  52 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

学习一下……
回复 使用道具 举报
好像挺火,拿来看看
回复 使用道具 举报
看看呀:)
回复 使用道具 举报
看看,挺有意思的
回复 使用道具 举报
我想问一下 ,最后组合的字符串是怎么进入字符串常量池的?还有构造函数里传入的“abc"这个,常量池里的内容不是在编译时期就存在的吗?这里的new String();在编译期间并不会被执行啊,还是说在运行时期,JVM自动加载进了常量池里,加载进常量池不需要调用String intern()这个方法吗?求解
回复 使用道具 举报
1个 是不是~
回复 使用道具 举报
好吧   String池 忘了 - -
回复 使用道具 举报
newLife 发表于 2014-11-7 18:06
我想问一下 ,最后组合的字符串是怎么进入字符串常量池的?还有构造函数里传入的“abc"这个,常量池里的内 ...

最后的组合字符串 确实不能进入 常量池,这个是我的错误,

但是对于后面的new String("abc")进入线程池的问题,你想想是不是在new 之前 就已经先把"abc" 放入了常量池,只是这里它没得引用罢了
相当于是
String a = "abc";
String b = new String(a);
回复 使用道具 举报
回复看答案
回复 使用道具 举报
看看......
回复 使用道具 举报
看看......
回复 使用道具 举报
Evred 中级黑马 2014-11-8 22:31:39
32#
学习学习
回复 使用道具 举报
xxxxxxxxxxx
回复 使用道具 举报
哈哈哈 好东西
回复 使用道具 举报
堆栈中有3个,常量池中2个
回复 使用道具 举报
本帖最后由 new999 于 2014-11-9 11:11 编辑

纠正了一个我的错误:运行时,"+出来的String不会被放进常量池。那么结果应该是堆内存中3个,常量池中1个。
回复 使用道具 举报
3个。。。。
回复 使用道具 举报
我觉得是4个对象,new出来2个,然后字符串池里有一个,然后两个字符串相加,又一个!,我是初学者,希望大家互相交流,一起进步!
回复 使用道具 举报
让我瞅瞅答案
回复 使用道具 举报
String s = new String("abc") + new String("abc");创建了4个对象,字符串池中2个,堆中2个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马