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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 倪大大 中级黑马   /  2014-5-8 20:14  /  1935 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 倪大大 于 2014-5-9 21:22 编辑

有一个问题 一直没搞清楚. String str = new String("123"),和 Sting str = "123";
  这两句话 到底分别创建了几个对象, 为什么. 请大神解释清楚点
  我问很多人都没说得清楚 多谢多谢

6 个回复

正序浏览
善用一下论坛搜索功能。里面有很好的答案。
回复 使用道具 举报
楼上几位说的对
回复 使用道具 举报
String str = new String("123"),   创建了两个对象,一个对象是new出来的对象,存在于堆内存中内存,“123”也是一个对象,存在于常量池中,JVM运行时先看常量池中有没有,如果没有,就会在常量池中增加这个字符串,有的话就直接指向他
Sting str = "123"; 创建了一个对象,该对象在常量池中,
回复 使用道具 举报
确定啊,还3个对象。。。。毕老师视频就是这样说的,第一句创建了两个对象。。。
回复 使用道具 举报
大恶魔先森~ 发表于 2014-5-8 20:16
String str=new String("123");
String str="123;;
第一句创建了两个对象,分别是new出来的一个,以及"123" ...

你确定吗? 有人讲 第一句是创建了三个对象..
回复 使用道具 举报
String str=new String("123");
String str="123;;
第一句创建了两个对象,分别是new出来的一个,以及"123";第二句创建了一个对象,就是"123".
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马