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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© s476596497 中级黑马   /  2014-1-21 08:30  /  1606 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 s476596497 于 2014-1-21 09:23 编辑

String ss = "a"+"b"+"c"+"d";

这样定义 字符串,内存中创建了几个 对象呢?

String ss=new String("a")+new String("b")+new String("c")+new String("d");
跟这个是不一样呢?
如果ss.getClass()返回的字节码是一份?还是会异常?

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

10 个回复

倒序浏览
就没个大神给解答一下嘛? 我和楼主一直在关注这个问题啊 !  管理大大要不要伸手给解析一下!
1.创建了一个对象,String字符串累加也只产生了一个对象。
2.楼主测试了没? 求大神出现!

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
kkopopo 发表于 2014-1-21 09:15
就没个大神给解答一下嘛? 我和楼主一直在关注这个问题啊 !  管理大大要不要伸手给解析一下!
1.创建了一 ...

没有啊 想不明白  也不知道怎么做
回复 使用道具 举报
s476596497 发表于 2014-1-21 09:18
没有啊 想不明白  也不知道怎么做

你在探寻什么机制? 字符串累加产生的垃圾还是看看getClass 返回的是什么?
回复 使用道具 举报
kkopopo 发表于 2014-1-21 09:22
你在探寻什么机制? 字符串累加产生的垃圾还是看看getClass 返回的是什么? ...

第二个ss能返回好几个对象,但是能返回什么字节码呢?
回复 使用道具 举报
String ss = "a"+"b"+"c"+"d";

这样定义 字符串,内存中创建了几个 对象呢?一个对象 就ss

String ss=new String("a")+new String("b")+new String("c")+new String("d");
跟这个是不一样呢?也是一个对象就ss
如果ss.getClass()返回的字节码是一份?还是会异常?
返回一个字节码 当然你的变量名是不可以相同的 不能2个ss

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
黄晓鑫 发表于 2014-1-21 12:05
String ss = "a"+"b"+"c"+"d";

这样定义 字符串,内存中创建了几个 对象呢?一个对象 就ss

那new String("a")这样不算是创建一个匿名对象吗?为什么没有返回字节码呢?如果想获取这个字节码该怎么做?
回复 使用道具 举报
算创建了一个对象 但是把对象赋值给了ss 不就是一个对象 这算是赋值动作
回复 使用道具 举报
黄晓鑫 发表于 2014-1-21 12:12
算创建了一个对象 但是把对象赋值给了ss 不就是一个对象 这算是赋值动作

这可以把很多对象赋值给同一个变量吗
回复 使用道具 举报
可以的 就跟输出语句一样 “”+“”+1+“”这个也算一个对象 这应该是享元设计模式
回复 使用道具 举报 1 0
黄晓鑫 发表于 2014-1-21 12:17
可以的 就跟输出语句一样 “”+“”+1+“”这个也算一个对象 这应该是享元设计模式 ...

哦  明白了  感谢大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马