
JVM
青葱岁月
个性开朗大方,从事互联网开发,擅长Java。喜欢唱歌,打篮球
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java -verbose:gc 命令
Java -verbose:gc 中参数-verbose:gc 表示输出虚拟机中GC的详细情况.使用后输出如下:[Full GC 168K->97K(1984K), 0.0253873 secs]解读如下: 箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据19...原创 2012-07-08 23:12:30 · 934 阅读 · 0 评论 -
JVM学习笔记(八):类加载器以及双亲委派模型介绍
本章内容根据《深入理解Java虚拟机》第7章部分内容整理 1.什么是类加载器? 在类加载阶段,有一步是“通过类的全限定名来获取描述此类的二进制字节流”,而所谓的类加载器就是实现这个功能的一个代码模块,这个动作是在Java虚拟机外部实现的,这样做可以让应用程序自己决定如何去获取所需要的类。 类加载器的作用:首先类加载器可以实现最本质的功能即类的加载动作。同时,它还能...2012-07-19 21:02:41 · 133 阅读 · 0 评论 -
JVM学习笔记(七):类加载的过程
本文根据《深入理解java虚拟机》第7章部分内容整理 在我的上一篇文章《JVM学习笔记(六):类加载的时机》中提到了java类从加载到卸载过程包括了加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(using)、和卸载(Unloading)七个阶段。下面我们来详...2012-07-19 18:59:43 · 146 阅读 · 0 评论 -
JVM学习笔记(六):类加载的时机
本文根据《深入理解java虚拟机》第7章部分内容整理 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)...2012-07-18 14:58:46 · 223 阅读 · 0 评论 -
JVM学习笔记(五):根据字节码指令介绍方法执行流程
在上一篇博客中介绍了《Class文件结构》,其中就提到了一个例子,下面我们依然根据该例子的字节码来对方法的执行流程进行讲解。 java类源码如下: public class TestClass{ private int num; public int inc(){ for(int i=0; i<10; i++){ num = i;...2012-07-17 19:48:34 · 136 阅读 · 0 评论 -
JVM学习笔记(四):Class文件结构
本文根据《深入理解Java虚拟机》第6章内容整理 一、Java的语言无关性 到今天为止,或许大部分的程序员都还认为Java虚拟机执行Java程序是一件理所当然和天经地义的事情。但在Java发展之初,设计者们就考虑过了在Java虚拟机上运行其它语言的可能性。时至今日商业机构和开源机构以及在Java语言之外发展出一大批在Java虚拟机上运行的语言,如Clojure,Gro...2012-07-17 18:29:21 · 178 阅读 · 0 评论 -
JVM学习笔记(三):JVM的垃圾回收
注:本文根据《深入理解Java虚拟机》第3章部分内容整理而成。 一.如何判断对象是否需要回收? 堆中几乎放着java世界中的所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。而如何判断对象是否应该回收,存在两个算法:引用计数算法(Reference Counting)和根搜索算法(GC...2012-07-12 21:06:50 · 104 阅读 · 0 评论 -
JVM学习笔记(二):JVM中对象访问的两种方式
由于Reference类型在Java虚拟机规范里面只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针:如果使用句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型...2012-07-11 18:32:48 · 156 阅读 · 0 评论 -
JVM学习笔记(一):运行时数据区
运行时数据区 java虚拟机定义了若干种程序运行时使用到的运行时数据区1.有一些是 随虚拟机的启动而创建,随虚拟机的退出而销毁2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。java虚拟机所管理的内存将会包括以下几个运行时数据区域 PC寄存器也叫程序计数器(Program Counter Register)是一块较小的内存空间,它的...2012-07-11 17:31:59 · 144 阅读 · 0 评论 -
JVM学习笔记(九):基于栈的解释器执行过程
本文根据《深入理解java虚拟机》第8章部分内容整理 根据一个代码实例来介绍虚拟机中解释器的执行过程,代码如下所示: public int calculate(){ int a = 100; int b = 200; int c = 300; return (a + b) * c;}由上面的代码可以看出,该方法的逻辑很简单,就是进行简单的四则运算加减乘除,我...2012-07-26 00:37:37 · 347 阅读 · 0 评论