JAVA性能调优-避免对boolean 判断
程序员文章站
2024-01-05 21:13:54
...
Java 里的boolean 数据类型被定义为存储8 位(1 个字节)的数值形式,但只能是true 或是false。
有些时候我们出于写代码的习惯,经常容易导致习惯性思维,这里指的习惯性思维是想要对
生成的数据进行判别,这样感觉可以在该变量进入业务逻辑之前有一层检查、判定。对于大多数
的数据类型来说,这是正确的做法,但是对于boolean 变量,我们应该尽量避免不必要的等于判定。
如果尝试去掉boolean 与true 的比较判断代码,大体上来说,我们会有两个好处。
代码执行得更快(生成的字节码少了5 个字节);
代码整体显得更加干净。
例如代码清单3-3 和3-4 所示,我们针对这个判定进行了代码解释,这两个类只有一个差距,
即是否调用了等号表达式进行了一致性判定,如代码
56 ■ 大话Java 性能优化
代码清单3-3 boolean 示例1
有些时候我们出于写代码的习惯,经常容易导致习惯性思维,这里指的习惯性思维是想要对
生成的数据进行判别,这样感觉可以在该变量进入业务逻辑之前有一层检查、判定。对于大多数
的数据类型来说,这是正确的做法,但是对于boolean 变量,我们应该尽量避免不必要的等于判定。
如果尝试去掉boolean 与true 的比较判断代码,大体上来说,我们会有两个好处。
代码执行得更快(生成的字节码少了5 个字节);
代码整体显得更加干净。
例如代码清单3-3 和3-4 所示,我们针对这个判定进行了代码解释,这两个类只有一个差距,
即是否调用了等号表达式进行了一致性判定,如代码
string.endswith ("a") == true。
56 ■ 大话Java 性能优化
代码清单3-3 boolean 示例1
boolean method (string string) { return