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

成员变量、静态成员变量、局部变量、常量的内存区域

一、Java中没有全局变量的概念,变量分为类的成员变量、静态成员变量和方法中的局部变量

1、局部变量,基本类型的局部变量变量名和值都存放在虚拟机栈中,引用类型的局部变量变量名存放在栈中,而变量指向的对象存放在堆中。记也很好记,因为局部变量属于方法里面的,而方法都是在栈里面。

2、成员变量:不论基本类型还是引用类型,变量名和值都随着类的实例(对象)而创建,所以存放在堆中。记也很好记,成员变量一定要有类的实例对象,类的实例对象肯定是在堆里面。

3、类的静态变量,它比较特殊,是属于类的变量,在jdk7及之前的版本,随类存放在方法区中。在jdk8之后,由于虚拟机内存结构的变化,静态变量和常量池一起被迁移到了堆中。因为静态变量是随着类加载一起加载,因为类是在方法区加载的,所以1.7是存在方法区。

二、常量有三种类型:静态常量、成员常量和局部常量
其实也就是被Final修饰的变量,分为常量名,常量值

1、局部常量:
2、成员常量:常量存放在常量池中,而常量池在堆内存中(1.7方法区,1.8堆)
3、静态成员常量:存放在全局数据区内存中-堆中

三、基本类型、引用类型、包装类型

Java提供了两个类型系统,基本类型与引用类型 (包装类是一种引用类型,而基本数据类型是一种值类型),使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类。

Java中每一种基本类型都会对应一个唯一的包装类,基本类型与其包装类都可以通过包装类中的方法进行转换。每种基本类型及其包装类的对应关系如下,值得注意的是,所有的包装类都是final修饰的,也就是它们都是无法被继承和重写的。

写的非常不错的文章


http://www.kler.cn/a/104562.html

相关文章:

  • 浙大陈越何钦铭数据结构06-图1 列出连通集
  • Wt库的C++下载器程序
  • ITSS信息技术服务运行维护标准符合性证书申请详解及流程
  • 开放式激光振镜运动控制器在动力电池模组连接片的焊接应用
  • 【Linux】gdb调试
  • 压缩Ubuntu虚拟机大小
  • HarmonyOS 快速入门TypeScript
  • 德语中第二虚拟式在主动态的形式,柯桥哪里可以学德语
  • 云服务器搭建Hadoop分布式
  • 16、window11+visual studio 2022+cuda+ffmpeg进行拉流和解码(RTX3050)
  • Windows下Eclipse C/C++开发环境配置教程
  • FLStudio2024最新破解版注册机
  • logback.xml配置详解
  • 51单片机实现换能器超声波测水深
  • Tomcat调试端口被占用解决办法
  • 对电磁兼容(EMC)的故障分析和判断方法简述
  • C#演示单例模式
  • Spring Boot和XXL-Job:高效定时任务管理
  • 腾讯云 AI 绘画:文生图、图生图、图审图 快速入门
  • 使用Unity旧版本使用hotReload在开始的时候提示 PlayerSettings.suppressCommonWarnings; 找不到