对于很多刚刚入门学习Java的学员而言,如何更好的学习到Java的相关理论知识很重要。除了多打代码之外,那么掌握一些简单有效的Java性能优化小技巧,不仅仅有利于更好的运用Java编程语言,同时还能程序性能!


1.避免使用正则表达式

正则表达式给人的印象是快捷简便。但是在 N.O.P.E 分支中使用正则表达式将是最糟糕的决定。如果万不得已非要在计算密集型代码中使用正则表达式的话,至少要将 Pattern 缓存下来,避免反复编译Pattern。

正则表达式是十分有用,但是在使用时也要付出代价。尤其是在 N.O.P.E 分支深处时,要不惜一切代码避免使用正则表达式。还要小心各种使用到正则表达式的JDK字符串方法

2.不要使用iterator()方法

这条建议不适用于一般的场合,仅适用于在 N.O.P.E 分支深处的场景。尽管如此也应该有所了解。无论是从易读写的角度来说,还是从API设计的角度来说迭代器、Iterable接口和 foreach 循环都是非常好用的。但代价是,使用它们时是会额外在堆上为每个循环子创建一个对象。

3.不要调用高开销方法


Java双层for循环时间优化 java多层循环优化_java 多层foreach 优化


有些方法的开销很大。以 N.O.P.E 分支为例,我们没有提到叶子的相关方法,不过这个可以有。假设我们的JDBC驱动需要排除万难去计算 ResultSet.wasNull() 方法的返回值。

将方法调用缓存起来替代在叶子节点的高开销方法,或者在方法约定允许的情况下避免调用高开销方法。

4.使用原始类型和栈


Java双层for循环时间优化 java多层循环优化_Java_02


上面介绍了来自 jOOQ的例子中使用了大量的泛型,导致的结果是使用了 byte、 short、 int 和 long 的包装类。但至少泛型在Java 10或者Valhalla项目中被专门化之前,不应该成为代码的限制。


Java双层for循环时间优化 java多层循环优化_正则表达式_03


所以一个有效的优化方法是使用基本数据类型、定长数组,并用一系列分割变量来标识对象在数组中所处的位置。

通过灵活的在线学习,不断提高个人的技术能力,在进行java代码编写的过程中,加强java的代码运算速度,不断优化代码运行,这样让java程序在运行过程中更加顺畅,得以提升java编程的水准。