关于创建对象的疑问?高手请进

sklyk 2007-09-02 05:47:43
String s1 = "hello";
String s2 = "hello";

请问这是创建了一个hello字符串,还是两个单独的字符串????
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sklyk 2007-09-02
  • 打赏
  • 举报
回复
bit1010(因为学无止境所以更要努力学)、sharpyuce()
两位,真不好意思,我就十几分,不过为表示谢意,每人送一分,还望海涵!
sharpyuce 2007-09-02
  • 打赏
  • 举报
回复
上面的 s1 != s2笔误~~
sharpyuce 2007-09-02
  • 打赏
  • 举报
回复
String s2 = new String("hello");
这是 s1 s2表示是对象的引用 ,s1 = s2
但是他们的内容是相同的 一般用equals() 和compareto()来比较他们的内容~!
s1.equls(s2) 为true;
s1.compareto(s2) == 1;


个人观点 !
sharpyuce 2007-09-02
  • 打赏
  • 举报
回复
String s1 = "hello";
String s2 = "hello";

这中创建字符串的方式,“hello”是存储在栈中的,一般称为常量池的方式,这样的方式创建可以说 :s1 == s2 ;
如果是: String s1 = new String("hello");
bit1010 2007-09-02
  • 打赏
  • 举报
回复
楼上的两位同学的答案貌似正确,实际上害人不浅。

"hello"作为字符串常量,它们都放在JVM的对象池中,也就是说,上面的s1和s2指向了同一个字符串,也就是说s1 == s2的值是true。

结贴给分吧,谢谢。
phyeas 2007-09-02
  • 打赏
  • 举报
回复
支持楼上的
snail1toz 2007-09-02
  • 打赏
  • 举报
回复
s1,s2只是2个引用,分别指向了2个内存地址,只是巧合的是他们的值都是hello

62,623

社区成员

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

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