老傅浅结 JVM
此为《深入理解Java虚拟机》的读书笔记,简要记录总结。
DoubleFJ
只有回不去的过去,没有到不了的未来。
展开
-
JVM 常用调优参数
记录下 JVM 常用的一些调优参数。// 常见参数-Xms1024m 初始堆大小 -Xmx1024m 最大堆大小 一般将 Xms 和 Xmx 设置为相同大小,防止堆扩展,影响性能。-XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值.如:为 3,表示年轻代与年老代比值为 1:3,年轻代占整个年轻代年老代和的 1/4 -XX:Survi...原创 2019-02-21 14:32:57 · 860 阅读 · 1 评论 -
JVM 之字节码执行引擎
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。概述执行引擎是 Java 虚拟机最核心的组成部分之一。在不同的虚拟机实现里面,执行引擎在执行 Java 代码的时候可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备,甚至还可能会包含几个不同级别的编译器执行引擎。但从外观上看起来,所有的 Java ...原创 2018-12-01 23:48:14 · 175 阅读 · 0 评论 -
JVM 之类加载机制
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。概述虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在 Java 语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,Java 里天...原创 2018-11-25 17:15:28 · 173 阅读 · 0 评论 -
JVM 之类文件结构
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。无关性的基石实现语言无关性的基础是虚拟机和字节码存储格式。Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了 Java 虚拟机指令集和符号表以及若干其他辅助信息。基于安全方面的考虑,Java 虚拟机规范要求在 C...原创 2018-11-24 22:03:05 · 158 阅读 · 0 评论 -
JVM 之垃圾收集器与内存分配策略
Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。对象死活垃圾收集器在对堆进行回收前,第一件事就是要确认这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加 1;当引用失效时,计数器值就减 1;任何时刻计数器为 0 的对...原创 2018-11-20 00:41:35 · 151 阅读 · 0 评论 -
JVM 之 Java 内存区域与内存溢出异常
Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java 虚拟机规范(Java SE 7 版)》的规定,包括如下几个运行时数据区域,如图:程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行...原创 2018-11-19 01:24:23 · 188 阅读 · 0 评论