码迷,mamicode.com
首页 > 编程语言 > 详细

Java中关于String的比较

时间:2016-03-09 00:03:54      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

关于String的各种==和equals,有的人搞不懂

简而言之

String  s1 = "Hello"                     声明的是一个常量,会在常量池里。

String  s2 = new String("Hello"),声明的是一个对象,在内存里会有单独的空间。 

==比较的是String的地址

equals比较的是String的内容

public class TestString{
    public static void main(String[] args){
        String str1 = new String("Hello");
        String str2 = new String("Hello");
        String str3 = "Hello";
        String str4 = "Hello";
        System.out.println(str1.hashCode());
        System.out.println(str2.hashCode());
        System.out.println(str1.equals(str2));
        System.out.println(str1==str2);
        System.out.println(str1.equals(str3));
        System.out.println(str1==str3);    
        System.out.println(str3.equals(str4));
        System.out.println(str3==str4);    
    }
}

输出是:

69609650
69609650
true
false
true
false
true
true

 

Java中关于String的比较

标签:

原文地址:http://www.cnblogs.com/yueyanglou/p/5256162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!