首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >JVM运行时的数据区,静态变量,成员变量,类变量

JVM运行时的数据区,静态变量,成员变量,类变量

作者头像
名字是乱打的
发布2022-05-13 12:47:58
发布2022-05-13 12:47:58
1.7K0
举报
文章被收录于专栏:软件工程软件工程
首先JVM数据区

image.png

各个数据区存放的内容
  • 栈:指的是虚拟机栈,存放局部变量,基本数据类型(boolean、byte、char、short、int、float、long、double),对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。方法执行完,自动释放。
  • 堆:存放对象实例和数组
  • 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码和编译加载的数据等。运行时常量池是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。
  • 程序计数器是一块比较下的内存空间,主要村放代码执行的位置。分支、循环、跳转、异常处理、线程恢复等基础功能都需要一来这个计数器来完成。
  • 本地方法栈(Native Stack):存储本地方方法的调用状态。
局部变量和成员变量的区别

①声明的位置 局部变量:方法体们中,形参,代码块们中 成员变量:类中方法外 - 类变量:有static修饰 - 实例变量:没有static修饰 ②可用的修饰符 局部变量:final 成员变量:public、protected、private、final、static、volatile、transient ③值存储的位置 局部变量:栈 实例变量:堆 类变量:方法区。 ④作用域 局部变量:从声明处开始,到所属的]结束口实例变量:在当前类中“this.”(有时this.可以缺省),在其他类中“对象名.”访问 类变量:在当前类中“类名.”(有时类名.可以省略),在其他类中“类名.” 或“对象名.”访问 ⑤生命周期 局部变量:每一个线程,每一次调用执行都是新的生命周期口 实例变量:随着对象的创建而初始化,随着对象的被回收而消亡,每一个对象的实例变量是独立的 类变量:随着类的初始化而初始化,随着类的卸载而消亡,该类的所有对象的类变量是共享的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 首先JVM数据区
    • 各个数据区存放的内容
  • 局部变量和成员变量的区别
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档