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

编程入门 行业动态 更新时间:2024-10-28 09:17:49

成员<a href=https://www.elefans.com/category/jswz/34/1771380.html style=变量、静态成员变量、局部变量、常量的内存区域"/>

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

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

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

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

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

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

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

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

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

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

写的非常不错的文章

更多推荐

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

本文发布于:2023-12-03 13:37:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1655943.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   成员   常量   静态   局部

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!