
java虚拟机
java虚拟机
易(Master Yi)
这个作者很懒,什么都没留下…
展开
-
Java虚拟机(六) -类加载机制-加载器-双亲委派
类加载机制一、概述二、类加载过程三、名词解释 一、概述 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)七个阶段。 其中,验证、准备、解析3个部分统称为连接(Linking...原创 2018-12-11 20:25:58 · 256 阅读 · 0 评论 -
Java虚拟机(五) -性能调优
一、分配大容量的堆内存,可能导致一次Full GC的停顿时间过长(网站不定期失去响应)。 给虚拟机分配超大堆的前提: 是有把握把应用程序的Full GC频率控制得足够低,至少要低到不影响用户使用。 譬如十几个小时乃至一天才会出现一次Full GC, 这样可以通过在深夜执行定时任务的方式触发Full GC甚至自动重启应用服务器来保持内存的可用空间在一个稳定的水平。 控制Full GC频率的关键: 应...原创 2018-11-15 19:23:46 · 238 阅读 · 0 评论 -
Java虚拟机(四) -虚拟机性能监控与故障处理工具
一、查看虚拟机进程状况(jps) 功能: 列出虚拟机执行进程 显示虚拟机执行主类 列表进程的本地虚拟机唯一ID(Local Virtual Machine Identifier, LVMID) 命令格式: jps [options] [hostid] #hostid是RMI注册表中注册的主机名 RMI:远程方法调用(Remote Method Invocation)。能够让在客户端Jav...原创 2018-11-13 19:56:31 · 248 阅读 · 0 评论 -
Java虚拟机(三) - GC垃圾回收
一、什么时候需要回收 Java使用可达性分析(Reachability Analysis)来判断对象是否存活。 这个算法的基本思想是:通过一系列称为"GC Roots"的对象作为起始点,从这些结点向下搜索,搜索所走过的路称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,证明这个对象时不可用的。被判断为可回收对象。 可最为GC Roots的对象包括: ...原创 2018-10-16 14:26:03 · 186 阅读 · 0 评论 -
Java虚拟机(二) - 对象 创建流程、内存分配
对象的创建流程 是否从虚拟机的视角,对象创建完成了,对于Java来说,对象创建才刚刚开始,方法还没有执行,所有字段都还是零虚拟机遇到一条new指令检查指令参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已被加载解析和初始化过为新生对象分配内存执行类加载过程将分配到的内存空间都初始化为零值,不包括对象头虚拟机对对象进行必要的设置,例如对象是哪个类的实例,如何找到类的元数据信...原创 2018-10-11 14:33:50 · 325 阅读 · 0 评论 -
Java虚拟机(一) - 内存区域与内存溢出异常
运行时数据区 1、 PC寄存器/程序计数器(Program Counter Register) 概念: 程序计数器时一块较小的内存空间,它可以看作时当前线程所执行的字节码的行号指示器。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(多核处理器来说是一个内核)都只会执行一条线程中的指令。 为了线程切换后能恢复到正确的执行位置,需要程...原创 2018-10-10 11:50:17 · 260 阅读 · 0 评论