![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java虚拟机
文章平均质量分 96
介绍java虚拟机
kaikai_sk
我的个人主页:https://kaikai-sk.github.io/
爱生活/爱技术
展开
-
深入理解java虚拟机之虚拟机性能监控和故障处理工具
SDK监控和故障处理工具 名称 主要作用 jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 jinfo Configuration Info For Java ,显示虚拟机配置信息 jmap Memo...原创 2019-03-15 16:43:32 · 443 阅读 · 1 评论 -
java人为制造溢出
堆内存溢出 package com.jvm.basics;import java.util.ArrayList; import java.util.List;public class HelloHeapOutOfMemeory { public static void main(String[] args) { System.out.println("HelloHea原创 2017-08-03 21:05:54 · 673 阅读 · 0 评论 -
jvm内存模型
jvm内存三大核心区域原创 2017-08-04 08:57:52 · 219 阅读 · 0 评论 -
JVM之内存与垃圾回收篇3
Object中定义了finalize方法,可以被覆写。永远不要主动调用对象的finalize方法,这个应该交由垃圾收集器调用。理由如下:(1)在finalize时可能会导致对象复活。(2)finalize的执行时刻是没有保障的,完全由GC线程决定。极端情况下,如果不发生GC,那么finalize方法永远不会执行。(3)一个糟糕的finalize方法严重影响GC的性能。虚拟机中的对象存在三种状态:① 可触及的:从根节点开始,可以到达这个对象。原创 2023-07-21 15:11:29 · 283 阅读 · 0 评论 -
JVM之内存与垃圾回收篇2
基于栈式架构的虚拟机使用的零地址指令更加紧凑,但是完成一项操作的时候必然要使用更多的入栈和出栈指令,这时就意味着将需要更多的指令分派次数(instruction dispatch)和内存读写次数。如果Java虚拟机栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的虚拟机栈,那么Java虚拟机会抛出。动态链接:如果被调用方法在编译期无法确定下来,换言之,只能在程序运行期将调用方法的符号引用转换为直接引用,这种引用转换过程具有动态性,因此也被称为动态链接。原创 2023-07-15 21:37:41 · 1862 阅读 · 0 评论 -
JVM学习之内存与垃圾回收篇1
隔离类加载器修改类加载方式扩展加载源防止源码泄漏继承抽象类, 建议把自定义的类加载逻辑放在方法中。如果没有特别复杂的需求,可以直接继承URLClassLoader,这样可以避免自己去写findClass方法及其获取字节码流的方式,使自定义类加载器编写更加简洁。原创 2023-07-14 18:38:45 · 2686 阅读 · 0 评论