`

Java性能

 
阅读更多
写道
1. 尽量避免过多过常的创建Java对象; 最大限度的重用对象,最好能用基本的数据类型或数组来替代对象。

2. 尽量使用局部变量, 尽量使用基本数据类型代替对象; 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。基本类型数据产生和处理都在栈中处理,包装类型是对象,是在堆中产生实例。

3. 尽量使用StringBuilder和StringBuffer进行字符串连接

4. 单线程应尽量使用HashMap、ArrayList; HashTable、Vector等使用了同步机制,降低了性能。

5. ArrayList & LinkedList; 随机查询尽量使用ArrayList,ArrayList优于LinkedList,LinkedList还要移动指针,添加删除的操作LinkedList优于ArrayList,ArrayList还要移动数据

6. 尽量合理的创建HashMap,避免扩容; 默认initialCapacity只有16,而loadFactor是 0.75

7. 尽量确定StringBuffer的容量,避免了在容量不够的时候自动增长; 默认大小(通常是16);

8. 尽量在finally块中释放资源;不管程序执行的结果如何,finally块总是会执行的,以确保资源的正确关闭。

9. 尽量减少对变量的重复计算; for(int i=0;i<list.size();i++) -> for(int i=0,len=list.size();i<len;i++)

10. 尽量避免不必要的创建

A a = new A();
if(i==1){list.add(a);}
应该改为
if(i==1){
A a = new A();
list.add(a);}

11. 尽量避免使用二维数组; 二维数据占用的内存空间比一维数组多得多,大概10倍以上。

12. 尽量避免使用String的split方法; 确实需要频繁的调用split,可以考虑使用apache的StringUtils.split(string,char),频繁split的可以缓存结果。

13. 尽量使用System.arraycopy ()代替通过来循环复制数组

14. 尽量避免非常大的内存分配; 有时候问题不是由当时的堆状态造成的,而是因为分配失败造成的。分配的内存块都必须是连续的,而随着堆越来越满,找到较大的连续块越来越困难。

15. 尽量缓存经常使用的对象; 第三方的开源工具,如EhCache,Oscache进行缓存

16. 慎用异常;
当创建一个异常时,需要收集一个栈跟踪(stack track),这个栈跟踪用于描述异常是在何处创建的。构建这些栈跟踪时需要为运行时栈做一份快照,正是这一部分开销很大。当需要创建一个 Exception 时,JVM 不得不说:先别动,我想就您现在的样子存一份快照,所以暂时停止入栈和出栈操作。栈跟踪不只包含运行时栈中的一两个元素,而是包含这个栈中的每一个元素。
如果您创建一个 Exception ,就得付出代价。好在捕获异常开销不大,因此可以使用 try-catch 将核心内容包起来。从技术上讲,您甚至可以随意地抛出异常,而不用花费很大的代价。招致性能损失的并不是 throw 操作——尽管在没有预先创建异常的情况下就抛出异常是有点不寻常。真正要花代价的是创建异常。幸运的是,好的编程习惯已教会我们,不应该不管三七二十一就 抛出异常。异常是为异常的情况而设计的,使用时也应该牢记这一原则

17. 尽量使用移位来代替'a/b'的操作
"/"是一个代价很高的操作,使用移位的操作将会更快和更有效

int num = a / 4;
int num = a / 8;
应该改为
int num = a >> 2;
int num = a >> 3;
但注意的是使用移位应添加注释,因为移位操作不直观,比较难理解

18.尽量使用移位来代替'a*b'的操作
同样的,对于'*'操作,使用移位的操作将会更快和更有效

int num = a * 4;
int num = a * 8;
应该改为
int num = a << 2;
int num = a << 3;c

 

分享到:
评论

相关推荐

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在...

    4本高清中文版Java性能优化经典书籍

    Java性能优化是IT行业中至关重要的一个领域,尤其是在大型企业级应用和互联网服务中,高效的Java代码能够显著提升系统运行效率,降低服务器资源消耗。以下是对这四本经典书籍中的核心知识点的详细介绍: 1. **...

    阿里+Java+开发手册、阿里巴巴Java性能调优实战

    《阿里+Java+开发手册、阿里巴巴Java性能调优实战》是两本专注于Java开发和性能优化的专业书籍,分别以嵩山版和华山版的形式呈现,由阿里巴巴集团编写。这两本书籍结合了阿里巴巴在实际业务场景中的丰富经验,旨在...

    阿里巴巴Java性能调优实战(2021华山版)

    阿里巴巴Java性能调优实战(2021华山版) 本资源摘要信息来自阿里巴巴Java性能调优实战(2021华山版),旨在帮助Java开发者掌握性能调优的实战经验和技术。 性能调优的重要性 性能调优是软件开发中一个非常重要的...

    java性能分析文档

    Java性能分析是优化Java应用程序的关键步骤,它涉及监控和理解应用程序在运行时的资源消耗,如CPU使用率、内存分配、线程活动等。Performance Analyzer是一款专门针对Java性能的工具,它提供了深入洞察应用程序性能...

    Java性能监控工具

    Java性能监控是优化Java应用程序的关键环节,它可以帮助开发者识别并解决性能瓶颈,确保程序的高效稳定运行。在Java中,有一些内置的工具可以用来监控和分析性能,包括内存使用、垃圾回收等方面。 首先,`jps`命令...

    JAVA性能瓶颈和漏洞检测工具

    Java性能瓶颈可能导致系统响应变慢,用户体验下降,甚至可能导致服务器资源耗尽。而漏洞的存在则可能让系统面临被攻击的风险,因此,掌握有效的检测工具对于Java开发者来说是必备技能。本主题将深入探讨"JAVA性能...

    阿里巴巴Java性能调优实战(2021华山版).pdf

    阿里巴巴Java性能调优实战

    大话JAVA性能优化.pdf

    大话Java性能优化》主要提供Java性能调优方面的参考建议及经验交流。作者力求做到知识的综合传播,而不是仅仅只针对Java虚拟机调优进行讲解,另外力求每一章节都有实际的案例支撑。具体包括:性能优化策略、程序编写...

    Java性能调优 6步实现项目性能全面升级+面试高频性能问题讲解.rar

    Java性能调优 6步实现项目性能全面升级+面试高频性能问题讲解视频教程分享,性能优化的N种企业级解决方案,囊括了【数据库优化】、【Tomcat优化】、【JVM优化】、【垃圾回收】、【Netty优化】、【Nginx优化】、...

    阿里巴巴java性能调优实战手册

    "阿里巴巴java性能调优实战手册" 本手册旨在为Java开发者提供一份实践性的性能调优指南,帮助他们解决在实际项目中遇到的性能问题。作者通过自己的经验和实践,总结了Java性能调优的重要性和必要性,并分享了自己的...

    java 性能权威指南.pdf [美]scott Oaks著

    java 性能权威指南.pdf [美]scott Oaks著 是java调优实战的指导书

    java 性能权威指南

    《Java性能权威指南》是一本深入探讨Java平台性能优化的专业书籍。这本书全面涵盖了从JVM(Java虚拟机)内部机制到应用程序级别的各种性能问题,旨在帮助开发者和系统管理员理解并解决Java应用程序中的性能瓶颈。 ...

    java性能优化教程

    Java性能优化是提升软件效率和用户体验的关键环节,尤其是在大规模应用和高并发场景中。本教程将深入探讨如何通过各种技术和策略来优化Java程序,确保其高效运行。 首先,理解Java性能的基础是JVM(Java虚拟机)。...

    Java性能调优大全

    Java性能调优是一个复杂而重要的领域,涉及到程序的运行效率、资源消耗以及系统的稳定性。这份“Java性能调优大全”提供了全面的指南,包括VisualVM的使用、JVM的性能优化、OMM(可能是指Oracle Management Monitor...

    java性能权威指南

    java性能权威指南,这是一本kindle电子书,需要下载亚马逊的kindle才能看书

    大话JAVA性能优化

    《大话JAVA性能优化》这份文档深入探讨了Java程序在多个层面的性能调优策略,旨在帮助开发者提高程序运行效率,降低资源消耗,提升用户体验。以下是对这些知识点的详细阐述: 1. **代码层次优化**:在代码编写阶段...

    Java 性能优化实战 21 讲2021年

    │ 开篇词 Java 性能优化,是进阶高级架构师的炼金石.mp4 │ 02 理论分析:性能优化有章可循,谈谈常用的切入点.mp4 │ 03 深入剖析:哪些资源,容易成为瓶颈?.mp4 │ 04 工具实践:如何获取代码性能数据?....

    Java性能调优命令

    以下是一些常用的Java性能调优命令及其用法和相关知识点。 1. jps命令用于列出所有的JVM实例。通过该命令,开发者可以快速查看本机上所有Java应用程序的进程ID。例如,使用`jps`可以列出本机所有的JVM实例。 2. ...

Global site tag (gtag.js) - Google Analytics