![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java虚拟机
纯白色de情调
这个作者很懒,什么都没留下…
展开
-
第三章 垃圾的回收与内存的分配
3.1 概述 java的优势在哪?当然是对内存回收(GC)和内存分配了。省了程序猿很多时间。 既然java这么方便为什么我们还要去了解GC和内存分配呢?当需要排查内存溢出、内存泄漏、当垃圾回收成为系统达到更高并发量的瓶颈时。 java内存内存运行区域中,程...原创 2019-05-01 13:23:42 · 156 阅读 · 0 评论 -
第六章 类文件结构
6.2 无关性的基石 java虚拟机不喝包括java在内的任务语言绑定,他只与“Class文件”这种特定的二进制文件格式有关联。基于安全性java虚拟机规范要求在Class文件中使用许多强制性的语言和结构化约束。 任何一门语言只要按照Java虚拟机规范生成Class文件,那么这个文件就能被Java虚拟机执行。 6.3 class类文件的结构 任何一个Class文件都对应这唯...原创 2019-05-01 13:23:33 · 212 阅读 · 0 评论 -
第七章 虚拟机类加载机制
7.1 概述 虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以在虚拟机中直接使用的java类型,这就是虚拟机的加载机制。 在java语言中,类型的加载、连接和初始化过程都在程序运行期间完成,虽然会令类加载时间稍微增加一些性能开销。但是这样能提高更多的灵活性。(Applet、jsp、OSGi都使用了这种特性) 7.2类加载的时机 ...原创 2019-04-27 15:50:39 · 108 阅读 · 0 评论 -
第九章 类加载及执行子系统的案例与实战
9.1 概述 能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能。 9.2 案例分析 9.2.1 Tomcat:正统的类加载器架构 主流的 Java Web 服务器,如 Tomcat、Jetty、WebLogic、WebSphere 或其他笔者没有列举的服务器,都实现了自己定义的类加载器(一般都不止一个)。因为一个功能健全的 Web 服务器,要解决如下几个问题: 部署...原创 2019-05-08 20:00:29 · 191 阅读 · 0 评论 -
第八章 虚拟机字节码执行引擎
8.1 概述 执行引擎是java虚拟机最核心的组件之一。即输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 8.2 运行时栈帧结构 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,他是虚拟机运行时数据区中虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。在编译过程中栈帧需要多大的局部变量表,多...原创 2019-05-01 13:22:02 · 136 阅读 · 0 评论 -
第十张 早期(编译期)优化
JVM的编译器可以分为三个编译器: 前端编译器:把*.java转变为*.class的过程。如Sun的Javac、Eclipse JDT中的增量式编译器(ECJ) JIT编译器:把字节码转变为机器码的过程,如HotSpot VM的C1、C2编译器 AOT编译器:静态提前编译器,直接将*.java文件编译本地机器代码的过程 本章的后续文字里,“编译期”和“编译器”都仅限于第一类编译...原创 2019-05-19 21:16:22 · 172 阅读 · 0 评论