String str = new String("xyz");创建了多少个对象????????????????????????????

不关橙猫猫事的哦 2014-02-12 08:27:04
今天碰到这个面试题,我写2个。一个是new String的时候会创建一个字符串对象,"xyz"也是一个对象,他是保存在字符串池中的。

网上有好多种说法,有点说是1个,有的是2个。。还有没有其他的??
...全文
1055 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
andychen314 2016-03-11
  • 打赏
  • 举报
回复
这里挺详细的,希望对你有帮助: http://blog.csdn.net/andychen314/article/details/50857313
andychen314 2016-03-11
  • 打赏
  • 举报
回复
这里挺详细的,希望对你有帮助: http://blog.csdn.net/andychen314/article/details/50857313
  • 打赏
  • 举报
回复
引用 5 楼 u012463264 的回复:
“xyz”是一个匿名对象。 new String() 一个。 str不是对象,是一个变量,只是指向new String() 的地址。
那跟我的说法差不多了。。
引用 6 楼 SDN_SUPERUSER 的回复:
两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
恩恩差不多。。
引用 7 楼 huxiweng 的回复:
尼玛又来了,月经贴里面有了!!
哦哦。。
引用 8 楼 huxiweng 的回复:
对于出这种题的,我只想说去年买了个表。 人家jdk实现一改答案又不一样了。面试官是不是还停留在JDK1.4
额额。。
teemai 2014-02-13
  • 打赏
  • 举报
回复
对于出这种题的,我只想说去年买了个表。 人家jdk实现一改答案又不一样了。面试官是不是还停留在JDK1.4
teemai 2014-02-13
  • 打赏
  • 举报
回复
尼玛又来了,月经贴里面有了!!
jackson_fighting 2014-02-13
  • 打赏
  • 举报
回复
两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
别闹腰不好 2014-02-13
  • 打赏
  • 举报
回复
“xyz”是一个匿名对象。 new String() 一个。 str不是对象,是一个变量,只是指向new String() 的地址。
姜小白- 2014-02-12
  • 打赏
  • 举报
回复
引用 3 楼 bill0605030109 的回复:
[quote=引用 1 楼 magi1201 的回复:] 两个 一个栈中的引用对象 一个堆中的内存地址保存的对象
你是说str算一个,str存放的地址所对应的空间算一个??我觉得str不能算对象吧,他只是一个变量而已。new String才算是一个对象。[/quote] 个人理解,其实堆栈里面就那么回事 哈哈 个人理解通就好了
  • 打赏
  • 举报
回复
引用 1 楼 magi1201 的回复:
两个 一个栈中的引用对象 一个堆中的内存地址保存的对象
你是说str算一个,str存放的地址所对应的空间算一个??我觉得str不能算对象吧,他只是一个变量而已。new String才算是一个对象。
姜小白- 2014-02-12
  • 打赏
  • 举报
回复
两个 一个栈中的引用对象 一个堆中的内存地址保存的对象

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧