运算符==和equals()方法
1.运算符==
(1)两个变量是基本数据类型,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就返回true。
(2)两个引用类型变量,只有当它们指向同一对象时,==才会返回true。==不能用于比较类型上没有父子关系的两个对象。
(3)"hello"直接量和new String(“hello”)的区别
(4)常量池
用于管理在编译时被确定并被保存在已编译的 .class文件中的一些数据。它包括了关于类、方法、接口中的常量,还包括字符串常量。
(5)JVM常量池管理字符串常量示例
2.equals()方法
equals 作为 Object 类的实例方法,所有引用变量都可以调用该方法来判断是否与其他引用变量相等,但此方法判断两个对象相等的标准与 == 并没有区别,因此 Object 提供的 equals() 方法意义不大,通过重写 equals 方法来实现想要实现的相等标准。
(1)String对equals方法的重写
(2)equals方法重写示例
(3)较合理的重写示例
说明:
以上的程序重写了 Person 类的 equals方法,相等的标准是若两个 Person 对象的 idStr 相等,则两个对象相等。
(4)重写equals方法要满足的条件:
你还有很多未完成的梦,你有什么理由停下脚步