java问题

yongzonglai 2010-06-26 10:13:40
String s=new String("xyz");创建了几个对象 String Object ?
答案是:两个 为什么呢???
...全文
358 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyouyong 2010-06-26
  • 打赏
  • 举报
回复
应该是两个对象,堆内存中一个xyz,栈内存中一个s。s是指向xyz的!
xshcom 2010-06-26
  • 打赏
  • 举报
回复
三楼好像是对的
person_java 2010-06-26
  • 打赏
  • 举报
回复
2个,一个是栈中,一个处于堆中!
tjb1216 2010-06-26
  • 打赏
  • 举报
回复
3楼正解
bai_feng 2010-06-26
  • 打赏
  • 举报
回复
简单来说,String s=new String("xyz");至少有一个,如果已经有String sr="xyz";这样的语句,那后来new的对象就是String缓冲池的拷贝。如果没有的话,那String s=new String("xyz")这句话首先会在缓冲池和堆内存中分别创建一个
fantasy471503202 2010-06-26
  • 打赏
  • 举报
回复
很老的问题了,http://topic.csdn.net/u/20070828/10/43260254-04f1-4ac0-9da1-b48af45c2a83.html,个人认为 43楼回答的较为准确。楼主去看一下。
SZ深呼吸 2010-06-26
  • 打赏
  • 举报
回复
"xyz"本身就是一个对象.你可以写成String s = "xyz";
new String()这又新建了一个对象。
你可以试一下s == "xyz",返回的是false,说明这两个不是一个对象

62,614

社区成员

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

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