1 寄存器(register):位于处理器内部,最快的存取区
2 栈(stack):位于RAM中,这是一种快速有效的分配存储方法,仅次于寄存器,对象引用存储在栈中
创建程序时候,JAVA编译器必须知道存储在堆栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,以便上下移动堆栈指针。
3 堆(heap):位于RAM中,存放所有new出来的java对象,
堆不同于栈的好处是:编译器不需要知道要从堆里分配多少存储区域,也不必知道存储的数据在堆里存活多长时间,用堆进行存储分配比用堆栈进行存储存储需要更多的时间。
4 静态存储区(static storage):又叫方法区,包含的都是在整个程序中永远唯一的元素,如class,static变量。仅用static修饰的成员变量存放在静态存储区中,但java对象本身不存放在静态存储区。而static final修饰的是一个成员变量,这个变量放在常量存储区中。
5 常量存储区(constant storage):常量值通常直接存放在程序代码内部
声明为final static的为常量,可以保存在常量储存区,还有String类型的对象都是常量,系统维护了一个String常量池。 String类型是final修饰的,无法被继承。
6 非RAM存储区: 非RAM存储器,主要就是磁带,磁盘等等。
此存储方式的技巧在于: 把对象转化为可以存放在任何其它媒介的事物上,在需要时,恢复为常规的、基于RAM的对象。
java六大存储区域
最新推荐文章于 2022-08-17 20:00:16 发布