关于创建对象的疑问?高手请进
String s1 = "hello ";
String s2 = "hello ";
请问这是创建了一个hello字符串,还是两个单独的字符串????
------解决方案--------------------楼上的两位同学的答案貌似正确,实际上害人不浅。
"hello "作为字符串常量,它们都放在JVM的对象池中,也就是说,上面的s1和s2指向了同一个字符串,也就是说s1 == s2的值是true。
结贴给分吧,谢谢。
------解决方案--------------------String s1 = "hello ";
String s2 = "hello ";
这中创建字符串的方式,“hello”是存储在栈中的,一般称为常量池的方式,这样的方式创建可以说 :s1 == s2 ;
如果是: String s1 = new String( "hello ");
------解决方案--------------------String s2 = new String( "hello ");
这是 s1 s2表示是对象的引用 ,s1 = s2
但是他们的内容是相同的 一般用equals() 和compareto()来比较他们的内容~!
s1.equls(s2) 为true;
s1.compareto(s2) == 1;
个人观点 !