摘要: 在学习GC之前,你首先应该记住一个单词:“stop-the-world”。Stop-the-world会在任何一种GC算法中发生。Stop-the-world意味着 JVM 因为要执行GC而停止了应用程序的执行。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态,直 阅读全文
posted @ 2017-08-10 13:58 xiaotian15 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织、存储数据。这里写的集合,一部分是比较常见的、一部分是不常用但是我个人平时见到过的,一些比较相似的集合(比如HashMap和Hashtable)就只讲一个,突出它们之间的区别即可。 最 阅读全文
posted @ 2017-07-06 11:53 xiaotian15 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 一、简介 Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。这个区域是用来存放对象实例的,几乎所有对象实例都会在这里分配内存。堆是Java垃圾收集器管理的主要区域(GC堆),垃圾收集器实现了对象的自动销毁。Java堆可以分为:新生代和老年代。Java堆可以处于物理上不连续的内存空间中, 阅读全文
posted @ 2017-06-14 16:51 xiaotian15 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 一、计算机的三种编码格式 1、原码:第一位表示符号, 其余位表示值 2、反码: 正数的反码是其本身 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反. 3、补码: 正数的补码就是其本身 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1) 计算 阅读全文
posted @ 2017-06-12 17:42 xiaotian15 阅读(1246) 评论(0) 推荐(0) 编辑
摘要: 一、设计目的 在Java的字节码解析器当中,需要辨别当前的字节码解析到了哪个地方,同时需要来控制程序的流程,如果在程序当中没有一个东西来记录当前程序执行到哪个,同时下一步应该执行哪一步操作例如:分支、循环、跳转、异常处理等操作都不是按照原本程序书写的顺序来执行的,所以为了能够引导程序的运行,就需要引 阅读全文
posted @ 2017-06-12 15:57 xiaotian15 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 一、JIT 简介 JIT 是 just in time 的缩写, 也就是即时编译编译器。使用即时编译器技术,能够加速 Java 程序的执行速度。下面,就对该编译器技术做个简单的讲解。 首先,我们大家都知道,通常通过 javac 将程序源代码编译,转换成 java 字节码,JVM 通过解释字节码将其翻 阅读全文
posted @ 2017-06-12 14:47 xiaotian15 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 一、运行时常量池简介 运行时常量池(Runtime Constant Pool),它是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到 阅读全文
posted @ 2017-06-12 11:04 xiaotian15 阅读(14219) 评论(1) 推荐(5) 编辑
摘要: 一、方法区简介 方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价,仅仅是因为HotSpot虚拟机的设计团队选择把GC分代收集扩展至方法区,或者说使用永久代来实 阅读全文
posted @ 2017-06-10 17:08 xiaotian15 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过本地方法接口来访问虚拟机的运行时数据区,但不止如此,它还可以做任何它想做的事情。 本地方法本质上时依赖于实现的,虚拟机实现的设计者 阅读全文
posted @ 2017-06-07 17:07 xiaotian15 阅读(1102) 评论(0) 推荐(1) 编辑
摘要: 一、前言 学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一个无关性那就是语言无关性,要实现语言无关性,那么Java体系中的class的文件结构或者说是字节码就显得相当重要了,其实Java从刚开始的时候就有两套规 阅读全文
posted @ 2017-06-07 17:05 xiaotian15 阅读(266) 评论(0) 推荐(0) 编辑