==与equals区别

发布时间 2023-07-27 11:39:03作者: 俟礼
public class ll{
        public static void main(String[] args) {
            String s1 = "abc";
            String s2 = "abc";
            String s3 = new String("abc");
            String s4 = "a" + "b" + "c";
            String s5 = "ab";
            String s6 = s5 + "c";
            String s7="ab"+"c";
            System.out.println(s1 == s2);//true
            System.out.println(s2==s4);//true
            System.out.println(s1.equals(s2));//true
            System.out.println(s1 == s3);//false
            System.out.println(s1.equals(s3));//true
            System.out.println(s1 == s4);//true
            System.out.println(s1.equals(s4));//true
            System.out.println(s1 == s5);//false
            System.out.println(s1.equals(s5));//false
            System.out.println(s1 == s6);//false
            System.out.println(s4 == s7);//true
            System.out.println(s6 == s7);//false
            System.out.println(s1.equals(s6));//true
            }
}
不同点 equels ==
对象类型不同 equals():是超类Object中的方法 ==是操作符
比较对象不同 1,String、Date、File、包装类都重写了Object类的equals方法。如果类中重写了equals方法,equals比较内容是否相等。2,如果类中没有重写equals方法,equals比较地址值是否相等(是否指向同一个地址值)。 1,如果比较的是基本数据类型变量,比较两个变量的值是否相等。(不一定数据类型相同)。2,如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个地址值。
运行速度不同 equals():没有==运行速度快。 ==运行速度比equals快, ==只是比较引用。