《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

 

相关文章
|
4月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
411 6
|
4月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
300 115
|
4月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
215 98
|
4月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
370 43
|
4月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
431 94
|
4月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
5月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
655 3
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
472 1
|
Java BI API
在Java代码中打日志需要注意什么?
日志是什么?日志是你在代码运行时打印出来的一些数据和记录,是快速排查问题的好帮手,是撕逼和甩锅的利器!
883 0
|
缓存 Java 网络架构
别在 Java 代码里乱打日志了,这才是正确的打日志姿势!
别在 Java 代码里乱打日志了,这才是正确的打日志姿势!
251 0