JAVA变量在内存中的分配

变量是程序中最基本的存储单元,从本质上讲,变量其实是内存中的一小块区域。所以要为其分配一定的存储空间。

变量的类型

按数据类型:

  1. 基本数据类型
  2. 引用数据类型

按声明的位置:

  1. 局部变量
  2. 成员变量

程序在计算机内存的分布:


JAVA变量在内存中的分配_第1张图片

栈区:

        由编译器自动分配释放,主要存放Java程序运行时所需的局部变量、方法的参数、对象的引用以及中间运算结果 等数据。其操 作方式类似于数据结构的栈。

堆区:

        不是系统为程序自动分配的,是程序执行过程中有new语句为变量分配的,主要存放Java程序运行时创建的所有 引用类型,即使指向堆空间的指针变量消失,new语句分配的空间也不会消失。它与数据结构中的堆不一样,但分配 方式类似于链表。

代码区:

        主要存放Java的代码,程序结束由系统释放。

数据区:

        主要存放静态变量及全局变量,程序结束由系统释放。
结合实例来看:
public class Test{
	
	public static void main(String args[]){
		
		Test test = new Test();
		int Date = 9;
		BirthDate d1 = new BirthDate(7,7,1970)
	}
}


JAVA变量在内存中的分配_第2张图片

总结:

        之前我们在讲设计模式的讲过这方面的内容,但是当时不是怎么理解,现在正好看J2SE,而且C++程序设计中也 有讲过,现在将他们结合起来,简单理解一下,再重新听视频的讲解,简单多了,所以知识是再不断的重复中学习 的。

你可能感兴趣的:(JAVA变量在内存中的分配)