深入理解jvm
深入理解java虚拟机 jvm高级特性
lik_lik
学生
展开
-
《深入理解java虚拟机》第十章 早期(编译器)优化
java语法糖的味道泛型与类型擦除在java还没有出现泛型之前,只能通过Object是所有类型的父类、类型强制转换两个特点的配合来实现类型泛化。java中的泛型,只在程序源码中存在,在编译后的字节码文件中,就已经替换为原来的原生类型,并在相应地方插入了强制转型代码。List<String>和List<Integer>就是同一个类,泛型技术实际上是java语言的一颗语...原创 2019-04-16 18:52:29 · 8465 阅读 · 0 评论 -
《深入理解java虚拟机》 第八章 虚拟机字节码执行引擎
概述执行引擎是java虚拟机最核心的组成部分之一。在java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型称为各种虚拟机执行引擎的统一外观(Facade): 输入的是字节码文件 处理过程是字节码解析的等效过程 输出的是执行结果运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,是vm运行时数据区中的虚拟机栈...原创 2019-04-15 22:24:22 · 1416 阅读 · 0 评论 -
《深入理解java虚拟机》读书笔记 第七章 虚拟机类加载机制
概述1. 虚拟机把描述类的数据从Class文件加载到内存2. 对数据进行校验、转换解析、初始化3. 最终形成可被虚拟机直接使用的java类型类加载的时机"类从被虚拟机加载到内存,到卸载出内存的生命周期": 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始化(Initial...原创 2019-04-13 21:26:55 · 1277 阅读 · 0 评论 -
《深入理解java虚拟机》读书笔记 第六章 类文件结构
jvm的语言无关性时至今日,商业机构和开源机构已经在Java语言之外发展出一大批在Java虚拟机之上运行的语言,如Clojure、Groovy、 JRuby、 Jython、 Scala 等。Java虚拟机只与"Class这种二进制文件"绑定。Class类文件的结构Class文件是一组以8位字节为基础单位的二进制流。当遇到超过8位的数据项时,则会按照高位在前(大端)方式分割后存储。...原创 2019-04-13 08:51:20 · 2536 阅读 · 0 评论 -
《深入理解java虚拟机》读书笔记 第四章 虚拟机性能监控与故障处理工具
命令行工具jpsjstatjinfojmapjhatjstackhsdisjdk的可视化工具jconsolevisualvm具体待补充。。。原创 2019-04-10 12:08:36 · 272 阅读 · 0 评论 -
《深入理解java虚拟机》读书笔记 第三章 垃圾收集器与内存分配策略
为什么我们要了解GC和内存分配?当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。对象已死吗在堆里面存放着Java世界中几乎所有的对象实例垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。引用计数算法(Referen...原创 2019-04-10 12:03:44 · 1379 阅读 · 0 评论 -
《深入理解java虚拟机》读书笔记 第二章 java内存区域与溢出异常
java与c++ 相比,对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,由虚拟机管理内存。这一切看起来都很美好。不过,也正是因为Java程序员把内存控制的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会成为一项异常艰难的工作。此...原创 2019-04-08 22:25:50 · 324 阅读 · 0 评论