码迷,mamicode.com
首页 > 其他好文 > 详细

String比较 运用String.equals

时间:2017-09-14 14:51:14      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:堆内存   out   内存   技术分享   alt   ati   http   oid   wan   

首先定义四个变量str

public class SIzhui {
    public static void main(String[] args) {
        String str1="wang";
        String str2="li";
        String str3="wang";
        String str4=new String("wang");

}
    
}

然后进行比较

public class SIzhui {
    public static void main(String[] args) {
        String str1="wang";
        String str2="li";
        String str3="wang";
        String str4=new String("wang");
        
        System.out.println(str1==str2);
        System.out.println(str1==str3);
        System.out.println(str1==str4); 

}
    
}

每定义一个String类型,就会在内存中开辟一块空间

此处比较的是4个变量的地址

所以输出

技术分享

因为变量str1和变量str3赋给的值都为“wang”;

所以这两个的值被自动存入同一个常量池,

所以此时比较str1和str3,输出的是true;

str4赋给的值同样是“wang”,

但是str4=new string,也就是说,此处“wang”被放到一个新开辟的堆内存中,而不会存入常量池,所以此处输出false。

如果想比较两个String型变量的值,就用到一个String.equals。这个方法就是用来比较字符串。

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

结果

技术分享

String比较 运用String.equals

标签:堆内存   out   内存   技术分享   alt   ati   http   oid   wan   

原文地址:http://www.cnblogs.com/FrankLiner/p/7520240.html

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