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

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


接上篇:

https://developer.aliyun.com/article/1227037?spm=a2c6h.13148508.setting.19.18334f0eu8bmt9

八、 异常

 

1. 直接捕获对应的异常

 

直接捕获对应的异常,避免用instanceof判断,效率更高代码更简洁。

 

 

反例

 

image.png 

 

正例

 

image.png 

 

2. 尽量避免在循环中捕获异常

 

当循环体抛出异常后,无需循环继续执行时,没有必要在循环体中捕获异常。因为,过多的捕获异常会降低程序执行效率。

 

反例

 

image.png

 

 

正例

 

image.png 

 

3. 禁止使用异常控制业务流程

 

相对于条件表达式,异常的处理效率更低。

 

反例

 

image.png 

 

正例

 

image.png 

 

九、 缓冲区

 

1. 初始化时尽量指定缓冲区大小

 

初始化时,指定缓冲区的预期容量大小,避免多次扩容浪费时间和空间。

 

反例

 

image.png 

 

正例

 

image.png

 

2. 尽量重复使用同一缓冲区

 

针对缓冲区,Java虚拟机需要花时间生成对象,还要花时间进行垃圾回收处理。所以,尽量重复利用缓冲区。

 

反例

 

image.png 

 

正例

 

image.png 

 

其中,使用setLength方法让缓冲区重新从0开始。

 

 

 

3. 尽量设计使用同一缓冲区

 

为了提高程序运行效率,在设计上尽量使用同一缓冲区。

 

反例

 

image.png

 

正例

 

image.png 

 

去掉每个转化方法中的缓冲区申请,申请一个缓冲区给每个转化方法使用。从时间上来说,节约了大量缓冲区的申请释放时间;从空间上来说,节约了大量缓冲区的临时存储空间。

 

4. 尽量使用缓冲流减少IO操作

 

使用缓冲流BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream等,可以大幅减少IO次数并提升IO速度。

 

反例

 

image.png 

 

正例

 

image.png 

 

其中,可以根据实际情况手动指定缓冲流的大小,把缓冲流的缓冲作用发挥到最大。


接下篇:https://developer.aliyun.com/article/1227008?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方法的基本内存原理与代码实例
13 0
|
6天前
|
存储 Java 调度
Java多线程基础-11:工厂模式及代码案例之线程池(二)
这篇内容介绍了Java多线程基础,特别是线程池中的定时器和拒绝策略。
20 0
|
设计模式 搜索推荐 Java
Java 极客技术 2019 年高考语文卷
Java 极客技术 2019 年高考语文卷
|
3天前
|
Java 开发者 UED
掌握Java多线程编程:从基础到高级
【5月更文挑战第31天】本文深入探讨了Java多线程编程的核心概念,包括线程的创建、生命周期、同步机制以及高级并发工具。通过实际示例和代码片段,读者将学会如何有效地管理和协调线程,以编写高效且稳定的并发应用程序。
|
3天前
|
安全 Java 调度
Java语言多线程编程技术深度解析
Java语言多线程编程技术深度解析