![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
大超Bing
这个作者很懒,什么都没留下…
展开
-
jstat : 虚拟机统计信息监视工具
jstat 概念jstat(JVM Statistics Monitoring Tool) 用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中类装载、内存、垃圾收集、JIT编译等运行数据。jstat命令格式jstat[option vmid[interval[s|ms][count]]]选项option代表着用户希望查询的虚拟机信息,主要分为3类:类装载、垃圾收集、运行期编译状况:选项作用-class监视类装载、卸载数量、总空间以及类装载所耗费原创 2020-10-08 12:09:49 · 126 阅读 · 0 评论 -
走进JVM -- 垃圾回收(GC)
垃圾回收垃圾回收(Garbage Collection, GC). 垃圾回收的主要目的是清除不再使用的对象,自动释放内存.GC 是如何判断对象是否可以被回收的呢?为了判断对象是否存活,JVM 引入了GC Roots . 如果一个对象与 GC Roots之间没有直接或间接的引用关系. 比如某个失去任何引用的对象,或者两个相互环岛状循环引用的对象等. 判决这些对象 “死缓”,是可以被回收的.什么对象可以作为GC Roots 呢?比如: 类静态属性中引用的对象,常量引用的对象, 虚拟机栈引用的对象, 本原创 2020-10-08 11:13:09 · 199 阅读 · 0 评论 -
走进JVM -- 对象实例化
根据某个类的声明一个引用变量指向被创建的对象,并使用此引用操作该对象.在实例化对象的过程中,JVM 中发生了什么化学反应呢?(1) 从最简单的Object ref = new Object(); 代码进行分析,利用 javap -verbose -p 命令查看对象创建的字节码如下:stack =2, locals=1, args_size=0 NEW java/lang/Object DUP INVOKESPECIAL java/lang/Object.<init> ()V AS.原创 2020-09-30 17:26:58 · 122 阅读 · 0 评论 -
走进JVM -- 内存布局
概念内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行.JVM内存布局规定了java在运行过程中内存申请,分配,管理的策略,保证了JVM的高效稳定运行.经典的JVM内存布局图Heap (堆区)Heap是OOM 故障最主要的发源地,它存储着几乎所有的实例对象,堆由垃圾收集器自动回收,堆区由各子线程共享使用. 通常情况下,它占用的空间是所有内存区域中最大的,但如果无节制的创建大量对象,也容易消耗完所有的空间,堆的内存空间既可以固定大小,也可以在运行时原创 2020-09-28 22:41:32 · 113 阅读 · 0 评论 -
走进JVM -- 类加载过程
简介在冯.诺依曼定义的计算机模型中,任何程序都需要加载到内存才能与CPU进行交流. 字节码 .class 文件同样需要加载到内存中,才可以实例化类. “兵马未动, 粮草先行” ,ClassLoader 正是准备粮草的先行军,它的实名就是提前加载 .class类文件到内存中, 在加载类时,使用的是Parents Delegation Model ,译为 双亲委派模型或 溯源委派加载模型.java 类加载过程java 的类加载器是一个运行时核心基础设施模块, 主要是在启动之初进行类的 Load , Lin原创 2020-09-26 12:39:26 · 134 阅读 · 0 评论 -
走进JVM--字节码
字节码Java所有的指令有200个作用,一个字节(8位) 可以存储256种不同的指令信息,一个这样的字节称为字节码(Bytecode).在代码的执行过程中,JVM 量字节码解释执行,屏蔽对底层操作系统的依赖; JVM 也可以将字节码编译执行,如果是热点代码,会通过JIT 动态地编译为机器码,提高执行效率.如图所示:十六进制表示的二进制流通常是一个操作指令.起始的4个字节非常特殊,即绿色框的 cafe babe (十六进制) 是 Gosling 定义的一个魔法数,意思是Coffee Baby, 它的作原创 2020-09-26 11:17:17 · 197 阅读 · 0 评论