深入理解JVM
MoForest
这个作者很懒,什么都没留下…
展开
-
深入理解JVM虚拟机——6. 类文件结构
6.1 概述我们的计算机至今仍然只能认识0和1,所以那些老式的语言例如c/c++,编写的程序直接编译成本地机器码(Native Code),但是最近十年,虚拟机发展的越来越好,所以很多的程序语言选择与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。6.2 无关性的基石Java刚诞生时的口号是一次编写,到处运行,而与平台无关最终实现在了操作系统的应用层上:各种平台上...原创 2018-12-20 09:05:33 · 307 阅读 · 0 评论 -
深入理解JVM虚拟机——7.虚拟机类加载机制
7.1 概述本章讲解虚拟机如何加载class文件以及class文件进入虚拟机后会发生什么变化。虚拟机把描述类的数据从class文件加载到内存,并对数据校验、转换解析和初始化,最终成为虚拟机可以使用的Java类型。而这些工作不需要进行连接,直接在运行时完成,这种方式灵活性强但会增加性能开销。7.2 类加载的时机类从被加载到虚拟机内存开始到卸载出内存的生命周期有七个阶段。加载(Loa...原创 2018-12-20 22:23:23 · 239 阅读 · 0 评论 -
深入理解JVM虚拟机——1.走进java
Java技术体系广义上讲,运行于Java虚拟机上的所有程序以及语言都属于Java技术体系sun官方传统定义如下Java程序设计语言各种硬件平台上的Java虚拟机Calss 格式文件JavaApi类库JDK: 语言、虚拟机和Api类库统称为JDK(Java Development Kit)JRE: Api类库中JavaSE子集和Java虚拟机称为JRE(Java Runt...原创 2018-12-17 19:39:42 · 212 阅读 · 0 评论 -
深入理解JVM虚拟机——2. Java内存区域与内存溢出异常
2.1 概述对于c/c++程序员来说,每一个new操作后面要配对delete/free操作来释放内存,很繁琐。而Java将内存控制权交给了Java虚拟机,使得程序员不需要去关心内存的内在机制,而知专注于代码本身。而这一章将介绍虚拟机是如何使用内存的。2.2 运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区 域。方法区堆虚拟机...原创 2018-12-17 19:40:19 · 222 阅读 · 0 评论 -
深入理解JVM虚拟机——3. 垃圾回收器与内存分配策略
3.1 概述垃圾收集(Garbage Collection GC),GC的历史比Java还要久远,1960年诞生于MIT的Lisp是第一门使用内存动态分配和垃圾收集技术的语言。而垃圾回收需要考虑三件事情。哪些内存需要回收什么时候回收如何回收Java内存的各个区域中,程序计数器,虚拟机栈,本地方法栈都是线程私有的,也就是随线程诞生或死亡,这三个区域基本在编译期就可以确定。栈帧随方法...原创 2018-12-17 19:40:58 · 230 阅读 · 0 评论 -
深入理解JVM虚拟机——4. 虚拟机性能监控与故障处理工具
4.1 概述给一个系统定位问题时,知识,经验是关键基础,数据是依据数据包括:运行日志、异常堆栈、GC日志、线程快照、堆转储快照等。4.2 JDK的命令行工具本章将介绍bin目录下工具的一部分,主要包括用于监视虚拟机和处理的工具。4.2.1 jps:虚拟机进程状况工具jps(JVM Process Status Tool)可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名...原创 2018-12-17 19:41:31 · 244 阅读 · 0 评论 -
深入理解JVM虚拟机——8. 虚拟机字节码执行引擎
8.1 概述执行引擎是Java虚拟机用来执行字节码的,也是这章所讲内容,物理机的执行引擎是直接建立在物理资源层面上的,而虚拟机的执行引擎是自己实现的。8.2 运行时栈帧结构栈帧(Stack Frame) 是用于方法调用和执行的数据结构,它是运行时数据区的虚拟机栈的栈元素。栈帧存储了方法的各种信息。每一个方法从调用到执行完成都对应一个栈帧在虚拟机入栈出栈的过程。对于执行引擎来说,只有位于...原创 2018-12-23 11:22:08 · 442 阅读 · 0 评论 -
深入理解JVM虚拟机——5. 调优实战——idea调优
序书上给了一个Eclipse 的调优例子,最后调优将启动时间降了一倍左右,但是自己用的是idea,所以就想模仿例子将自己的idea也进行调优,而idea启动是很慢的,所以调优一下也是很有必要。调优前idea版本信息IntelliJ IDEA 2018.1.5JRE: 1.8.0_152-release-1136-b39 amd64JVM: OpenJDK 64-Bit Serve...原创 2018-12-18 15:54:14 · 961 阅读 · 0 评论