
——【深入java虚拟机JVM】
文章平均质量分 62
深入理解java虚拟机篇
白衣染霜陈
你只管努力,剩下的交给时光。
展开
-
深入理解JVM10
1.程序计数器 当前线程所执行的字节码的行号指示器。通过改变计数器的值选取下一条指令。 分之,循环,跳转,异常处理,线程回复都依赖程序计数器完成。 多线程轮流切换分配处理器执行时间,在一个确定的时间,一个处理器(多核处理器的一个内核)只会执行一个线程的一条指令。 为了线程切换后能够恢复到正常的位置,每个线程都有独立的程序计数器,各条线程计数器互不影响,独立存储,我们称这类内...原创 2020-02-28 12:39:52 · 347 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-9、指令
字节码指令Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。操作码的长度为1个字节,因此最大只有256条,是基于栈的指令集架构。字节码与数据类型在Java虚拟机的指令集中,大多数的指令都包含了其操作所对应的数据类型信息。iload中的i表示的是int。i代表对int类...原创 2020-01-28 20:31:19 · 281 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-8、虚拟机字节码执行引擎
八、虚拟机字节码执行引擎你只管努力,——剩下的交给时光。老规矩,先上图,大致了解一下:一. 概述执行引擎是 Java 虚拟机最核心的组成部分之一。“虚拟机” 是一个相对于 “物理机” 的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体...原创 2019-12-30 14:48:08 · 304 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-7、虚拟机类加载机制★
你只管努力,——剩下的交给时光。在Java语言中,类型的加载、连接和初始化都是在程序运行期间完成的。我们写的java文件是不能直接运行的,可以在IDE中右键文件名点击运行,这中间其实掺杂了一系列的复杂处理过程。这篇文章,我们只讨论我们的代码在运行之前的一个环节,叫做类的加载机制。按照我写文章的常规惯例,不废话,先上图:需要JVM完成导图的童鞋评论区留下邮件—当日发送。...原创 2019-12-23 00:14:01 · 346 阅读 · 1 评论 -
【深入理解JVM】学习笔记——-6、类文件结构
你只管努力,——剩下的交给时光。1.概述write one, run everywhere。2. 无关性的基石实现语言无关性的基础是虚拟机和字节码存储格式。Java虚拟机不和任何语言绑定,它只与"class文件"这种特定的二进制文件格式所关联。如下图所示:Java虚拟机提供的语言无关性3.Class类文件的结构任何一个Class文件都对应着唯一一个类或接口...原创 2019-12-13 17:47:12 · 267 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-5、调优案例分析与实战
你只管努力,——剩下的交给时光。一、案例1.高性能硬件上的程序部署策略2.集群间同步导致的内存溢出3.堆外内存导致的溢出错误4.外部命令导致系统缓慢5.服务器JVM进程崩溃6.不恰当数据结构导致内存占用过大7.由Windows虚拟内存导致的长时间停顿二、调优(Eclipse运行速度调优)1.调优前的程序运行状态2.升级JDK的性能变化...原创 2019-12-09 21:13:57 · 210 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-4、虚拟机性能监控与故障处理
你只管努力,——剩下的交给时光。老规矩先上图:一、JDK命令行工具:(基于Windows)我们安装完成JDK后都会cmd /java javac java - version。是不是Java开发人员肯定都知道JDK的bin目录中的“java.exe”、“javac.exe”这两个命令行工具,对并非所有程序员都了解JDK的bin目录之中其他命令行程序的作用。每逢JDK更...原创 2019-12-09 21:03:43 · 223 阅读 · 0 评论 -
【关于基础】——-1、玩好JDK,面试不用愁。(附JAVA知识体系图)
一日,LZ在群里发话,“招人啦。” 然某群友曰,“群主,俺想去。” LZ回之,“你年几何?” 群友曰,“两年也。” LZ憾言之,“惜了,三至五为佳。然如汝有扎实之基础,且附一技之长,倒也并非不可呀。” 群友惑,问之,“何为一技之长?” LZ抚须答曰,“皆可,吾之一技即为写。” 群友又问之,“何为基础扎实?” LZ抚**答曰,“玩好JDK!” ...原创 2017-02-01 23:44:32 · 7130 阅读 · 6 评论 -
【深入理解JVM】学习笔记——-3、垃圾收集器和内存分配策略
你只管努力,——剩下的交给时光。首先我们带着问题来学习Q1:哪些内存需要回收?Q2:什么时候回收?Q3:如何回收?上一章我们说到JAVA内存运行时的各个部分,其实程序计数器、虚拟机栈、本地方法栈3个区域随线程而生随线程而灭。本章主要讨论的内存分配与回收指的就是这一部分的内存。JAVA虚拟机的GC是自动回收内存,为什么我们还要去了解GC和内存分配?答案很简单:因为我们...原创 2019-11-21 00:45:45 · 245 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-2、自动内存管理机制
第二部分 自动内存管理机制二、内存区域和内存溢出异常1、运行时数据区 程序计数器记录的是正在执行的虚拟机字节码指令的地址,是一块较小的内存空间,可以看成是当前线程所执行的字节码的行号指示器,每个线程都有一个独立的程序计数器,各条线程的程序计数器互不影响,独立存储,这类内存区域成为“线程私有的内存”。 程序计数器内存区域是唯一在虚拟机规范中没有OutOfMemoryError的...原创 2019-11-19 21:35:05 · 293 阅读 · 0 评论 -
jdk与jre的区别
首先笔者想阐明的是:JDK和JRE没想象中的那么简单。相信大家都知道JDK和JRE是什么,但是具体干什么用不妨先试问下自己,如果能说出个所以然来,那么这篇文章大神请自觉忽略,呵呵,或者可以温故一下。如果有哪里说的不对的地方还望指出,谢谢。下面来简单说明下先上张图,宏观的看一下从图中可以看出JDK包含JRE包含JVM...JDK:java developmen...原创 2017-03-14 13:12:38 · 80679 阅读 · 16 评论 -
【深入理解JVM】学习笔记——-1、走进JAVA
1、走进JAVA引申出JVM(可略)这一部分博主建议可以直接省略或者泛读,感兴趣的童鞋可以选择精读。主要介绍JAVA的前世今生。第一部分 走进Java一、走进Java1、概述 java广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想,感兴趣的童鞋可以思考下为什么JAVA可以这么吹?我想答案你已了然于胸。...原创 2019-11-18 20:52:40 · 221 阅读 · 0 评论 -
【死磕JVM】——-2、Java代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成的,流程图如下:Java字节码的执行是由JVM执行引擎来完成的,流程图如下:Java代码编译和执行的整个过程包含以下三个重要机制:1.Java代码编译机制。2.类加载机制。3.类执行机制。Java源码编译机制Java源码编译机制由以下三个过程组成:1.分析和输入到符号表。2.注解处理。3.语义分析和原创 2017-02-13 23:10:03 · 1209 阅读 · 0 评论 -
【深入理解JVM】学习笔记——-1、JVM基本结构
主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信。当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多。在你看完本节之后,后续我们还会来学jvm的细节,但是如果你在学习完本节的前提下去学习,再学习其他jvm的转载 2017-02-08 01:17:03 · 2700 阅读 · 2 评论 -
【死磕JVM】——-1、JVM基本结构附思维导图
JVM基本结构从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰的看到Java平台所包含的各个逻辑模块,也可以了解到JDK与JRE的区别。对于JVM自身的物理结构,我们可以从下图鸟瞅一下:对于Java的学习,个人认为这几个部分最重要:1.Java代码编译和执行的整个过程。2.JVM内存管理及垃圾回收机制。...原创 2017-02-12 22:59:52 · 928 阅读 · 0 评论