java中的6个数据存储区域和局域变量和成员变量进行比较所需要的存储区域

java中的6个数据存储区域和局域变量和成员变量进行比较所需要的存储区域,第1张

java中的6个数据存储区域和局域变量和成员变量进行比较所需要的存储区域 一. java中数据存储的6个区域

1.寄存器

寄存器是存储速度最快的区域,位于存储器内部,寄存位于处理器内部,寄存器又编译器进行分配不能用java代码控制。

2.栈

栈的存储速度仅次于寄存器,存放基础数据类型和引用数据类型的引用。但存储数据不够灵活,因为栈的数据有生存周期,方法消亡后,数据也跟着消亡。方法中局部变量存储在栈中,栈中的数据也不能被多线程共享。

3.堆

堆的存储速度没有栈快,存储的数据类型是new出来的对象,用于存放所有对象。但数据的存储灵活性高,因为编译器不需要知道分配多少空间,也不需要知道生存周期,所以相对灵活。成员变量存储在堆中。

4.常量

常量池用于存放字符串常量和基本数据类型常量。被public static final 所共同修饰的变量也是常量,String修饰的也是常量。

5.静态域

静态域在方法区中,包含整个程序中永远唯一的元素,被static修饰的变量。

6.非ram存储

非ram存储,不依赖程序也可以存活。如硬盘。

二.局域变量和成员变量进行比较所需要的存储空间

代码

public class Stackheap {
	 int a = 520;
	public static void main(String[] args) {
		Stackheap h = new Stackheap();
		h.f();
		
	}
	public void f() {
		int b=520;
		System.out.println(a==b);
	}
}

所以要的区域

 a和b比较的是常量值中的哈希码值,哈希码值为16进制,哈希码值一样则输出true。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3986911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存