JVM-深入理解java虚拟机
啃代码的小菜鸟
希望每天能写点让自己觉得优雅点的代码就好。
展开
-
深入理解JVM之一:Java内存结构
Java虚拟机运行时数据区分为以下几个部分: 方法区、虚拟机栈、本地方法栈、堆、程序计数器。如下图所示: 程序计数器 程序计数器可以理解为当前线程执行的字节码的行号指示器,字节码解释器就是通哟改变这个值来获取需要执行的下一条需要执行的字节码指令。对于多线程来说,每条线程都有自己的程序计数器,这样各线程之间的计数器互不影响,这类内存区域也叫作“私有内存”(可以看到其实并不原创 2016-04-03 21:02:41 · 542 阅读 · 0 评论 -
深入理解JVM之二:内存的垃圾回收算法
在接收垃圾回收算法是有必要对以下知识点了解熟知: 哪些内存需要回收: jvm虚拟机内存结构中程序计数器、本地方法栈、虚拟机方法栈都是线程私有的,随着线程的创建被创建,随着线程的销毁而推出,栈帧随着方法的创建以及退出有条不紊的实现入栈与出栈。而在程序运行期间才能知道要创建多少对象,这部分内存是不确定的动态的,因此java虚拟机的垃圾回收机制主要是java堆中和方法区中内存回收。 如何确定一原创 2016-04-04 22:08:13 · 1140 阅读 · 0 评论 -
深入理解JVM之三:类文件结构
前言 我们平时在DOS界面中往往需要运行先运行javac命令,这个命令的直接结果就是产生相应的class文件,然后基于这个class文件才可以真正运行程序得到结果。自然。这是Java虚拟机的功劳,那么是不是Java虚拟机只能编译.java的源文件呢?答案是否定的。时至今日,Java虚拟机已经实现了语言无关性的特点。而实现语言无关性的基础是虚拟机和字节码的存储格式,Java虚拟机已经不和包括J原创 2016-04-06 21:45:50 · 1887 阅读 · 0 评论 -
深入理解JVM之四:类加载过程
虚拟机类加载机制概念:虚拟机把描述类的数据的class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。首先,先来思考以下两个问题: (1)虚拟机如何加载class文件; (2)class文件中的信息进入到虚拟机后发生什么变化 相信看完这篇博文对回答这两个问题会很容易以及对类加载过程有个深刻的理解。原创 2016-04-15 19:43:58 · 521 阅读 · 0 评论