JVM
哈喽羊
这个作者很懒,什么都没留下…
展开
-
深入理解JVM——分类(1)
1. Sun Classic Vm 第一款商用的虚拟机,只能使用纯解释器的方式来执行java代码。已经过时了。 2. Exact Vm 1)Exact的全称是Exact Memory Management 准确式内存管理(虚拟机可以知道内存中某个位置的数据是什么内存的)。 2)编译器和解释器混合工作以及两级即时编译器。 3)只在Solaris平台发布。还没在windows即其他平台...原创 2018-08-10 16:38:26 · 832 阅读 · 0 评论 -
深入理解JVM——内存管理概述(2)
本文主要参考:《深入理解Java虚拟机》—周志明 0. 概述 我们知道java相比于c,c++的优势在于内存管理。而内存管理由JVM来负责 一个java程序的编译和执行过程如下: ● java ---------编译----------> .class ● 类加载器负责加载各个字节码文件(.class) ● 加载完.class后,由执行引擎执行,在执行过...原创 2018-08-11 08:36:51 · 205 阅读 · 0 评论 -
深入理解JVM——对象的创建(3)
1. 对象的创建 我们先来看看对象的创造过程,如下图 对象的创建需要类的加载,这个以后会在类加载器的章节详细说明 我们先来讲讲虚拟机为对象分配内存: 分配内存分为指针碰撞和空闲列表两种方式,这两种方式是由内存是否规整决定的,而是否规整又是由垃圾回收策略决定的,如果垃圾回收器有压缩整理的功能,则可以使用指针碰撞: 1)指针碰撞:前提是堆内存中的空闲空间十分的规整,使用和未使用的空...原创 2018-08-11 12:21:11 · 467 阅读 · 0 评论 -
深入理解JVM——垃圾回收(4)
本文主要参考:《深入理解Java虚拟机》—周志明 0. 概述 我们本文主要关注一下几点: 一.如何判定对象为垃圾对象 1)引用计数法 2)可达性分析法 二.如何回收 1)回收策略: ●标记-清除算法 ●复制算法 ●标记-整理算法 ●分代收集算法 2)垃圾回收器: ●Serial ●Parnew ●Cms ●G1 1. ...原创 2018-08-11 16:12:40 · 563 阅读 · 0 评论 -
深入理解JVM——类的加载过程(5)
本文主要参考:《深入理解Java虚拟机》—周志明 0. 概述 虚拟机把描述类的数据从class文件(注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),)加载到内存,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 ...原创 2018-08-15 15:24:03 · 369 阅读 · 0 评论 -
深入理解JVM——字节码执行引擎之方法调用(6)
本文主要参考:《深入理解Java虚拟机》—周志明 方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,但前面已经讲过,Class文件的编译过程中不包含传统编译中的连接步骤,一 切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运...原创 2018-08-16 16:44:17 · 650 阅读 · 0 评论 -
JVM与JMM
最近翻看了java线程相关的东西,书中有一边专门讲到java内存模型,读完之后边回想起java虚拟机模型,那时心中便在思考java内存模型(以下简称JMM)和java虚拟机模型(以下简称JVM)之间的关系,下面将详细讲述。 一JVM结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用。 1 Class Loader(类加...转载 2018-08-26 08:20:32 · 386 阅读 · 0 评论