博客专栏  >  编程语言   >  深入理解Java虚拟机

深入理解Java虚拟机

深入理解Java虚拟机——读书笔记

关注
0 已关注
18篇博文
  • Java 程序执行顺序

    Java程序执行顺序 Java程序的执行顺序大概可以分成三个部分。 1.静态属性:静态方法声明,静态块。 2.动态属性:普通方法声明,构造块。 3.构造方法。 而如果类与类之...

    2018-01-22 22:19
    84
  • Java虚拟机内存区域划分

    Java程序运行时的数据区域 Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在...

    2018-02-12 11:15
    39
  • Java 对象的创建的过程

    Java是一门面向对象的语言,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样的一个过程呢? Java对象创建过程 虚拟机遇到一个new指令时,首先将去检查这个指令...

    2018-02-12 12:14
    38
  • Java 对象的内存布局

    在HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、 实例数据(Instance Data)、对齐填充(Padding)。 对象头 HotSpot虚拟机的对象...

    2018-02-13 09:21
    62
  • Java 对象的访问定位

    建立对象是为了使用对象,Java程序通过栈上的reference数据来操作堆上的具体对象。 目前主流的访问方式有使用句柄和直接指针两种。 使用句柄访问 如果使用句柄访问方式,Java堆中将会...

    2018-02-13 09:39
    43
  • 垃圾收集器概述

    垃圾收集器(Garbage Collection, GC)的历史可以追溯到1960年MIT的第一门真正使用内存动态分配和垃圾收集技术的语言——Lisp。人们当时就在思考GC需要完成的3件事: ...

    2018-02-16 20:02
    38
  • 垃圾收集算法

    在确定了哪些垃圾可以被回收后,垃圾收集器要做的事情就是开始进行垃圾回收,但是这里面涉及到一个问题是:如何高效地进行垃圾回收。由于Java虚拟机规范并没有对如何实现垃圾收集器做出明确的规定,因此各个厂商...

    2018-02-16 22:02
    83
  • HotSpot 对算法的实现

    前面垃圾收集器概述和垃圾收集算法两节从理论上介绍了对象存活判断算法和垃圾收集算法,本节则主要介绍HotSpot对上述算法的实现规则。 枚举根节点 可达性算法中从GC Roots节点找到引用链这个操...

    2018-02-16 23:24
    30
  • 7种垃圾收集器

    如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别...

    2018-02-17 15:39
    23
  • 内存分配与回收策略

    Java技术体系中所提倡的自动内存管理最终可以归结为自动化的解决了两个问题: 给对象分配内存 回收分配给对象的内存 回收分配给对象的内存在前面几节中已经说明过了。 对象的内存分配简单来说就是...

    2018-02-17 16:46
    24
  • Class类文件的结构

    class文件是一组以8位字节为基础的二进制流,各个数据项目严格按照顺序紧凑地排列在class文件中,中间没有任何分隔符,这点和png、jpg等图片文件格式类似。当遇到需要占用8位字节以上空间的数据项...

    2018-02-18 14:18
    57
  • 类的整个生命周期

    上一节介绍了Class文件的结构,但是最终Class文件中描述的信息最终要加载到虚拟机中之后才能使用。 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可...

    2018-02-18 20:47
    39
  • 类加载器

    在类的整个生命周期一节中,在加载一节中提到 通过一个类的全限定名来获取定义此类的二进制字节流 事实上,虚拟机设计团队把这部分的操作放置到Java虚拟机外部去实现,以便让应用程序自己决定如何...

    2018-02-18 21:59
    21
  • 虚拟机字节码执行引擎

    字节码就像是汇编语言,是 JVM 的指令集。 执行引擎是 Java 虚拟机最核心的组成部分之一。“虚拟机” 是一个相对于 “物理机” 的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是...

    2018-02-19 13:43
    26
  • 早期(编译期)优化

    Java语言的“编译期”是一段不确定的操作过程,可能是: 前端编译器(编译器的前端)把Java文件转换为class文件。Sun 的 Javac、 Eclipse JDT 中的增量式编译器( ECJ...

    2018-02-20 15:26
    37
  • 晚期(运行期)优化

    在部分的商用虚拟机(Sun HotSpot、IBM J9)中,Java 程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为...

    2018-02-20 22:20
    32
  • Java内存模型与线程

    让计算机去同时处理几件事情可以充分利用计算机处理器,从另一个场景来看,一个服务器同时对多个客户端提供服务也是一个并发应用场景。衡量一个服务性能的高低好坏,每秒事务处理数(Transactions Pe...

    2018-02-21 16:13
    32
  • 线程安全与锁优化

    当多个线程访问一个对象时,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象时线程安全的...

    2018-02-21 17:54
    38

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部