Java 中 == 和 equals () 区别
比较地址值是不是同一个对象equals默认也是比较地址但String、包装类重写后比较内容值三、基本数据类型用 基本数据类型byte、short、int、long、float、double、boolean、char只能用比较数值本身。int a 10; int b 10; System.out.println(a b); // true引用类型 的作用引用类型使用比较的是对象的内存地址不是内容。String s1 new String(hello); String s2 new String(hello); System.out.println(s1 s2); // false 地址不一样equals () 方法使用Object 原生 equals本质和 一样也是比较地址String、Integer 等类重写了 equals变成比较内容String s1 new String(hello); String s2 new String(hello); System.out.println(s1.equals(s2)); // true 内容相同字符串常量池String s1 abc; String s2 abc; System.out.println(s1 s2); // true原因直接赋值会放入字符串常量池复用同一个地址。可以用于基本类型和引用类型基本类型比较数值引用类型比较内存地址equals()只适用于引用类型没重写和 一样比地址重写后String、Integer比较内容开发中判断字符串是否相等一律用 equals比较字符串时建议把常量放前面避免空指针// 推荐 if (admin.equals(username)){ }