Java代码如何优化?从哪些方面入手?分析?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java代码如何优化?从哪些方面入手?分析?相关的知识,希望对你有一定的参考价值。

最近刚入职一份Java工作(我的第一份Java工作),非常珍惜这来之不易加经验值的机会,分配的任务是原有一个项目工程中几个模块优化工作,要求是把这各个模块优化到一定时间以内,而且直接说明了耗时主要在各模块的JUnit测试中,对JUnit代码进行优化。
这我都蒙了,读代码读的似懂非懂(比较大的项目)更别谈优化了,大神们我该从什么方向入手(目前已经找到耗时的测试类,却不知从何下手),代码优化有没有什么方法,从什么方面分析?(代码优化有哪些书籍或者视频推荐。)

1)尽量指定类、方法的final修饰符。带有final修饰符的类是不可派生的,Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,此举能够使性能平均提高50%。

 

2)尽量重用对象。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此生成过多的对象将会给程序的性能带来很大的影响。

 

3)尽可能使用局部变量。调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建速度较慢。

 

4)慎用异常。异常对性能不利,只要有异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。

 

5)乘法和除法使用移位操作。用移位操作可以极大地提高性能,因为在计算机底层,对位的操作是最方便、最快的,但是移位操作虽然快,可能会使代码不太好理解,因此最好加上相应的注释。

 

6)尽量使用HashMap、ArrayList、StringBuilder,除非线程安全需要,否则不推荐使用 Hashtable、Vector、StringBuffer,后三者由于使用同步机制而导致了性能开销。

 

    尽量在合适的场合使用单例。使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率,但并不是所有地方都适用于单例。

参考技术A 拿到junit代码去运行,监测时长,然后分别监测其中有可能特别耗时的部分。找出最耗时的代码,分析是否有冗余的循环啊,是否有低性能的sql语句啊,低性能的排序啊等等类似这样的,有针对性地优化 参考技术B 有本书叫《重构--改善既有代码的设计》,你可以参考一下。不过要是太急的话,那没办法。 参考技术C 我也想知道。留个标记。

从哪些方面优化网站

真静态
 
伪静态/防止盗链
 
优化mysql
开启慢查询记录
检查日志信息
用profile详细分析sql语句花费时间
对sql语句优化(查询字段使用了函数,表结构没有建立索引)
用explain 分析sql如何执行,只用了哪些索引
 
使用mysql自身缓存

以上是关于Java代码如何优化?从哪些方面入手?分析?的主要内容,如果未能解决你的问题,请参考以下文章

接口的安全性测试,应该从哪些方面入手?

接口的安全性测试,应该从哪些方面入手?

接口的安全性测试,应该从哪些方面入手?

Java性能优化的七个方向

高级Java开发,必知的七个性能优化方向!

从哪些方面优化网站