学习记录-01

  开始学习了,今天看了视频:https://www.bilibili.com/video/BV1p4411P7V3

  有一下几个问题,一下答案来自百度或者其他博客:

  1、重写与重载的区别(主要是模糊了):

面试时,问:重载(Overload)和重写(Override)的区别?(参考:https://www.cnblogs.com/wei-hang/p/12921196.html)
  答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

 

 

  2、函数式接口

之前就学习过,但是忘了,看了这个博客:https://www.cnblogs.com/jianwei-dai/p/5819479.html 发现只是捡回来一点点 还是有很多不会。

 

 

  3、内部类,匿名内部类

  参考:https://www.cnblogs.com/libinhong/p/10990602.html

 

 

  4、静态代码块 静态变量 等执行顺序

这个在学习Java初就练习过,以背过,只是现在忘记了,参考:https://www.cnblogs.com/leiqiannian/p/7922824.html

如果类还没有被加载: 
1、先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。 
2、执行子类的静态代码块和静态变量初始化。 
3、执行父类的实例变量初始化 
4、执行父类的构造函数 
5、执行子类的实例变量初始化 
6、执行子类的构造函数 

如果类已经被加载: 
则静态代码块和静态变量就不用重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造方法。

 

 

5、反射暴力破解单例

新知识,以及更深入了。

参考:https://www.cnblogs.com/blogofcookie/p/5793886.html

 建议再次看下这个视频:https://www.bilibili.com/video/BV1K54y197iS

对单例,以及破解,以及为什么枚举不能反射,更有意思。

  

  

posted @ 2021-02-15 00:45  旷野孤星  阅读(40)  评论(0编辑  收藏  举报