栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基本数据类型一定存储在栈上么?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基本数据类型一定存储在栈上么?

基本数据类型一定存储在栈上么? 一、java中八大基本数据类型?
简单类型二进制位数封装类型
boolean1Boolean
short16Short
int32Integer
long64Long
float32Float
double64Double
char16Character
byte8Byte
二、成员变量和局部变量的存放位置
  • 成员变量:在类中但在方法外的变量,随类的消亡而消亡,所以成员变量存放在堆中。
    在类中声明的成员变量可以是基本类型,也可以是引用类型。
    –基本类型:变量名和对象都放在堆中;
    –引用类型:变量名(存放内存地址值,指向所引用的地址)和值都放在堆中。
class Solution{
	//a放在堆中,a中存放地址值,指向“abc”,“abc”放入堆中
	String a = "abc";
	//同理,b和1都放在堆中
	int b = 1;
}
  • 局部变量:在方法中的变量,当调用方法时,会在java占中生成栈帧,局部变量就存放在方法栈中,当方法调用结束就会释放该栈帧,所以局部变量随栈帧的销毁而结束,这就是局部变量只能在方法中有效的原因。
    在方法中声明的变量可以时基本类型的变量,也可以是引用类型的变量。
    —基本类型:变量名和值都放在栈中;
    —引用类型:变量名(存放内存地址值,指向所引用的对象)放在栈中,该变量所指向的对象放在堆中。
class Solution{
	public void Test(){
		//a放在栈中,"abc"放在堆中
		String a = "abc";
		//b和1都放在栈中
		int b = 1;
	}
}
四、总结

Java的基本数据类型不一定存放在栈中,局部变量的基本类型存放在栈中,引用类型的变量名存放在栈中,但是变量名所指向的对象(基本数据类型)存放在堆中。而成员变量,不管是基本类型还是引用类型,变量名和对象都放在堆中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298266.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号