
【JVM】
laiwenqiang
世间最痛苦的事,莫过于泯然于众人,默默无闻。
展开
-
JVM的自愈能力
在IT行业,碰到问题的第一个反应通常是——“你重启过没”——而这样做可能会适得其反,本文要讲述的就是这样的一个场景。 接下来要介绍的这个应用,它不仅不需要重启,而且毫不夸张地说,它能够自我治愈:刚开始运行的时候它可能会碰到些挫折,但会渐入佳境。为了能实际地展示出它的自愈能力,我们尽可能简单地重现了这一场景,这个灵感还得归功于五年前heinz Kabutz发表的一篇老文章: package转载 2014-12-15 12:53:06 · 631 阅读 · 0 评论 -
《Java虚拟机原理图解》 1.2、class文件中的常量池--转载收藏
[最新更新:2014/11/11] 了解JVM虚拟机原理 是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。感于以上的种种,我打算把我在学习JVM虚拟机的过程中学到的东西,结合自己的理解,总结成《Java虚转载 2014-12-20 17:07:56 · 607 阅读 · 0 评论 -
《Java虚拟机原理图解》 1.2.2、Class文件中的常量池详解(上)--转载收藏
目录(?)[+] [last updated:2014/11/27] NO1.常量池在class文件的什么位置? 我的上一篇文章《Java虚拟机原理图解》 1、class文件基本组织结构中已经提到了class的文件结构,在class文件中的魔数、副版本号、主版本之后,紧接着就是常量池的数据区域了,如下图用红线包括的位置: 知道了常量转载 2014-12-20 17:11:50 · 925 阅读 · 1 评论 -
《Java虚拟机原理图解》 1.2.3、Class文件中的常量池详解(下)--转载收藏
NO9.类中引用到的field字段在常量池中是怎样描述的?(CONSTANT_Fieldref_info, CONSTANT_Name_Type_info) 一般而言,我们在定义类的过程中会定义一些 field 字段,然后会在这个类的其他地方(如方法中)使用到它。有可能我们在类的方法中只使用field字段一次,也有可能我们会在类定义的方法中使用它很多很多次。 举一个转载 2014-12-20 17:15:53 · 663 阅读 · 0 评论 -
《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合 --转载收藏
讲完了class文件中的常量池,我们就相当于克服了class文件中最麻烦的模块了。现在,我们来看一下class文件中紧接着常量池后面的几个东西:访问标志、类索引、父类索引、接口索引集合。 1. 访问标志、类索引、父类索引、接口索引集合 在class文件中的位置 好,让我们来一一击破它们,看看它们到底是什么东西。 2. 访问标志(access_flags)能够表示什么?转载 2014-12-20 17:16:52 · 1436 阅读 · 0 评论 -
《Java虚拟机原理图解》 1.1、class文件基本组织结构 --转载收藏
[last updated: 2014/11/19 09:06] 作为Java程序猿,我们知道,我们写好的.java 源代码,最后会被Java编译器编译成后缀为.class的文件,该类型的文件是由字节组成的文件,又叫字节码文件。那么,class字节码文件里面到底是有什么呢?它又是怎样组织的呢?让我们先来大概了解一下他的组成结构吧。 NO1. 魔转载 2014-12-20 17:01:37 · 860 阅读 · 0 评论 -
《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的 --转载收藏
0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。 感于以上的种种,我打算把我在学习JVM虚拟机的过程中学到的东西,结合自己的理解,总结成《Java转载 2014-12-20 17:18:36 · 746 阅读 · 0 评论 -
《Java虚拟机原理图解》1.5、 class文件中的方法表集合--method方法在class文件中是怎样组织的 --转载收藏
0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。 感于以上的种种,我打算把我在学习JVM虚拟机的过程中学到的东西,结合自己的理解,总结成《Java虚转载 2014-12-20 17:20:02 · 637 阅读 · 0 评论 -
《Java虚拟机原理图解》3、JVM运行时数据区 --转载收藏
[last updated :2014/11/7] JVM运行时数据区(JVM Runtime Area)其实就是指JVM在运行期间,其对计算机内存空间的划分和分配。本文将通过以下几个话题来讨论JVM运行时数据区。 Topic 1. JVM运行时数据区里有什么?Topic 2. 虚拟机栈 是什么?虚拟机栈里有什么?Topic 3.栈帧是什么?栈帧里有什么?Topic 4转载 2014-12-20 17:21:06 · 721 阅读 · 1 评论 -
垃圾回收算法
引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。 缺点:此算法最致命的是无法处理循环引用的问题。当某些对象相互引用,同时这些对象构成的整体又不被其他对象引用时,本该回收这些内存,但是因为计数为1,不会被回收。 标记-清除(Mark-Swee原创 2015-10-23 14:37:51 · 703 阅读 · 0 评论 -
JVM运行时数据区域
图例程序计数器当前线程所执行的字节码的行号指示器。虚拟机栈java方法执行的内存模型描述,存储局部变量表、操作数栈、动态链表、方法出口等信息。本地方法栈和虚拟机栈类似,不过执行的方法是Native方法,是由非java语言实现的方法。java堆最大的一块内存区域,存放对象实例。方法区存储类结构信息、常量、静态变量、即时编译器编译后的代码等数据。运行时常量属于方法区的一部分,存放编译期生成的各种字面量和原创 2017-02-07 14:34:37 · 359 阅读 · 0 评论