MyException - 我的异常网
当前位置:我的异常网» J2SE » String底层有关问题。

String底层有关问题。

www.MyException.Cn  网友分享于:2013-12-15  浏览:4次
String底层问题。。。
 
  String s1 = "Hello World";
  String s2 = new String("Hello World");

  System.out.println(s1 == s2);

 为什么会输出false?

能告诉我底层原理吗?

------解决方案--------------------
最经典的月经贴!
------解决方案--------------------
大姨妈又要来了。。。。等号比较的是内存位置,引用的对象所在的内存完全一样才为true.
------解决方案--------------------
== 是比较内存地址的。 
"Hello World" 对象是放在常量池中。
new String("Hello World"); 实例化一个java对象,在堆中新开一块内存。


String s1 = "Hello World";
String s2 = "Hello World";

这样子时true吧。

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有