摘要:处理器和缓存 由于计算机的存储设备与处理器的运算速度之间有着几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理之间的缓冲:将运算需要使用的数据复制到缓存中,让运算速度快速运行,当运算结束后再从弄个缓存同步回内存之中,这样处理器就无需等待缓慢
阅读全文
摘要:这一章节的内容实用性不强 所以不再手打笔记 转载了一篇 原文地址是http://blog.csdn.net/qq_27350929/article/details/54837595 在部分的商用虚拟机中,Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码
阅读全文
摘要:泛型类型擦除 C#中的泛型,不论是代码中,还是编译后,还是运行期,都是切实存在的。List<String>和List<Int>是两个截然不同的类型,有自己的虚方法表和类型数据,这种实现称为类型膨胀。 Java中的泛型是编译之后就消失了。只在代码中存在。 当泛型遇见重载 public class Ov
阅读全文
摘要:执行引擎 执行引擎是java虚拟机的重要组成部分。它的作用是接收字节码,解析字节码,执行并输出执行结果。 虚拟机是相对于物理机的概念,物理机的执行引擎是直接建立在处理器、寄存器、指令集和操作系统的层面上的。虚拟机的执行引擎是JVM自己实现的。所以可以定制指令集和执行引擎的结构体系。 运行时栈帧结构
阅读全文
摘要:class类文件的结构 java的class类文件中存在两种结构:无符号数和表。最小的存储单元是8个字节。 无符号数是基本的数据类型,用来描述数字,UTF-8编码的字符串,索引引用。 表示多个无符号数构成的复杂数据结构。 其中: magic 表示魔数,并且魔数占用了4个字节,魔数到底是做什么的呢?它
阅读全文
摘要:jre的bin目录下的工具,都非常小。它都是tools.jar下面的代码的一层封装而已。tools.jar不是java标准,是Hotspot实现的。 名称 作用 jps JVM Process Status Tool,现实指定系统内所有的HotSpot虚拟机进程 jstat JVM Statisti
阅读全文
摘要:引用计数算法 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。 客观地说,引用计数算法(Reference Counting)的实现简单,判定效率也很高,在大部
阅读全文
摘要:运行时数据区域 其中右侧三个一起的部分是每个线程一份,左侧两个是所有线程共享的。 程序计数器(Program Counter Register) 英文名称叫Program Counter Register。如果翻译为程序寄存器更加合理。 因为这块内存区域很小,功能也类似于寄存器。所以还是翻译寄存器比
阅读全文