当前位置: 首页 > news >正文

3.JVM-内部结构

1.栈结构

1.1 动态链接

栈中的对象指向堆中的实际引用

符号引用: 比如一个类的名称

直接引用: 具体堆中数据信息

1.2 方法返回

栈中上一层的结果和下一层的指令

1.3 操作数栈

1.4 局部变量

该线程中需要的变量

2. 虚拟机栈是如何工作

程序计数器:存当前执行到那一步

操作数栈里面将计算完之后的结果推入局部变量表

编译好的字节码文件,程序计数器表示当前执行到第几补,先将数据存入虚拟机栈,计算后,将结果存入局部变量表

3. 本地方法

底层实现的方法,C++写的方法,好多方法是基于操作系统实现的.

线程启动方法.Thread.run();

默认先将线程初始化成 “INITIALIZED” 状态,

死循环等待父线程给他改变状态,然后执行

4. 直接内存

直接内存是系统中内存的区域,执行速度非常快

5. 方法区

5.1 方法区的内部结构

简单一行HelloWorld,加载几百上千个方法,因为他也会执行比如扩展类加载器.系统类加载器等,所有的类都是放到方法区中.

PermGen space :永久代(JDK7)之前的空间

Metaspace:元空间(直接使用的本地内存

5.2 为什么使用本地内存

5.3 方法区的内部结构

5.3.1 类型信息

5.3.2 域信息

下面是域信息,其中static的值存在方法区中,在类加载 (加载->链接->初始化)链接的准备阶段赋值,如果是正常的就在初始化时赋值.

5.3.3方法

5.3.4 常量池

相关文章:

  • 批量删除 Excel 表格中的重复行
  • Python 进程与线程-分布式进程
  • MC34063数据手册解读:功能、应用与设计指南
  • Flutter Dart 运算符全面解析
  • ⭐算法OJ⭐汉明距离【位操作】(C++ 实现)Hamming Distance
  • 如何解决Redis的缓存雪崩、缓存击穿、缓存穿透?
  • 前端UI编程基础知识:基础三要素(结构→表现→行为)
  • CNN-BiLSTM、BiLSTM、CNN多变量时间序列光伏功率预测Matlab
  • SpringCloud一些基础概念(自用扫盲)
  • Pytest自动化测试框架pytest-xdist分布式测试插件
  • 医院HIS系统的安全解决方案
  • 医药制造行业现状 医药制造行业内检实验室LIMS
  • 蓝桥杯备考:set容器用法(lower_bound)---营业额统计
  • 30、Vuex 为啥可以进行缓存处理
  • ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数)
  • 二进制求和(js实现,LeetCode:67)
  • 如何在宝塔mysql修改掉3306端口
  • 数据库系统概念全面解析
  • 【从零开始学习计算机科学】数据库系统(五)DBMS查询处理
  • 高德爬取瓦片和vue2使用
  • 外交部部长助理兼礼宾司司长洪磊接受美国新任驻华大使递交国书副本
  • 李成钢:近期个别经济体实施所谓“对等关税”,严重违反世贸组织规则
  • 云南德宏州盈江县发生4.5级地震,震源深度10千米
  • 涉案资金超2亿元 “健康投资”骗局,专挑老年人下手
  • 梅花奖在上海|舞剧《朱鹮》,剧里剧外都是生命的赞歌
  • 长三角首次,在铁三赛事中感受竞技与生态的共鸣