Java
KD1996
这个作者很懒,什么都没留下…
展开
-
【Java】Java使用回调函数的优雅方式
Java使用回调函数的优雅方式Java8新增了函数式接口,函数式接口中只有一个接口方法,这个接口方法可以与一个静态方法或者某个实例对象的方法进行绑定。通过这种方式,我们可以将一个函数式接口做成一个回调。例如有如下场景:有多台服务器Server,对外提供服务;有一个控制中心Controller,Controller需要统计Server对外提供服务的次数,或者说Server提供了服务需要让Controller得到一个通知。现在我们有如下的实现。@FunctionalInterfaceinterfac原创 2020-07-01 13:57:05 · 1509 阅读 · 0 评论 -
【JVM】实例化对象的流程
实例化一个对象的完整流程是怎样的呢?网上总结初始化顺序是怎么来的呢?下面以一个未加载过的子类对象实例化为例:需要实例化一个子类对象时,首先检查到其有继承于一个未加载过的父类, 则: 先对父类进行类加载,并进行初始化,对父类执行初始化就是执行父类的类构造器<clinit>()方法,该方法将执行父类的静态变量赋值代码和静态代码块(按照书写顺序); 然后对子类进行加载,并进行...原创 2020-03-26 02:20:22 · 428 阅读 · 0 评论 -
【Java】多层if-else逻辑判断优化——卫语句
读码出高效时,提到了使用卫语句实现超过3层的if-else的逻辑判断代码简单来说就是将多层if-else逻辑拆分为多个if语句级联,拆分得到的if语句就是卫语句。例如:public void doWork() { if (isBusy()) { // Busy状态下的操作 return; } if (isDown())...原创 2019-06-05 20:00:27 · 3033 阅读 · 0 评论 -
【Java】Java打印时报StackOverflowError
打印时报StackOverflowError,排查时发现两个JavaBean在互相调用对方的toString方法,最终导致StackOverflowError,所以如果使用IDE自动生成toString方法时需要注意一下了,要避免相互调用代码如下:部门实体类:public class Dept { private int deptId; private Str...原创 2019-06-06 17:27:37 · 509 阅读 · 0 评论