Java虚拟机(JVM)
文章平均质量分 85
sbq63683210
这个作者很懒,什么都没留下…
展开
-
Java内存区域
本文要解决的问题:深入理解Java虚拟机,本篇文章从Java内存区域开始分析。Java虚拟机运行时数据区分为以下几个部分: 方法区、虚拟机栈、本地方法栈、堆、程序计数器。如下图所示:程序计数器程序计数器可以理解为当前线程执行的字节码的行号指示器,字节码解释器就是通哟改变这个值来获取需要执行的下一条需要执行的字节码指令。对于多线程来说,每条线程都有自己原创 2016-07-28 20:44:42 · 497 阅读 · 0 评论 -
垃圾收集器概述
本文要解决的问题:深入理解Java虚拟机,本篇文章简单讲一下垃圾收集的概述。我们知道Java的内存区域分为程序计数器、虚拟机栈、本地方法栈、Java堆和方法区,而且其中的程序计数器、虚拟机栈和本地方法栈都是线程独立的,也就是说这三块内存区域的生命周期与线程是同生共死的。栈中帧栈在类结构确定的时候就已经知道该分配多少内存了,所以当线程结束的时候,内存也跟着一起回收了,从这原创 2016-07-28 22:00:56 · 502 阅读 · 0 评论 -
垃圾回收算法
本文要解决的问题:深入理解Java虚拟机,本篇文章进一步了解几种垃圾回收算法。垃圾收集算法是JVM中垃圾收集器的方法论,所以了解算法是必要的,在算法领域只做最简单的介绍,力求文章的简单易懂。垃圾收集算法主要有以下几种:标记-清除算法(mark-sweep)、复制算法(copying)和标记-整理算法(mark-compact)。随着jdk版本的升级,原创 2016-07-28 22:13:15 · 1171 阅读 · 0 评论 -
详解垃圾回收机制
本文要解决的问题:深入理解Java虚拟机,本篇文章进一步详细了解垃圾回收机制。前面已经对垃圾收集算法有了较为详细的介绍,这里我们将对JVM中具体的垃圾回收器进行介绍,在虚拟机规范中并没有对垃圾回收器如何实现具体介绍,因此每个厂商的垃圾回收器可能会完全不同,但是我们介绍的是基于JDK1.7之后的Hotspot虚拟机(包括前面对Java虚拟机的介绍也是基于jdk1.原创 2016-07-28 22:20:24 · 1116 阅读 · 0 评论 -
类文件结构
本文要解决的问题:深入理解Java虚拟机,本篇文章从类文件结构进行分析。我们平时在DOS界面中往往需要运行先运行javac命令,这个命令的直接结果就是产生相应的class文件,然后基于这个class文件才可以真正运行程序得到结果。自然。这是Java虚拟机的功劳,那么是不是Java虚拟机只能编译.java的源文件呢?答案是否定的。时至今日,Java虚拟机已经实现了原创 2016-07-28 22:25:18 · 911 阅读 · 0 评论 -
类加载机制
本文要解决的问题:深入理解Java虚拟机,本篇文章从类加载机制进行分析。虚拟机的类加载机制可以简单描述如下:Java虚拟机把描述类的数据从Class文件中加载到内存中,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的Java类型。虚拟机加载进行类加载的过程是在程序运行期间完成的,在程序运行期间加载的好处是可以动态扩展,说白了就是在编译期间虚拟机是不原创 2016-07-28 22:31:48 · 872 阅读 · 0 评论 -
静态分派与动态分派
本文要解决的问题:深入理解Java虚拟机,本篇文章分析了静态分配和动态分配。这里所谓的分派指的是在Java中对方法的调用。Java中有三大特性:封装、继承和多态。分派是多态性的体现,Java虚拟机底层提供了我们开发中“重写”和“重载”的底层实现。其中重载属于静态分派,而重写则是动态分派的过程。除了使用分派的方式对方法进行调用之外,还可以使用解析调用,解析调用是在原创 2016-07-28 22:35:58 · 1050 阅读 · 0 评论