final、finally、finalize区别
final
    修饰类    不能有子类
    修饰方法  不能被重写
    修饰变量  不能改变值,必须初始化
finally
    异常处理时无论是否有异常被捕获,抛出,finally块都会被执行
    无论发生什么都必须执行的代码放在finally块中
finalize
    方法名,Java允许使用该方法在垃圾收集器把对象从内存清出去之前做必要的清理工作
    在object中定义的,所有类都继承他,子类覆盖finalize()方法整理系统资源或者执行其他清理工作
int、Integer区别
int
    基本数据类型
    初始值0
    不需要实例化
    直接存储数据值
Integer
    int的包装类
    初始值null
    实例化才能使用
    对象的引用,指向new Integer对象
方法重载和方法重写的区别
方法重载
     同一个类里面名字相同的方法
     参数返回值抛出的异常可以不同
     同一个方法根据输入数据的不同做不同的处理 不同的参数列表(静态多态)
方法重写
     子类重写父类的方法 相同参数不同实现(动态多态)
     方法名称参数返回类型一致
     方法修饰大于父类的修饰符
     不能出现新的异常,比父类宽泛的异常
     super()调用父类的方法
     final方法不能重写
     abstract方法必须重写
抽象类和接口的区别
抽象类
     可以有自己的实现
     可以写main方法
     不能被实例化
     子类通过extends继承抽象类
     可以有构造器
     抽象方法可以被public protected default修饰
     可以继承一个类,实现多个接口
     比接口速度快
     抽象类添加新的方法,可以提供默认的实现,不需要改其他类
接口
     不能有自己的实现
     不可以写main方法
     通过implements实现接口中的方法,必须全部实现
     不能有构造器
     被public修饰
     可以继承多个接口
     速度有点儿慢,需要花时间去找他的实现
     添加新的方法必须提供新的实现
原文:https://www.cnblogs.com/DanerBlog/p/9612618.html