JVM 调优实战--JVM字节码
2023-09-14 09:01:56 时间
目录
通过javap命令查看class文件的字节码内容
通过javap命令查看字节码并将内容写入到Test1.txt文件中的命令:
javap -v Test1.class > Test.txt
打开Test1.txt文件:
常量池
描述符
字段描述符
方法描述符
解读方法字节码
图解
研究i++与++i的不同
查看字节码
对比
分析字符串拼接孰优孰劣
编写测试案例:
m1方法的执行过程中,jvm底层会new StringBuilder()进行处理;
结论:m1方法中虽然在代码中使用的是+号拼接,但是在字节码中也被编译成了StringBuilder的方式。因此可以得出结论:
字符串拼接,+号和StringBuilder是相等的,效率一样。
再来看一个案例:
m1方法,底层JVM的执行过程是循环多少次就new多少个StringBuilder对象:
goto语句,比如goto 5,跳转到第5行继续执行。
m2方法,JVM的层只new了一个StringBuilder对象:
结论:m1的效率明显低于m2方法。
小结
使用字节码的方式可以很好地查看代码底层的执行,从而可以看出哪些实现效率高,哪些实现效率低。可以更好地对我们的代码进行优化,让程序执行效率更高。
相关文章
- jvm面试题
- 【JVM】基于栈的字节码执行
- Java技术专题之JVM你的内存泄露了吗?
- CLR 对比 JVM
- JVM常见面试题
- java 15: jinfo查看jvm配置参数和系统属性
- 通过JCONSOLE监控TOMCAT的JVM使用情况
- JVM对象分配过程详解.png
- jvm jstack的使用
- JVM调优:对象进入老年代的两个条件
- JVM生产环境参数实例及分析
- JVM 调优实战--一个案例理解常用工具(命令)
- Java代码优化思路(JVM的角度)
- JVM--参数调优
- 【JVM与内存调优】Java中五种创建对象的方式 与 HotSpot虚拟机对象探秘
- linux 服务器内存清理内存缓存 详细说明 java jvm
- 【JVM】如果你想学好 Java,怎么可以不懂 JVM 字节码指令集呢?看完这篇文章你将深入理解Java背后的原理
- 从jvm的角度考虑链表是如和存储的,并手写Java单向链表的,问题难在节点和头节点的对象引用
- JVM之字节码——Class文件格式
- JVM详解