当前位置:首页 > 开发 > IT生活 > 正文

String池和==

发表于: 2010-02-08   作者:chicony   来源:转载   浏览:
摘要: 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)
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);//false
		System.out.println(s1==s3);//false
		System.out.println(s3==s2);//false
		System.out.println(s1==s1.intern());//s1.intern()到String池里找,而s1是在堆中所以返回false
		System.out.println(s2==s2.intern());//true
		System.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池里找,有不产生,所以返回true
		System.out.println(hello=="hello");//直接到String池里找,返回true
		System.out.println(hello=="hel"+lo);//字符串加一个引用,将产生一个新的对象,所以返回false
		System.out.println(hello==(hel+lo));//类似上面,返回false
		System.out.println(hello==(hel+lo).intern());//产生新的对象,但是有intern()方法,将到String池中
				
	}

 

String池和==

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号