首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

String池跟==

2012-11-09 
String池和public static void main(String[] args) {String s1new String(abc)String s2abc//

String池和==

public static void main(String[] args) {String s1=new String("abc");String s2="abc";//放入String池里String s3=new String("abc");System.out.println(s1==s2);//falseSystem.out.println(s1==s3);//falseSystem.out.println(s3==s2);//falseSystem.out.println(s1==s1.intern());//s1.intern()到String池里找,而s1是在堆中所以返回falseSystem.out.println(s2==s2.intern());//trueSystem.out.println(s1.intern()==s3.intern());//两个字符串同时到String里查找,返回true//以下三个都放到String池String hello="hello";String hel="hel";String lo="lo";System.out.println(hello=="hel"+"lo");//字符串相加以后,会到String池里找,有不产生,所以返回trueSystem.out.println(hello=="hello");//直接到String池里找,返回trueSystem.out.println(hello=="hel"+lo);//字符串加一个引用,将产生一个新的对象,所以返回falseSystem.out.println(hello==(hel+lo));//类似上面,返回falseSystem.out.println(hello==(hel+lo).intern());//产生新的对象,但是有intern()方法,将到String池中}

?

热点排行