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

最近刚入职一份Java工作(我的第一份Java工作),非常珍惜这来之不易加经验值的机会,分配的任务是原有一个项目工程中几个模块优化工作,要求是把这各个模块优化到一定时间以... 最近刚入职一份Java工作(我的第一份Java工作),非常珍惜这来之不易加经验值的机会,分配的任务是原有一个项目工程中几个模块优化工作,要求是把这各个模块优化到一定时间以内,而且直接说明了耗时主要在各模块的JUnit测试中,对JUnit代码进行优化。
这我都蒙了,读代码读的似懂非懂(比较大的项目)更别谈优化了,大神们我该从什么方向入手(目前已经找到耗时的测试类,却不知从何下手),代码优化有没有什么方法,从什么方面分析?(代码优化有哪些书籍或者视频推荐。)
展开
 我来答
喵喵喵喵喵咪c7
2020-03-05 · TA获得超过4024个赞
知道小有建树答主
回答量:2277
采纳率:100%
帮助的人:72.3万
展开全部

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

 

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

 

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

 

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

 

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

 

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

 

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

幽冥神者
2015-07-22 · TA获得超过3213个赞
知道大有可为答主
回答量:1953
采纳率:50%
帮助的人:1779万
展开全部
拿到junit代码去运行,监测时长,然后分别监测其中有可能特别耗时的部分。找出最耗时的代码,分析是否有冗余的循环啊,是否有低性能的sql语句啊,低性能的排序啊等等类似这样的,有针对性地优化
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神奇色尊
2017-10-05 · TA获得超过453个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:45.5万
展开全部
有本书叫《重构--改善既有代码的设计》,你可以参考一下。不过要是太急的话,那没办法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秦风落
2015-07-21 · 超过80用户采纳过TA的回答
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:86.5万
展开全部
我也想知道。留个标记。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式