java基础2
构造器:
构造器与类同名;
每个类可以有一个以上的构造器;
构造器可以有0个,1个或多个参数;
构造器没有返回值;
构造器总是伴着new一起调用
方法重载:
方法名字一样,参数不一样(数量,顺序)
方法重写:
方法签名一样,重新编写内容
括号里---显示参数
this----隐式参数
代码执行顺序:静态的只执行一次,父类对象优先于子类
object提供的方法:
equals判断是否为同一个对象hashCode判断是否为同一类
大部分类在重写equals方法时会重写hashCode方法
1.如果两个对象相同(equals方法返回true)那么他们的hashCode值一定相同
2.如果两个对象不同(equals方法返回false)那么他们的hashCode值可能相同可能不同
3.如果两个对象hashCode值相同(存在哈希冲突),他们可能相同可能不同(equals方法可能返回true,可能返回false)
4.如果两个对象hashCode值不相同,那么他们两个肯定不同(equals方法返回false)
//面试题1两个不同的对象hashCode有没有可能相同?有极小概率相同
//面试题2重写equals方法为什么要重写hashCode?一定要重写吗?
//跟hashmap如果不适用hashmap则不需要重写hashCode
//hashCode和equals方法在hashmap中配合使用
//hashmap比较key值的时候使用equals方法比较是否重复
//存入value时要使用hashCode确定位置1