Java代码在实战中的优化
2016-04-09 08:37
302 查看
多表操作使用临时表:有些操作可能同时进行很多张表的操作,如果使用外键关联操作,
这样操作起来比较麻烦,如果把需要操作的数据都放在一个临时表里边,操作一张表相对没那么麻烦,最后在用临时表的数据去更新对应的表。临时表的创建和删除都是动态的,所以一定要记得清理表,不然时间长了数据库中会用很多的无用的表和数据,对数据库来说也会影响性能。
线程的并发执行:当需要同时计算很多的东西是,可以考虑使用多个线程来同时执行,这样可以节省时间,给用户带来很好的体验,但是可能会带来其他一系列的问题。
减少除法带来的误差: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 ++){}
这两种方式是有很大的差距的,大数据时建议使用第二种方式。
这样操作起来比较麻烦,如果把需要操作的数据都放在一个临时表里边,操作一张表相对没那么麻烦,最后在用临时表的数据去更新对应的表。临时表的创建和删除都是动态的,所以一定要记得清理表,不然时间长了数据库中会用很多的无用的表和数据,对数据库来说也会影响性能。
线程的并发执行:当需要同时计算很多的东西是,可以考虑使用多个线程来同时执行,这样可以节省时间,给用户带来很好的体验,但是可能会带来其他一系列的问题。
减少除法带来的误差: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 ++){}
这两种方式是有很大的差距的,大数据时建议使用第二种方式。
相关文章推荐
- day23_文件上传与下载__JavaMail邮件开发
- Eclipse 在开发中使用到的快捷键很实用噢(转载)
- 表达式语言之java对正则表达式的处理
- 【ACM】Spring Outing
- 分享 Java 数据库连接器
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Java微博搜索关键字采集
- Java获取新浪微博cookies
- java程序控制台编译成功但无法运行,报“找不到或无法加载主类”错误!
- 开发问题记录之Cookie
- 【java基础】String中的equal与==的区别
- #6JAVA异常处理方案#
- MyEclipse搭建struts2环境
- Java 中 hashCode 和 equals 方法 小结
- Java自定义标签
- java基础-----2016.4.9(1)
- java 哪个函数都可以操作类变量 / 类函数只能操作类变量
- MyBatis(8)——Mybatis3.x与Spring4.x整合
- spring 容器中TypeConverter对象的使用
- eclipse集成Resin服务器图文教程