细说JVM
文章平均质量分 96
这个专栏主要是记录我看《深入理解Java虚拟机》的一些想法,希望能帮助初学JVM的人。
Jivan2233
一个又在努力准备复试的考研学生。
展开
-
细说JVM(虚拟机实现多态)
一、前言我们在初学Java的时候就知道Java是一门面向对象的编程语言,而面向对象的编程语言有三大特性:多态、继承、封装。封装继承自不必说,那么大家在初学Java的时候想过Java是如何实现多态的吗,说实话我就没有想过,毕竟这些实现对我来说是透明的,我只要会用多态就可以了,但是随着学习的深入,发现在不清楚原理的情况下,对于多态的运用总是感觉很陌生,终于在学习《深入理解Java虚拟机》这本书时,...原创 2018-08-11 18:03:44 · 4478 阅读 · 0 评论 -
细说JVM(类加载器)
一、类加载器的基本概念顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实...原创 2018-08-09 18:18:21 · 3857 阅读 · 2 评论 -
细说JVM(类加载机制)
一、类加载的时机从类被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期分为7个阶段,加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)。其中验证、准备、解析三个部分统称为连接。 7个阶段发生的顺序如下: 其中类加载的过程包...原创 2018-08-07 17:20:17 · 521 阅读 · 0 评论 -
细说JVM(类文件结构(二))
一、前言上一篇博客的地址:细说JVM(类文件结构(一))二、类文件分析5、类索引、父类索引与接口索引集合在访问标志access_flags后接下来就是类索引(this_class)和父类索引(super_class),这两个数据都是u2类型的,而接下来的接口索引集合是一个u2类型的集合,class文件由这三个数据项来确定类的继承关系。由于Java中是单继承,所以父类索引只有一个;但...原创 2018-08-05 16:49:22 · 690 阅读 · 2 评论 -
细说JVM(类文件结构(一))
一、前言我们知道我们写完的Java程序经过javac xxx.java编译后生成了xxx.class文件,可是你是否想过xxx.class文件到底是什么?这个文件中到底包含了什么内容?那么现在我们就一起通过解析一个.class文件来深入的学习一下类文件结构,通过这次的学习,我想你会对class文件了如指掌。二、Class类文件结构在解析一个class文件之前,我们需要先学习一下Cl...原创 2018-08-03 18:13:01 · 2923 阅读 · 7 评论 -
细说JVM(垃圾收集器与内存分配)
一、基础性的概念1、Minor GC 和 Full GC新生代GC(Minor GC):指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快。老年代GC(Major GC / Full GC):指发生在老年代的GC,出现了Major GC,经常会伴随至少一次的Minor GC(但非绝对的,在Parallel Scav...原创 2018-08-02 16:38:22 · 419 阅读 · 0 评论 -
细说JVM(垃圾收集算法和HotSpot的算法实现)
一、垃圾收集算法1、标记—清除算法思想: 标记清除算法分为“标记”和“清除”两个阶段:首先标记出需要回收的对象,在标记完成后统一回收所有被标记的对象,标记的方法就是细说JVM(初步理解GC)中的可达性分析算法。 主要缺点:效率问题:标记和清除的效率都不高,主要是因为内存经过这种算法垃圾收集后变为不规整的内存,标记和清除的效率受到了影响。空间问题:因为内存在垃圾收集后会产生大量不...原创 2018-08-01 16:41:19 · 1043 阅读 · 0 评论 -
细说JVM(初步理解GC)
一、GC概述我们经过细说JVM(Java内存区域划分AND初探对象的创建)的学习,已经知道Java在运行时内存分为了五个部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中程序计数器、虚拟机栈、本地方法栈所占用的内存是不需要垃圾收集的,这三个区域的内存随着线程生,随着线程死,我们需要关注的其实只有堆和方法区这两块内存的垃圾收集。二、对象的生与死我们在细说JVM(Java内存区域...原创 2018-07-31 16:09:32 · 551 阅读 · 0 评论 -
细说JVM(Java内存区域划分AND初探对象的创建)
一、前言经过一番思想斗争,我决定好好的学习一下JVM,而对于一个JVM的初学者《深入理解Java虚拟机》当然是必须拜读的神作,所以这个专栏暂时会记录我阅读时的笔记吧,以后有可能真正深入学习Java虚拟机后,可能会有一些自己研究的成果,不过这估计是很久以后的事情了,看过这本书的也可以接机复习一下相关的知识,没有看过书的,我尽量把我所学到的知识写的通俗易懂一些,不过还是及其推荐阅读一下《深入理解J...原创 2018-07-30 17:33:43 · 672 阅读 · 0 评论