JVM_03 运行时数据区 [ 程序计数器+本地方法栈 ]
一、 程序计数器
①. 作用,是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令
②. 特点:①. 是线程私有的 ②. 不会存在内存溢出
③. 注意:在物理上实现程序计数器是在寄存器实现的,整个cpu中最快的一个执行单元
④. 它是唯一一个在java虚拟机规范中没有OOM的区域
解释:
⑤. 使用PC寄存器存储字节码指令地址有什么用呢?
为什么使用PC寄存器记录当前线程的执行地址呢?
⑥. PC寄存器为什么设定为线程私有?
(为了能够准确记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器)
⑦. 关于线程在JVM中的说明:
- 1.在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射 解释:当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建.Java线程执行终 止后,本地线程也会被回收
- 2.操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化完毕,它就会调 用Java线程中的run方法
二.、本地方法栈
Native Interface本地接口
本地方法栈(Native Method Stack)
(它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库)native方法的举例: Object类中的clone wait notify hashCode 等 Unsafe类都是native方法
JVM_03 运行时数据区 [ 程序计数器+本地方法栈 ]相关推荐
- JVM Runtime Data Area(运行时数据区中的堆/栈/方法区讲解)
JVM的组成 JVM由4大部分组成:ClassLoader .Runtime Data Area .Execution Engine .Native Interface.我们这里重点讲得是Runtim ...
- Java #JVM(HotSpot) 运行时数据区 #程序计数器(PC寄存器)#虚拟机栈(栈帧:局部变量表、操作数栈……)#堆……
目录 JVM中线程的说明 程序计数器(PC寄存器) 虚拟机栈 · 栈帧 ·· 局部变量表 ·· 操作数栈 ·· 动态链接 ·· 方法返回地址 ·· 本地方法栈 堆 · 查看堆的大小 · 堆的默认大小 ...
- java 线程栈大小配置,JVM运行时数据区详解-Stack栈(优化配置、代码样例)
最近有段时间没有更新Netty的教程了,却发了一些其他的东西.可能有的朋友会问,难道这就完事了?不会的.两方面原因.第一.笔者也是需要工作的人,自然要完成好工作中的任务,这里面也有很多东西需要学习和研 ...
- JVM_03 运行时数据区 [ 虚拟机栈 ]
一.前言 (栈并不是越大越好,越多可以防止出现StackOverflowError晚点出现,但是栈越大,也就代表着虚拟机栈是一定的,你的栈越大,别的栈就会小) 二. 什么是 Java virtual ...
- JVM_03 运行时数据区 [ 方法区]
一.方法区的概述 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间和Java堆区一样都可以是不连续的 | 关闭Jvm就会释放这个区域的内存 方法区时逻辑上是堆的一个组成部分,但是在不同虚拟机 ...
- JVM_03 运行时数据区[ 堆 ]
一.堆的概述 堆的概述(共享|垃圾回收) ①. 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域 ②. Java堆区在JVM启动的时候即被创建,其空间大小也是确定的.是Jvm管理最大的 ...
- JVM之运行时数据区(方法区)
文章目录 1. 堆.栈.方法区的交互关系 2. 方法区的理解 3.设置方法区大小与OOM 方法区OOM 4.方法区的内部结构 类型信息 域信息(成员变量) 方法信息 non-final的类变量 运行时 ...
- JVM运行时数据区分析
#1.概述 整个JVM构成⾥⾯,由三部分组成:类加载器机制.运⾏时数据区.执⾏引擎. #2.JVM运行时数据区的规范 我们来聊聊这个规范怎么理解,目前运行数据区共分为了方法区.堆.虚拟机栈.本地方法栈 ...
- Java8 JVM运行时数据区概述 (极其详细长文)
文章目录 运行时数据区概述 JVM中的线程说明 PC寄存器(PC Register) PC寄存器介绍 使用举例 问题:使用PC寄存器存储字节码指令地址有什么用?为什么使用PC寄存器存储? 问题:为什么 ...
最新文章
- HttpURLConnection获取页面源代码乱码问题
- Android ProgressBar 不能在Button上面显示
- Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
- c语言静态成员变量重名会怎么样,C++中静态成员函数与静态成员变量(static )...
- 求数列1/3到1/n之和
- vlan划分不能上网_VLAN工作原理
- vue中根据搜索内容跳转到页面指定位置
- sql ddl中key_SQL DDL:SQL Server中SQL DDL命令入门
- 数据库系统概论-第一章绪论
- Flightgear 编译
- 电商直播运营的思路流程
- Packet Tracer 思科模拟器入门教程 实验报告1
- python中def main是什么意思_Python main()函数解析
- 开发脚手架与自动化构建
- 百度云搜索引擎森林战士_002 找到你要的资料——百度网盘使用指南
- css3的clip-path方法裁切图片(三角形,多边形,圆,椭圆)
- 生物信息学测序之常见测序方法DNA文库构建
- 计算机视觉领域的发展趋势
- 强化学习蒙特卡洛3.4 | Every-visit 和 First-visit MC
- Semantic Segmentation--SegNet:A Deep Convolutional Encoder-Decoder Architecture..论文解读