1 JVM简介 VM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽 ...
分类:
其他好文 时间:
2017-11-29 19:57:20
阅读次数:
214
Java虚拟机内存的各个区域 分别来说一下这些区域的作用、服务对象以及其中可能产生的问题。(图片引自网络) 1.程序计数器 程序计数器是一块很小的内存,可以看做是当前线程所执行的字节码的行号指示器。字节码解释器的作用就是通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处 ...
分类:
编程语言 时间:
2017-11-28 19:48:06
阅读次数:
119
java类加载机制 类的生命周期 类的生命周期包括7个阶段:加载 、验证、准备、解析、初始化、使用和卸载 类的初始化场景 遇到指定的字节码指令的时候,4种指定的字节码 ,new、putstatic、getstatic和invokestatic 子类初始化过程中,如果父类没有初始化的情况下,会触发父类 ...
分类:
编程语言 时间:
2017-11-27 11:12:31
阅读次数:
139
1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。 代码执行时发生异常。 jvm在处理浮点数时,生成的是ddiv字节码指令,i/0,0转化为浮点数0.0,而0.0是double类型的,并不精确,所以不会抛出异常。 jvm在处理整 ...
分类:
其他好文 时间:
2017-11-17 00:17:37
阅读次数:
222
一、虚拟机字节码执行引擎概述 虚拟机字节码执行引擎主要就是研究字节码指令具体怎样被执行。对于物理机器,指令的执行是直接建立在OS和硬件的基础上 对于字节码指令的执行就是直接建立在JVM上,然后通过JVM完成具体的字节码指令到机器指令的过程。一般来说虚拟机的执行的 字节码指令是基于栈的不是采用寄存器, ...
分类:
其他好文 时间:
2017-11-11 18:46:04
阅读次数:
176
一、内存结构图 程序计数器 保存着当前线程执行的虚拟机字节码指令的内存地址,使得保证线程切换回来后,还能恢复到原先状态。(本地native丰富则计数器为空) 虚拟机栈(JVM栈) 每创建一个线程时就会对应创建一个Java栈,所以Java栈也是"线程私有"的内存区域,这个栈中又会对应包含多个栈帧,每调 ...
分类:
编程语言 时间:
2017-11-10 12:51:07
阅读次数:
166
java三大流:数据流、控制流、指令流 线程是执行程序的最小单元,一个线程中也有这些东西。 java 运行时数据区: 1.程序计数器 指向当前线程正在执行的字节码指令地址。如果此时从一个线程转为执行另一个线程,此时就会中断, 当重新执行该线程后,就通过读取该计数器获得接下来执行的地址来执行。 2.虚 ...
分类:
其他好文 时间:
2017-10-24 22:41:59
阅读次数:
159
引言 执行引擎在执行Java代码时可能会有解释执行(解释器执行)和编译执行(JIT产生本地代码执行)。 运行时栈帧结构 栈帧存储了局部变量表、操作数栈、动态链接、方法返回地址。执行引擎运行的所有字节码指令都只针对虚拟机栈顶的栈帧而言。 局部变量表 局部变量表(Local Variable Table ...
分类:
其他好文 时间:
2017-10-18 14:53:26
阅读次数:
206
一、JVM体系结构 想要了解运行时数据区,先关注一下JVM的体系结构,知道数据区在JVM的整体位置和作用。 二、JVM运行时数据区 1.程序计数器 一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变该计数器的值来选择下一条需要执行的字节码指令,分支、跳转、循环等基 ...
分类:
编程语言 时间:
2017-10-14 22:33:52
阅读次数:
216
【转】JVM介绍 1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一 ...
分类:
其他好文 时间:
2017-10-10 10:04:15
阅读次数:
164