JVM
彩虹之路
探求未知的世界
展开
-
JVM内存区域
根据《Java虚拟机规范(第2版)》的规定,Java虚拟机管理的内存包括下图几个运行时数据区域:1、程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一...翻译 2018-05-03 17:47:29 · 133 阅读 · 0 评论 -
JVM垃圾收集器与内存分配策略
概述GC要完成3件事:哪些内存需要回收?什么时候回收?如何回收?Java内存运行时区域的各部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着入栈和出栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束,...翻译 2018-05-04 11:14:22 · 145 阅读 · 0 评论 -
JVM类加载机制
概述:虚拟机的类加载机制主要是指:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的一整套机制类的加载过程其主要的加载流程(生命周期)如图:在这个生命周期的流程图中,加载,验证,准备,初始化,卸载这五个阶段的顺序是确定的,也就是说要加载类时需要依次进行这个五个阶段,但是类的解析阶段则不一定,有可能在初始化之后才开始进行解...翻译 2018-05-07 16:44:48 · 146 阅读 · 0 评论 -
java内存模型
Java内存模型概述Java内存模型(即Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变量都...翻译 2018-05-07 16:58:58 · 174 阅读 · 0 评论 -
jvm内存区域监控工具
JVM 图形化监控工具 前篇文章已经介绍了一些JDK 中自带的监控工具,但是这些工具都是基于文本界面的,无法很直观的看出程序运行的波动情况,这节就介绍一些图形化的监控工具供大家更简单容易的监控使用。 首先说几个官方开发的图形监控工具: 1.jvmstat jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。 ...翻译 2018-05-07 17:10:06 · 469 阅读 · 0 评论