DESKTOP-P665UA2_20200829-石家雨
1、问题
1、String类重写了equals方法,重写前比较的是对象在内存中的地址,重写后比较的是两个对象的内 容。
重写前:
public static void main(String[] args) {
String str1 = new String("str1");
String str2 = new String("str1");//这是两个不同的对象,存放在堆中不同的位置
System.out.println(str1.equals(str2));//true,String类重写了equals方法
System.out.println(str1==str2);//false
Person p1 = new Person(1);
Person p2 = new Person(1);
System.out.println(p1.equals(p2));//false,没有重写equals方法,所以调用的是 0Object中的equals方法
System.out.println(p1 == p2);//false
重写后:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age.equals(person.age);//重写后是按属性比较
}
@Override
public int hashCode() {
return age.hashCode();
}
Person p1 = new Person(1);
Person p2 = new Person(1);
System.out.println(p1.equals(p2));//true,重写后是按属性比较
System.out.println(p1 == p2);//false
2、试卷中中的程序设计题,计算字符串所有碎片的平均长度没有思路,不知道怎么写
2、吐槽
今天的考试有点问题的地方都是之前考过的知识点,还是没有掌握好,还有简答题答得也不是很好。
近期评论