java性能优化

燕十三丶      2022-05-20     361

关键词:

真正影响JAVA程序性能的,就是碎片化。碎片是JAVA堆内存中的空闲空间,可能是TLAB剩余空间,也可能是被释放掉的具有较长生命周期的小对象占用的空间。

  1. 减少new对象。每次new对象之后,都要开辟新的内存空间。这些对象不被引用之后,还要回收掉。因此,如果最大限度地合理重用对象,或者使用基本数据类型替代对象,都有助于节省内存;

  2. 多使用局部变量,减少使用静态变量。局部变量被创建在栈中,存取速度快。静态变量则是在堆内存;

  3. 避免使用finalize,该方法会给GC增添很大的负担;

  4. 如果是单线程,尽量使用非多线程安全的,因为线程安全来自于同步机制,同步机制会降低性能。例如,单线程程序,能使用HashMap,就不要用HashTable。同理,尽量减少使用synchronized

  5. 用移位符号替代乘除号。eg:a*8应该写作a<<3

  6. 对于经常反复使用的对象使用缓存;

  7. 尽量使用基本类型而不是包装类型,尽量使用一维数组而不是二维数组;

  8. 尽量使用final修饰符,final表示不可修改,访问效率高

  9. 单线程情况下(或者是针对于局部变量),字符串尽量使用StringBuilder,比StringBuffer要快;

  10. String为什么慢?因为String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象。如果不能保证线程安全,尽量使用StringBuffer来连接字符串。这里需要注意的是,StringBuffer的默认缓存容量是16个字符,如果超过16,apend方法调用私有的expandCapacity()方法,来保证足够的缓存容量。因此,如果可以预设StringBuffer的容量,避免append再去扩展容量。如果可以保证线程安全,就是用StringBuilder。

推荐:java性能优化系列集锦

Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难。随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了。现代JVM持续演进,内建了更为成熟的优... 查看详情

有哪些java性能优化方法?

 面试官:“有性能优化经验没?” 应聘者:“有一点。” 面试官:“那你们从哪些方面做了优化?” 应聘者:“sql优化、JVM参数调优、JAVA代码性能优化。。” 面试官: “谈谈编写Java代码时有哪些优化方... 查看详情

java程序性能优化:让你的java程序更快更稳定

...习针对Java程序的优化方法有重要的现实意义。《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的知识与技巧。  《Java程序性能优化:让你的Java程序更快、更稳定》... 查看详情

java性能优化

EclipseIDE中设置JVM启动参数https://blog.csdn.net/yangyong0717/article/details/78751008eclipse运行调优(JVM参数配置)https://blog.csdn.net/lhooouuu/article/details/7220721JAVA性能优化:35个小细节让你提升java代码的运行效率https://blog.csdn 查看详情

java性能优化

Java性能优化之编程技巧总结https://www.cnblogs.com/yueshutong/p/9555174.html程序的性能受代码质量的直接影响。在本文中,主要介绍一些代码编写的小技巧和惯例,这些技巧有助于在代码级别上提升系统性能。1、慎用异常在Java软件开发... 查看详情

spark系列(代码片段)

...《Java并发编程》,《Spring核心知识》《Docker教程》和《JVM性能优化》,都是多年面试总结。欢迎关注【后端精进之路】,轻松阅读全部文章。Java并发编程:Java并发编程系列-(1)并发编程基础Java并发编程系列-(2)线程的并发工具类Ja... 查看详情

spark系列(代码片段)

目前已经更新完《Java并发编程》,《JVM性能优化》,《Spring核心知识》《Docker教程》和《Spark基础知识》,都是多年面试总结。欢迎关注【后端精进之路】,轻松阅读全部文章。Java并发编程:Java并发编程系列-(1)并发编程基础Java并... 查看详情

java性能优化(编程随想的博客)

  考虑写性能优化系列,主要是因为之前看到了太多性能其烂无比的Java代码(有些代码看得俺口瞪目呆)。很多Java程序员在写程序时,由于不太了解JVM及语言本身的一些运作机制,从而导致了代码的性能出现【严重】问题(... 查看详情

关于java内存优化和性能优化

...常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类对象的定义,一定要仔细考虑是否有必要。例如   类在加载时,静态变量 查看详情

Java HashMap 性能优化/替代

】JavaHashMap性能优化/替代【英文标题】:JavaHashMapperformanceoptimization/alternative【发布时间】:2010-12-1723:02:39【问题描述】:我想创建一个大的HashMap但put()的性能不够好。有什么想法吗?欢迎其他数据结构建议,但我需要JavaMap的查... 查看详情

[java]java程序性能优化

一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子: importjava.util.vector;classcel{voidmet... 查看详情

java性能优化的七个方向

...1f;本文主要侧重于理论分析,我们从整体上看一下Java性能优化都有哪些可以遵循的规律。本文主讲理论。关于实践,后续的文章会用较多的案例来细化本文的知识点,适合反复思考和归纳。概述性能优化根据优化的... 查看详情

java程序优化(读书笔记)

--From:JAVA程序性能优化(葛一鸣,清华大学出版社,2012/10第一版) 1.java性能调优概述  1.1性能概述     程序性能:执行速度,内存分配,启动时间,负载承受能力。    性能指标:执行时... 查看详情

java性能优化之string字符串优化

...的空间块,因此如何高效地处理字符串,必将是提高整体性能的关键所在。1.字符串对象及其特点Java中八大基本数据类型没有String类型,因为String类型是Java对char数组的进一步封装。String类的实现主要由三部分组成:char数组,off... 查看详情

九大工具助你玩转java性能优化

...章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具。有一些我们已经在IDRSolutions中使用了,而另外一些有可能在个人项目中使用。NetBeansProfilerNetBeansprofiler是一个NetBeansIDE插件,主要为NetBeansIDE提供性能分析相关... 查看详情

java回顾之mysql性能优化

java回顾之mysql性能优化一、慢查询日志慢查询日志,可以监控运行效率低下的sql语句,这样就可以知道是哪个sql语句拖累了整体的效率--查看慢查询日志开启情况showvariableslike‘%query%‘;开启慢查询setglobalslow_query_log=on;修改监控sql... 查看详情

90%java程序员被误导的一个性能优化策略(代码片段)

我们经常看到一些Java性能优化的书或者理念,说不要在循环内定义变量,这样会占用过多的内存影响性能,而要在循环外面定义。接触Java这么久以来,相信很多Java程序员都被这种代码性能优化策略所误导。看下面两个示例,示... 查看详情

java性能优化

真正影响JAVA程序性能的,就是碎片化。碎片是JAVA堆内存中的空闲空间,可能是TLAB剩余空间,也可能是被释放掉的具有较长生命周期的小对象占用的空间。减少new对象。每次new对象之后,都要开辟新的内存空间。这些对象不被引... 查看详情