Java对象
一、obj1.equals(object obj2):对象比较:默认为地址值比较;
(1)==:基本数据类型:值比较;引用数据类型:地址比较,默认为Object类的equals;
(2)null:不属于任何对象的实例;
二、obj.getClass():
(1)obj.getClass();返回class类型;返回class+全限命名;用==判断相等;
(2)obj.getClass().getName();返回字符串;返回权限命名;用==判断相等;
三、obj.toString():返回字符串;返回对象类名+@+对象十六进制哈希码;//一般复写;
四、obj.hashCode:返回int类型;返回对象十进制哈希码;
五、重写string中的equals方法:
1、重写:
@Data @NoArgsConstructor @AllArgsConstructor public class StringEquals { private int num; public boolean equals(Object obj){ //Object obj=new StringEquals();类型提升; if (!(obj instanceof StringEquals)) { return false; } StringEquals stringEquals=(StringEquals)obj;//类型转变,下降; return this.num==stringEquals.num; } }
2、测试:
public class Test { public static void main(String[] args){ StringEquals s1 = new StringEquals(4); StringEquals s2 = new StringEquals(4); System.out.println(s1.equals(s2)); } }