《Java工程师必读手册》——Java极客主义系列——Java代码高效之道(4)

简介: 《Java工程师必读手册》——Java极客主义系列——Java代码高效之道(4)

接上篇:https://developer.aliyun.com/article/1227042?spm=a2c6h.13148508.setting.16.18334f0eu8bmt9

四、 表达式

 

1. 尽量减少方法的重复调用

 

反例

 

image.png 

 

正例

 

image.png 

 

2. 尽量避免不必要的方法调用

 

反例

 

image.png 

 

正例

 

image.png

 

 

 

 

3. 尽量使用移位来代替正整数乘除

 

用移位操作可以极大地提高性能。对于乘除2^nn为正整数的正整数计算,可以用移位操作来代替。

 

反例

 

image.png 

 

正例

 

image.png

 

4. 提取公共表达式,避免重复计算

 

提取公共表达式,只计算一次值,然后重复利用值。

 

反例

 

image.png

 

正例

 

image.png 

 

5. 尽量不在条件表达式中用!取反

 

使用!取反会多一次计算,如果没有必要则优化掉。

 

 

 

反例

 

image.png 

 

正例

 

image.png 

 

6. 对于多常量选择分支,尽量使用switch语句而不是if-else语句

 

if-else语句,每个if条件语句都要加装计算,直到if条件语句为true为止。switch语句进行了跳转优化,Java中采用tableswitch或lookupswitch指令实现,对于多常量选择分支处理效率更高。经过试验证明:在每个分支出现概率相同的情况下,低于5个分支时if-else语句效率更高,高于5个分支时switch语句效率更高。

 

反例

 

image.png

 

 

正例

 

image.png 

 

备注

如果业务复杂,可以采用Map实现策略模式。


接下篇:https://developer.aliyun.com/article/1227040?groupCode=java

相关文章
|
6天前
|
设计模式 监控 Java
Java多线程基础-11:工厂模式及代码案例之线程池(一)
本文介绍了Java并发框架中的线程池工具,特别是`java.util.concurrent`包中的`Executors`和`ThreadPoolExecutor`类。线程池通过预先创建并管理一组线程,可以提高多线程任务的效率和响应速度,减少线程创建和销毁的开销。
28 2
|
3天前
|
存储 并行计算 安全
Java语言编写代码的技术性探讨
Java语言编写代码的技术性探讨
|
3天前
|
安全 Java API
Java语言中的代码安全性探讨
Java语言中的代码安全性探讨
|
5天前
|
Java C++
如何在JAVA代码中嵌入汇编
如何在JAVA代码中嵌入汇编
9 1
|
5天前
|
Java Linux
Linux下如何定位最耗CPU的JAVA代码
Linux下如何定位最耗CPU的JAVA代码
12 0
|
5天前
|
存储 Java 编译器
Java方法的基本内存原理与代码实例
Java方法的基本内存原理与代码实例
12 0
|
6天前
|
存储 Java 调度
Java多线程基础-11:工厂模式及代码案例之线程池(二)
这篇内容介绍了Java多线程基础,特别是线程池中的定时器和拒绝策略。
20 0
|
设计模式 搜索推荐 Java
Java 极客技术 2019 年高考语文卷
Java 极客技术 2019 年高考语文卷
|
3天前
|
Java 开发者 UED
掌握Java多线程编程:从基础到高级
【5月更文挑战第31天】本文深入探讨了Java多线程编程的核心概念,包括线程的创建、生命周期、同步机制以及高级并发工具。通过实际示例和代码片段,读者将学会如何有效地管理和协调线程,以编写高效且稳定的并发应用程序。
|
3天前
|
安全 Java 调度
Java语言多线程编程技术深度解析
Java语言多线程编程技术深度解析