Java

Java三目运算中隐藏的自动拆装箱

最近修改线上bug的时候排查了一个十分隐藏的bug,直接上代码: 乍一看是没什么毛病的,但是已运行就会发现报空指针,在idea里面也会警告可能有空指针,这是什么原因呢? 直接看字节码: 可以看到字节码中调用了Integer.valueOf()方法,因为我们代码中一个值使用的是0(基本数据类型int) Continue reading Java三目运算中隐藏的自动拆装箱

Java 9 新特性 — Module System 之 Service

上一篇 介绍了Java 9模块系统的一些基本信息,这一篇介绍模块化服务的实现、加载和使用。 普通java interface的使用基本是获取实现类或者在实例化接口的时候自己实现。获取实现类这种方式对服务的实现者有一定的入侵,如果在模块化中实现者就必须导出模块,这样项目之间的耦合其实是变强了。而实例化 Continue reading Java 9 新特性 — Module System 之 Service

Java 9 新特性 — Module System

Java 9正式版发布已然有小半年,带来最令人激动的消息就是模块化编程。本来打算系统的了解一下这个新特性,百度到的也就一些简单介绍和demo,或者是国外的一些文章翻译,于是谷歌到了一些官方文档学习。 Module System 的出现将整个JDK的包结构都改变了:旧版本的Java都是以jar包的形式 Continue reading Java 9 新特性 — Module System

fastjson 循环引用

场景: 同一个对象的反复引用,fastjson在序列化的时候不会反复处理这个对象,而是引用已经序列化过的该对象。 比如下面的代码: 在给user对象添加子的时候添加的是同一个对象,这个时候序列化输出的则是引用的json: json里的$ref等特殊符号就是fastjson对循环引用的处理。 分析: Continue reading fastjson 循环引用