黑马程序员技术交流社区

标题: 关于String问题 [打印本页]

作者: 倪大大    时间: 2014-5-8 20:14
标题: 关于String问题
本帖最后由 倪大大 于 2014-5-9 21:22 编辑

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

作者: 大恶魔先森~    时间: 2014-5-8 20:16
String str=new String("123");
String str="123;;
第一句创建了两个对象,分别是new出来的一个,以及"123";第二句创建了一个对象,就是"123".
作者: 倪大大    时间: 2014-5-8 20:28
大恶魔先森~ 发表于 2014-5-8 20:16
String str=new String("123");
String str="123;;
第一句创建了两个对象,分别是new出来的一个,以及"123" ...

你确定吗? 有人讲 第一句是创建了三个对象..
作者: 大恶魔先森~    时间: 2014-5-8 20:39
确定啊,还3个对象。。。。毕老师视频就是这样说的,第一句创建了两个对象。。。
作者: 陈妙俊    时间: 2014-5-8 20:50
String str = new String("123"),   创建了两个对象,一个对象是new出来的对象,存在于堆内存中内存,“123”也是一个对象,存在于常量池中,JVM运行时先看常量池中有没有,如果没有,就会在常量池中增加这个字符串,有的话就直接指向他
Sting str = "123"; 创建了一个对象,该对象在常量池中,
作者: Conning    时间: 2014-5-8 20:55
楼上几位说的对
作者: 轻语。    时间: 2014-5-8 21:14
善用一下论坛搜索功能。里面有很好的答案。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2