………JVM
文章平均质量分 90
Francis-Leo
管理自己的时间,流程化工作
展开
-
【JVM】代码的执行
编译当我们写了一个Java Demo程序,使用maven打包成demo.jar之后,实质上我们是把java源文件通过编译器变成了相应的class文件,也就是字节码文件。即:.java文件 ——> 编译器编译 ——> .class文件一些思考:为什么要有编译这个动作?是因为我们写的代码是高级语言,而不是机器所能识别的01机器码,通过编译转换成机器可识别的机器码,然后机器就可...原创 2020-04-06 18:28:51 · 453 阅读 · 1 评论 -
【JVM】启动参数
分类Java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 标准参数- client:设置jvm使用client模...原创 2020-03-16 21:36:57 · 498 阅读 · 0 评论 -
【JVM】内存区域 & 对象创建定位
运行时数据区域Java虚拟机在执行Java程序中把内存划分为若干个不同的数据区域 不同的区域有各自的用途,创建时间和销毁时间 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码各个线程共享区域别名:非堆、永久代去永久代原因字符串在永久代中,容易出现性能问题和内存溢出类和方法的信息难以确定大小,太小导致永久代溢出,太大导致老年代溢出永久...原创 2018-09-04 11:35:48 · 251 阅读 · 0 评论 -
【JVM】垃圾收集
垃圾收集 准备引用计数法方法:对象添加一个引用计数器;每增加一个引用,计数器加1;当引用失效时,计数器减一问题:无法解决对象之间相互循环引用问题可达性分析算法方法:从GC Roots节点向下搜索,产生一系列引用链,如果对象到GC Roots没有任何引用链,则证明该对象不可用扩展: JDK1.2后引用分为 强引用、软引用(二次回收)、弱引用(下一次GC前)、虚引用(GC通知...原创 2018-09-04 17:14:58 · 247 阅读 · 0 评论 -
【JVM】性能调优
调优目标:使用较小的内存占用获得较高的吞吐量或者较低的延迟JVM问题:CPU load过高、请求延迟、tps降低、内存泄漏调优指标:内存占用:程序正常运行需要的内存大小延迟:由于垃圾收集而引起的程序停顿时间吞吐量:用户程序运行时间占用用户程序和垃圾收集占用总时间比值JVM调优参考日志系统运行日志:程序代码打印的日志,描述了代码级别的系统运行轨迹堆栈错误信息:根据堆栈...原创 2018-09-05 14:57:46 · 794 阅读 · 0 评论 -
【JVM】类加载机制
概念类加载机制:JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型类型的加载、连接、初始化都是在程序运行期间完成,增加了性能开销,提高了灵活性每个Class文件代表类或接口在JVM中Class文件是一串二进制的字节流 类加载步骤类从加载到内存到使用完卸载,需要经历 加载 - 连接(...原创 2018-09-05 21:47:16 · 235 阅读 · 0 评论