Java代码在实战中的优化
来源:互联网 发布:平价手表知乎 编辑:程序博客网 时间:2024/05/16 06:57
多表操作使用临时表:有些操作可能同时进行很多张表的操作,如果使用外键关联操作,
这样操作起来比较麻烦,如果把需要操作的数据都放在一个临时表里边,操作一张表相对没那么麻烦,最后在用临时表的数据去更新对应的表。临时表的创建和删除都是动态的,所以一定要记得清理表,不然时间长了数据库中会用很多的无用的表和数据,对数据库来说也会影响性能。
线程的并发执行:当需要同时计算很多的东西是,可以考虑使用多个线程来同时执行,这样可以节省时间,给用户带来很好的体验,但是可能会带来其他一系列的问题。
减少除法带来的误差:Java中除法采用的是四舍五入,如果涉及到多次使用除法的才得到的结果,最好是尽可能的减少除法的计算,不至于得到的结果和预期的相差太远。
加载部分数据防止内存溢出:当需要处理数据量特别大的时候,如果一次性把全部数据加载到内存中进行处理,可能出现内存不够,导致内存溢出的现象,严重可能系统崩溃,这样带来给客户带来的体验就不是很好,处理的办法就是每次加载一部分数据,当处理完以后再去加载一定的数据进行处理,直到数据处理完毕。
批量执行sql: 使用 PreaparedStatement 对象进行操作可以提高效率,PreparedStatement 是预编译的,这样就比Statement的效率高很多,同时PreparedStatement可以防止sql的注入攻击,所以批量执行时,尽量采用预编译的PreparedStatement .
注释和命名规范:对应程序应该多写注释,以方便阅读,我们写的代码并不是我们自己
看,即使是自己看,有些时候时间长了也不一定记得,看到注释,我们可以很快的回忆起来这些代码的作用,别人看起来也比较容易,对应同事之间的交流比较方便,同时这也是一个好习惯。命名规范,尽量见名知意的效果,如果必要的话,加个注释最好。
这样操作起来比较麻烦,如果把需要操作的数据都放在一个临时表里边,操作一张表相对没那么麻烦,最后在用临时表的数据去更新对应的表。临时表的创建和删除都是动态的,所以一定要记得清理表,不然时间长了数据库中会用很多的无用的表和数据,对数据库来说也会影响性能。
线程的并发执行:当需要同时计算很多的东西是,可以考虑使用多个线程来同时执行,这样可以节省时间,给用户带来很好的体验,但是可能会带来其他一系列的问题。
减少除法带来的误差:Java中除法采用的是四舍五入,如果涉及到多次使用除法的才得到的结果,最好是尽可能的减少除法的计算,不至于得到的结果和预期的相差太远。
加载部分数据防止内存溢出:当需要处理数据量特别大的时候,如果一次性把全部数据加载到内存中进行处理,可能出现内存不够,导致内存溢出的现象,严重可能系统崩溃,这样带来给客户带来的体验就不是很好,处理的办法就是每次加载一部分数据,当处理完以后再去加载一定的数据进行处理,直到数据处理完毕。
批量执行sql: 使用 PreaparedStatement 对象进行操作可以提高效率,PreparedStatement 是预编译的,这样就比Statement的效率高很多,同时PreparedStatement可以防止sql的注入攻击,所以批量执行时,尽量采用预编译的PreparedStatement .
注释和命名规范:对应程序应该多写注释,以方便阅读,我们写的代码并不是我们自己
看,即使是自己看,有些时候时间长了也不一定记得,看到注释,我们可以很快的回忆起来这些代码的作用,别人看起来也比较容易,对应同事之间的交流比较方便,同时这也是一个好习惯。命名规范,尽量见名知意的效果,如果必要的话,加个注释最好。
for循环的时候,减少条件的取值,
for(int i = 0 ; i < arr.length: i++){}
和
int len = arr.length:
for(int len = 0 ; i < len ; i ++){}
这两种方式是有很大的差距的,大数据时建议使用第二种方式。
0 0
- Java代码在实战中的优化
- Redis 实战------java版本代码优化
- 如何优化JAVA中的代码
- java-优化-代码中的优化(1)
- java并发编程实战中的代码
- Pareto原理在代码优化中的应用
- 【java】itoo项目实战之优化后具体代码
- Java 项目优化实战
- Java 项目优化实战
- Java 项目优化实战
- JAVA虚拟机优化实战
- Java 项目优化实战
- 12条在android开发中的代码优化建议
- 代码优化中的优化项
- HBase在java代码中的使用
- Android中的代码优化
- APP开发实战119-APP代码优化
- java代码优化---->性能优化
- Chapter2--列表与元组
- RecyclerView官方文档翻译
- 共振峰manipulate笔记
- 在项目中使用springmvc
- day23_文件上传与下载__JavaMail邮件开发
- Java代码在实战中的优化
- [从头学数学] 第168节 基本初等函数(1)
- Linux kernel 内核学习路线
- IDEA新功能之后缀代码自动补全
- memcached实战系列(二)memcached参数以及启动
- LeetCode 26. Remove Duplicates from Sorted Array
- Canvas的使用,放大缩小的自定义布局,不同的位置不同的点击事件
- 再回到这里
- Forking工作流