Comparable 和 Comparator
Comparable <比较的类名>–>重写compareTo方法 比较单一,不灵活
Comparator <比较的类名> – >重写compare方法,比较灵活
Cloneable接口和深拷贝
可以对自定义类型进行拷贝了
1.首先这个类必须是可克隆的
2.空接口/标记接口的出现,按住ctrl点击Cloneable
表示:当前对象是可以被克隆的
C
3.想要调用方法必须重写父类中的方法,但此时我们没有继承,但有Object类是所有类的父类,既可以通过ctrl+o快捷键或者鼠标右键
注意:Object类是所有类的父类
4.异常报错和相应的解决办法
注意:protected权限 返回调用父类的克隆方法 在不同包下一定要是它的子类并且要通过super调用
浅拷贝 :理论上是给A克隆了一个B,当修改B时A不会受影响,但现在B修改的同时对A也进行了修改。
深拷贝
抽象类和接口有什么区别?(面试问题)
**
抽象类当中可以包含普通方法和普通字段,这样的方法和字段可以被子类直接使用(不用重写),而接口不包含普通方法,子类要重写他的所有抽象方法
**
1.结构组成上来说:抽象类有普通成员变量/方法 接口只有抽象方法,全局常量
2.权限上来说:抽象类不限,而接口为public
3.子类的使用:抽象类使用extends关键字 接口使用implements关键字
4.从关系是来说:一个抽象类可以有多个接口 而接口不能继承抽象类,但是接口可以使用extends关键字继承多个父接口
5.子类的限制上来说:一个子类只能继承一个抽象类 但接口一个子类可以实现多个接口
Object类:Java默认提供的一个类
Java当中除了Object类,所有的类都默认继承Object类,即所有类的对象都可以用Object引用来接收(向上转型)![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9f3c0d75b3741615ed2d33f65175da18.png)
匿名对象:
缺点:每次使用都得new
使用场景:只使用一次。不然每次都需要new对象
1.equals方法的重写(可以编译器生成)
2.hashcode方法的重写(编译器重写)
hashcode:算对象的位置;内存地址
回顾:
数据类型 --> 变量 -->运算符–>循环选择–>方法–>数组–>类和对象–>封装–>继承–>多态–>抽象类–>接口