接上篇:https://developer.aliyun.com/article/1227045?spm=a2c6h.13148508.setting.14.18334f0eu8bmt9
二、 2.对象&类
1. 禁止使用JSON转化对象
JSON提供把对象转化为JSON字符串、把JSON字符串转为对象的功能,于是被某些人用来转化对象。这种对象转化方式,虽然在功能上没有问题,但是在性能上却存在问题。
反例:
正例:
2. 尽量不使用反射赋值对象
用反射赋值对象,主要优点是节省了代码量,主要缺点却是性能有所下降。
反例:
正例:
3. 采用Lambda表达式替换内部匿名类
对于大多数刚接触JDK8的同学来说,都会认为Lambda表达式就是匿名内部类的语法糖。实际上,Lambda表达式在大多数虚拟机中采用invokeDynamic指令实现,相对于匿名内部类在效率上会更高一些。
反例:
正例:
4. 尽量避免定义不必要的子类
多一个类就需要多一份类加载,所以尽量避免定义不必要的子类。
反例:
正例:
5. 尽量指定类的final修饰符
为类指定final修饰符,可以让该类不可以被继承。如果指定了一个类为final,则该类所有的方法都是final的,Java编译器会寻找机会内联所有的final方法。内联对于提升Java运行效率作用重大,具体可参见Java运行期优化,能够使性能平均提高50%。
反例:
正例:
注意:
使用Spring的AOP特性时,需要对Bean进行动态代理,如果Bean类添加了final修饰,会导致异常。
接下篇:https://developer.aliyun.com/article/1227042?groupCode=java