代码:
System.out.println("购物车的总金额" + c.getTotalPrice());
System.out.println(i1.hashCode()+" "+i3.hashCode());
System.out.println(i1);
System.out.println(i3);
System.out.println(i1 == i3);
System.out.println(i1.equals(i3));
这个 i1 i3 对象的类重写了 hashcode 和 equals 没有重写 toString
控制台显示如下:
购物车的总金额 1400.0
789159489 789159489
entity.Items@2f099e41
entity.Items@2f099e41
false
true
这个 false 有点懵 基础差了。。分别打印 i1 和 i3 显示出来的也都是一样的 但是==就是 false 所以说打印直接打印对象输出结果不能算是内存地址吗 这个 false 是根据什么比较的呢 以前的认识就是==比较地址 直接打印对象不就是地址吗??打印结果一样 判等为啥就是 false 呢
System.out.println("购物车的总金额" + c.getTotalPrice());
System.out.println(i1.hashCode()+" "+i3.hashCode());
System.out.println(i1);
System.out.println(i3);
System.out.println(i1 == i3);
System.out.println(i1.equals(i3));
这个 i1 i3 对象的类重写了 hashcode 和 equals 没有重写 toString
控制台显示如下:
购物车的总金额 1400.0
789159489 789159489
entity.Items@2f099e41
entity.Items@2f099e41
false
true
这个 false 有点懵 基础差了。。分别打印 i1 和 i3 显示出来的也都是一样的 但是==就是 false 所以说打印直接打印对象输出结果不能算是内存地址吗 这个 false 是根据什么比较的呢 以前的认识就是==比较地址 直接打印对象不就是地址吗??打印结果一样 判等为啥就是 false 呢