随笔分类 -  JVM

4.9本地方法接口
摘要:4.9本地方法接口 一个Native Method就是一个java调用非java代码的接口,一个Native Method是这样一个java方法:该方法的实现由非java语言实现,比如C。这个特征并非java所持有,很多其他的编程语言都有这一机制,比如在c中,你可以用extern "C"告知c编译其
40
0
0
4.10本地方法栈
摘要:4.10本地方法栈 Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的) 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个StackOve
38
0
0
4.7方法返回地址与一些附加信息
摘要:4.7方法返回地址 存放调用该方法的pc寄存器的值。 一个方法的结束有两种方式: 正常执行完成 出现未处理的异常,非正常退出。 无论通过哪种方式退出,在方法退出后都返回到该方法被调用的位置。**方法正常退出时,调用者的pc计数器的值作为返回地址,即调用该方法的指令的下一条指令的地址。**而通过异常退
117
0
0
4.6方法的调用
摘要:4.6方法的调用 静态链接与动态链接 在JVM中,将符号引用转换为调用方法的直接引用与方法的绑定机制相关。 静态链接: 当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译期可知,且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接。 动态链接: 如果被调
66
0
0
4.5动态链接
摘要:4.5动态链接 每一个栈帧内部都包含一个指向运行时常量池中该栈帧所属方法的引用。包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。比如:invokedynamic指令。 在Java源文件被编译到字节码文件中时,所有的变量和方法引用都作为符号引用(Symb
53
0
0
4.4操作数栈
摘要:4.4操作数栈 每一个独立的栈帧中除了包含局部变量表之外,还包含一个后进先出(Last-In-First-Out)的操作数栈,也可以称之为表达式栈(Expression Stack)。 操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或提取数据,即入栈(push)/出栈(pop)。 某些字
173
0
0
4.3局部变量表
摘要:4.3局部变量表 局部变量表也称为局部变量数组或本地变量表 定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量,这些数据类型包括各类基本数据类型、对象引用(reference),以及returnAddress类型。 由于局部变量表是建立在线程的栈上,是线程的私有数据,因此不存在数据安
344
0
0
4.2虚拟机栈
摘要:4.2虚拟机栈 4.2.1概述 概念: java虚拟机栈(Java Virtual Machine Stack),早期也叫Java栈。每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的Java方法调用。是线程私有的。 生命周期: 生命周期和线程一致
53
0
0
4.1程序计数器(PC寄存器)
摘要:4.运行时数据区 4.1程序计数器(PC寄存器) 作用:PC寄存器用来存储指向下一条指令的地址,即将要执行的指令代码。由执行引擎读取下一条指令。 它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域。 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命
647
0
0
2.类加载器分类及双亲委派机制
摘要:2.类加载器分类 JVM支持两种类型的类加载器,分别是引导类加载器Bootstrap ClassLoader和自定义类加载器User-Defined ClassLoader。 从概念上来讲,自定义类加载器一般指的是程序中开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派
69
0
0
1.类加载器
摘要:来源:此系列章节内容来源尚硅谷康师傅出品,b站视频直通车请点击👉:https://www.bilibili.com/video/BV1PJ411n7xZ?p=1 后续章节不再声明出处。 1.类加载器 1.1类加载器作用 定义:类加载器会根据指定class文件的全限定名称,将其加载到JVM内存,转为
96
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起