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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马文丽 中级黑马   /  2016-10-3 19:13  /  834 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚做了API的测试,想问问String s1 = "ab";String s3 = s1 + "c";创建了几个对象?

9 个回复

倒序浏览
3个吧   s1 一个 s3 一个  c一个
回复 使用道具 举报
String s1 = "ab";            //创建一个
String s3 = s1 + "c";  //创建了两个
回复 使用道具 举报
只有两个啊,老师讲过的,一个是new出来的,放在常量池里
回复 使用道具 举报
我也觉得两个吧?
回复 使用道具 举报
我也觉的就创建了S1和S3 两个引用.
回复 使用道具 举报
ab,c,abc一共3个对象
回复 使用道具 举报
本帖最后由 愿望变美 于 2016-10-6 10:27 编辑

第一句一个,在常良池里。第二句三个,把s1转成StringBuilder对象,常量"c",会在字符串常量池(在方法区里)里面创建一个String对象,最后的时候,这句话在源代码内部会new String(),所以在堆内存里面,还有一个String对象,这些可以在eclipse的调试过程中进入源代码查看知道,所以总共四个

评分

参与人数 1黑马币 +5 收起 理由
荔荔舟 + 5 赞一个!

查看全部评分

回复 使用道具 举报
两个(^^)/
回复 使用道具 举报
是四个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马