在JAVA里面,牵扯到equals和equalsIgnoreCase比较字符串的功能函数,前者比较的时候区分大小写,空格,后者比较时忽略大小写。这两个很简单,如下例子:

public class ss
{
    public static void main(String[] args)
    {
        String c1="i am good";
        String c2="i am good";
        String c3="I AM GOOD";
        String c4=new String("i am good");
        String c5=new String("i am good");
        String c6=new String("I AM GOOD");
        System.out.println("c1==c2:"+(c1==c2));
        System.out.println("c1==c3:"+(c1==c3));
        System.out.println("c4==c5:"+(c4==c5));
        System.out.println("c4==c6:"+(c4==c6));
        System.out.println("c1.equals(c2)"+c1.equals(c2));
        System.out.println("c1.equals(c3)"+c1.equals(c3));
        System.out.println("c4.equals(c5)"+c4.equals(c5));
        System.out.println("c4.equals(c6)"+c4.equals(c6));
                  System.out.println("c1.equalsIgnoreCase(c2)"+c1.equalsIgnoreCase(c2));
        System.out.println("c1.equalsIgnoreCase(c3)"+c1.equalsIgnoreCase(c3));
        System.out.println("c4.equalsIgnoreCase(c5)"+c4.equalsIgnoreCase(c5));
        System.out.println("c4.equalsIgnoreCase(c6)"+c4.equalsIgnoreCase(c6));
}
}

我们可以看到,无论以String c1=”i am good”;方式建立的字符数组还是以String c4=new String(“i am good”);方式建立的数组,在使用equalsIgnoreCase和equals上,两者的区别就在于去不去分大小写。 
我们重点介绍==和equals的区别。 
首先,我们从程序执行结果可以看到,在比较以String c1=”i am good”;方式建立的字符数组时,==和以equals的比较结果是一样的,而在以String c4=new String(“i am good”);方式建立的数组时,两者结果却是不一样的,这是因为==比较的是内存位置,不适合拿来比较字符串,而整型等可以用==比较。equals和==的区别就在这里,它比较的是内存中的内容。 
我们应该推测出,以String c1=”i am good”;方式申请数组时,不立即分配内存,而是在用到时分配,而String c4=new String(“i am good”);需要提前分配好数组内存。两者在内存分配上是有区别的。这也是很多JAVA书籍中申请数组时都要加new的原因,当然,不加也可以,也可使用。加于不加new,也就是使用==比较时有区别(其他影响我也没发现)。


看到这里如果这篇文章真的帮到你了,不妨打赏一下哦!

以上就是红色火线JAVA加油站整理的关于java中"=="和equals和equalsIgnoreCase三者的区别的文章,
希望可以帮到你,如果你有不同的见解可以留言指正哦,避免让别的java小伙伴在走挫折路。
SpringMVC下的Shiro权限框架的使用
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信