JavaInterview JavaInterview
首页
指南
分类
标签
归档
  • CSDN (opens new window)
  • 文档集合 (opens new window)
  • 系统架构 (opens new window)
  • 微信号 (opens new window)
  • 公众号 (opens new window)

『Java面试+Java学习』
首页
指南
分类
标签
归档
  • CSDN (opens new window)
  • 文档集合 (opens new window)
  • 系统架构 (opens new window)
  • 微信号 (opens new window)
  • 公众号 (opens new window)
  • 指南
  • 简历

  • Java

  • 面试

    • 所有

    • 核心

    • 源码

    • 算法

    • 高频

      • 笔试基础题
      • MySQL各个版本区别
      • MySQL自身如何处理死锁
      • 为什么是先添加队列而不是先创建最大线程
      • 数据库常用的锁有哪些
      • 生产者和消费者5种实现方式
      • Redis内存管理的基石zmalloc
      • 如何动态修改线程池参数
      • 流量高峰时的性能瓶颈有哪些以及如何来解决
      • Java SPI与Dubbo SPI有什么区别
      • JVM运行时数据区(堆、栈、方法区)指向关系
        • 解答
      • Java new对象过程
      • 池化技术(线程池、连接池、内存池)
      • Spring的三级缓存解决循环依赖
      • K8S面试题大全
      • 服务治理、微服务与Service Mesh
      • SpringBoot自定义starter
      • 限流原理解析
      • Redis部署的三种模式(主从复制、哨兵、集群)
      • 敏感词过滤(DFA算法_Trie前缀树)
      • Java线程间通信方式
      • CPU占用过高排查
      • 线程死锁及解决方案
      • 分布式事务
      • 分布式锁
      • JVM调优
      • Synchronized锁升级(锁膨胀)
      • Paxos、Raft、ZAB协议
  • 算法

  • interview
  • hf
JavaInterview.cn
2022-10-16
目录

JVM运行时数据区(堆、栈、方法区)指向关系Java

文章发布较早,内容可能过时,阅读注意甄别。

# 解答

运行时数据区: 1.线程共享区:堆,方法区

堆:存放一切new出来的东西(java对象实例和数组)。

方法区:存放被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

2.线程独占区:栈、本地方法栈、程序计数器

栈:java线程的运行状态存储在栈中;每一个被执行的方法为栈中的栈帧。每个栈帧包括:局部变量表(方法中定义的变量及方法中的参数)、操作数栈(以压栈和出栈的方式存储操作数)、动态链接(每个栈帧中都包含一个指向运行时常量池中该栈帧所属方法的引用)、方法返回地址(当一个方法开始执行后只有两种方式可以退出,一遇到方法返回的字节码指令,二遇到异常且这个异常没有在方法中得到处理)。

程序计数器:记录线程执行到的位置。

本地方法栈:当线程执行的方法是native类型的,该方法就会在本地方法栈中执行。

1.栈指向堆:Object obj=new Object();因为new出来的一切都存放在堆中,而obj则是存放在栈中。

2.方法区指向堆:private static Object obj=new Object();因为方法区中存放常量、静态变量、虚拟机加载后的类信息等,所有obj是存放在方法区中,而new出来的一切都存放在堆中。

3.堆指向方法区:

微信 支付宝
Java SPI与Dubbo SPI有什么区别
Java new对象过程

← Java SPI与Dubbo SPI有什么区别 Java new对象过程→

最近更新
01
1637. 两点之间不包含任何点的最宽垂直区域 Java
06-26
02
1636. 按照频率将数组升序排序 Java
06-26
03
1638. 统计只差一个字符的子串数目 Java
06-26
更多文章>
Theme by Vdoing | Copyright © 2019-2025 JavaInterview.cn
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式