java性能、代码优化
1、尽量重用对象
特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,生成过多的对象将会给程序的性能带来很大的影响。
2、尽可能使用局部变量
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。
3、及时关闭流
Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。
4、尽量减少对变量的重复计算
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:
for (int i = 0; i < list.size(); i++) {...} 建议替换为: for (int i = 0, int length = list.size(); i < length; i++) {...}
这样,在list.size()很大的时候,就减少了很多的消耗
5、尽量采用懒加载的策略,即在需要的时候才创建
例如:
String str = "aaa";if (i == 1)
{ list.add(str);
}
建议替换为:
if (i == 1)
{ String str = "aaa"; list.add(str);
}
6、将常量声明为static final,并以大写命名
这样在编译期间就可以把这些内容放入常量池中,避免运行期间计算生成常量的值。另外,将常量的名字以大写命名也可以方便区分出常量与变量
7、使用数据库连接池和线程池
这两个池都是用于重用对象的,前者可以避免频繁地打开和关闭连接,后者可以避免频繁地创建和销毁线程
8、使用带缓冲的输入输出流进行IO操作
带缓冲的输入输出流,即BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream,这可以极大地提升IO效率
9、字符串变量和字符串常量equals的时候将字符串常量写在前面
这是一个比较常见的小技巧了,这么做主要是可以避免空指针异常
java性能、代码优化相关推荐
- 性能优化之Java(Android)代码优化
最新最准确内容建议直接访问原文:性能优化之Java(Android)代码优化 本文为Android性能优化的第三篇--Java(Android)代码优化.主要介绍Java代码中性能优化方式及网络优化, ...
- Java 性能优化的五大技巧
要对你的 Java 代码进行优化,需要理解 Java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的.使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧. 在我们开始之前, ...
- 【转发】关于Java性能的9个谬论
转载请注明出处,感谢大家的支持! 本文来自优优码:http://www.uucode.net/201502/9%e4%b8%aa%e8%b0%ac%e8%ae%ba Java的性能有某种黑魔法之称.部 ...
- Java性能优化指南,及唯品会的实战
来了唯品会一年多,不少时间花在与服务化框架.业务应用的性能的缠斗上. 前几天正好趁着中生代社区的十月十城技术沙龙,把脑海中关于性能优化的记忆全部理了一遍-.讲完回家,又本着认真严谨的态度再理了一遍,终 ...
- java高性能反射框架_终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南可太强了...
Java给大部分人的感觉就是慢,有严重的性能问题.其实程序慢的问题,与语言无关,与Java无关.Java应用的性能优化也是一个老生常谈的话题,但是只要我们深入的了解性能调优方法,走遍天下都不怕! 大多 ...
- Java 中代码优化的 30 个小技巧(中)
11 位运算效率更高 如果你读过 JDK 的源码,比如 ThreadLocal.HashMap 等类,你就会发现,它们的底层都用了位运算. 为什么开发 JDK 的大神们,都喜欢用位运算? 答:因为位运 ...
- Java 性能优化的七个方向
了解了优化目标后,那接下来应该从哪些方面入手呢?本文主要侧重于理论分析,我们从整体上看一下 Java 性能优化都有哪些可以遵循的规律.本文主讲理论.关于实践,后续的文章会用较多的案例来细化本文的知识点 ...
- 聊聊我们Java中代码优化的30个小技巧
今天我们一起聊聊Java中代码优化的30个小技巧,希望会对你有所帮助. 1.用String.format拼接字符串 不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情况. 比如现在有个 ...
- Java性能的9个谬论
Java的性能有某种黑魔法之称.部分原因在于Java平台非常复杂,很多情况下问题难以定位.然而在历史上还有一种趋势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理.在这篇文章中,我希望 ...
- Java性能优化指南(一)
2015年在大物流项目中,给项目团队做了几次Java性能优化和问题排查的分享,不过效果都不是很好.一直觉得偏向技术实践类的东西,单纯的听和单纯的讲收获都很有限,最好的做法是阅读学习-理解-实践-总结, ...
最新文章
- The Fuctions of LWAPP
- axis2 调用webservice
- Dav1d移动端解码高清视频达30FPS
- linux hive的作用,Hive的基本应用 - Hadoop和Hive的实践应用_服务器应用_Linux公社-Linux系统门户网站...
- CTF中遇到不知道文件类型_遇到孩子厌学不知道怎么沟通?做好这些策略,孩子肯定爱学...
- 微信小程序全面开放近一年,姗姗来迟的阿里还有胜局吗?| 畅言
- three.js模板
- python求立方尾不变_蓝桥杯—立方尾不变,有些数字的立方的末尾正好是该数字本身...
- c语言编程概念与观点,从程序设计本质入手,上好C语言第一课.doc
- 程序设计与编译(C++入门)
- 小米安装linux驱动怎么安装教程,小米手机驱动程序怎么安装教程【图文版】
- 基于SSM【爱校图书馆管理系统】附源码+论文
- 12代酷睿不再“挤牙膏”,能为英特尔vPro远程办公带来什么?
- CDP科普:客户数据中台(CDP)是什么?
- JAVA计算机毕业设计助农脱贫系统Mybatis+源码+数据库+lw文档+系统+调试部署
- 关于移动硬盘故障:使用驱动器G:中的光盘之前需要将其格式化或者无法访问磁盘G:参数错误的解决办法
- 数方大数据抓取网站访问用户,精准度百分之九十以上。
- 【软件工程】开源许可证
- exe执行文件变白色无图标解决方法
- 从零开始的计网学习——物理层