Java基础,== 和 equals 的区别是什么?

一、==

== 比较的是值是否相等

如果是基本数据类型的比较,则直接比较的是储存的值是否相等

如果是引用类型比较,则比较的是所指向对象的地址值是否相等

二、equals

equals不能用于基础数据类型的比较

equals比较的是是否是同一个对象

equals是Object的方法,如果没有重写equals方法,比较的是引用类型变量所指向对象的地址值是否相等

如String,Date等对equals方法进行了重写,则equals比较的是只想对象的内容是否相等

@Test

        public void test1() {

            int a = 1;

            int b = 1;

            System.out.println("a == b: " + (a == b));// true

            String m = "a";

            String n = "b";

            String x = new String("a");

            String y = new String("a");

            System.out.println("m == n: " + (m == n)); // false

            System.out.println("m equals(n): " + (m.equals(n))); // false

            System.out.println("m == x: " + (m == x)); // false

            System.out.println("m equals(x): " + (m.equals(x))); // true

            System.out.println("x == y: " + (x == y)); // false

            System.out.println("x equals(y): " + (x.equals(y))); // true

        }

你可能感兴趣的:(Java基础,== 和 equals 的区别是什么?)