- 博客(8)
- 收藏
- 关注
原创 如果你想学习Java,那么就来看这篇文章
一、前言我是从大二开始学习的Java,当时的目标是Java Web开发,当时并不想考研,所以当时的学习是以就业为主,现在我大三了,学习Java Web开发已经一年了,因为种种原因,决定要考研,所以不得不暂时终止了Java Web的学习,博客也可能会停更很长一段时间,虽然只学习了一年Java,但是我感觉我对于学习Java开发还是有一些心得,对于Java Web的学习路线也很清楚,所以,现在把自己...
2018-08-27 08:42:46 2684 8
原创 细说JVM(虚拟机实现多态)
一、前言我们在初学Java的时候就知道Java是一门面向对象的编程语言,而面向对象的编程语言有三大特性:多态、继承、封装。封装继承自不必说,那么大家在初学Java的时候想过Java是如何实现多态的吗,说实话我就没有想过,毕竟这些实现对我来说是透明的,我只要会用多态就可以了,但是随着学习的深入,发现在不清楚原理的情况下,对于多态的运用总是感觉很陌生,终于在学习《深入理解Java虚拟机》这本书时,...
2018-08-11 18:03:44 4490
原创 细说JVM(类加载器)
一、类加载器的基本概念顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实...
2018-08-09 18:18:21 3881 2
原创 细说JVM(类加载机制)
一、类加载的时机从类被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期分为7个阶段,加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)。其中验证、准备、解析三个部分统称为连接。 7个阶段发生的顺序如下: 其中类加载的过程包...
2018-08-07 17:20:17 532
原创 细说JVM(类文件结构(二))
一、前言上一篇博客的地址:细说JVM(类文件结构(一))二、类文件分析5、类索引、父类索引与接口索引集合在访问标志access_flags后接下来就是类索引(this_class)和父类索引(super_class),这两个数据都是u2类型的,而接下来的接口索引集合是一个u2类型的集合,class文件由这三个数据项来确定类的继承关系。由于Java中是单继承,所以父类索引只有一个;但...
2018-08-05 16:49:22 692 2
原创 细说JVM(类文件结构(一))
一、前言我们知道我们写完的Java程序经过javac xxx.java编译后生成了xxx.class文件,可是你是否想过xxx.class文件到底是什么?这个文件中到底包含了什么内容?那么现在我们就一起通过解析一个.class文件来深入的学习一下类文件结构,通过这次的学习,我想你会对class文件了如指掌。二、Class类文件结构在解析一个class文件之前,我们需要先学习一下Cl...
2018-08-03 18:13:01 2928 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 421
原创 细说JVM(垃圾收集算法和HotSpot的算法实现)
一、垃圾收集算法1、标记—清除算法思想: 标记清除算法分为“标记”和“清除”两个阶段:首先标记出需要回收的对象,在标记完成后统一回收所有被标记的对象,标记的方法就是细说JVM(初步理解GC)中的可达性分析算法。 主要缺点:效率问题:标记和清除的效率都不高,主要是因为内存经过这种算法垃圾收集后变为不规整的内存,标记和清除的效率受到了影响。空间问题:因为内存在垃圾收集后会产生大量不...
2018-08-01 16:41:19 1051
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人