小白学JVM
文章平均质量分 92
最底层的程序员
这个作者很懒,什么都没留下…
展开
-
白话JVM之虚拟机类加载机制
上图中,加载、验证、准备、初始化和卸载这个五个阶段的必须是按部就班的,而解析在某些情况下可以在初始化阶段以后再开始。《Java虚拟机规范》只规范了在什么时候初始化,其他的没规范,但是他又规范了加载、验证、准备是要在初始化之前进行。规定有以下场景才会强制初始化(有且只有):遇到new、getstatic、pustatic、或invokestatic这四条字节码指令时,如果类型没有进行初始化,就要先进行初始化,能够生成这四条指令的典型的Java代码场景有:*使用new关键字实例化对象的时候*读取或设置原创 2021-01-31 13:40:01 · 257 阅读 · 3 评论 -
白话JVM之性能监控、故障处理工具
基础故障处理工具jps功能和linux下的ps很像,是最基础的 命令,其他命令需要知道java进程的id(LVMID),就需要先用这个查一下命令格式:jps [options] [hostid]option作 用-q只输出LVMID,省略之类的名称-m输出虚拟机进程启动时传递给主类main()函数的参数-l输出主类的全名,如果进程执行的jar包 ,则会输出jar包的路径-v输出虚拟机启动时启动的jvm参数原创 2021-01-24 13:27:15 · 88 阅读 · 0 评论 -
白话JVM之各种常见垃圾收集器
GC并不是java的衍生物,1960年就提出了垃圾收集的概念,Java垃圾收集器到现在为止25年,各大虚拟机开发公司的工程师慢慢完善,从开始的新生代老年代模式,到现在的region模式,都离不开三个事情:哪些内存需要回收?什么时候回收?如何回收?从最初的单线程Serial收集器,到现在的ZGC,垃圾收集器的瓶颈不在于处理垃圾的速度,各大虚拟机开发者绞尽脑子处理的就是提升吞吐量和降低延迟,但是这俩似乎看起来是鱼和熊掌。吞吐量:吞吐量=用户代码运行时间\(用户代码运行时间+垃圾运行收集的时间)吞吐量当原创 2021-01-17 12:46:19 · 114 阅读 · 0 评论 -
白话JVM之内存区域与内存溢出异常
周志明《深入理解Java虚拟机》一书学习笔记,仅代表个人理解。原创 2021-01-16 11:21:26 · 122 阅读 · 0 评论