JAVA语言中除基本类型之外的变量类型,都称之为引用类型。
JAVA中对象是通过引用reference对其操作的。
新建对象时,引用类型的数据都是null,基本数据类型 int 是 0 string 是null boolean 是false (默认初始化)
方法:参数传递的值是 值传递。
局部变量 必须初始化,成员变量会被系统默认初始化。
栈:自动分配连续的空间,后进先出,一般用来放置局部变量,数据使用完毕之后,会自动释放
堆:不连续,用来放置 new出来的对象,堆中的数据都会有默认初始化值。引用类型的数据都是null,基本数据类型 int 是 0 string 是null boolean 是false (默认初始化)
方法区:属于堆的一部分,存放类的信息(代码)、static变量、常量池(字符串常量)等
解析:
1、主函数中定义一个 int x=3;
主函数加载时,主函数就在内存中的栈中 开辟一个空间,此空间中就会定义一个变量 ,并且赋值为3.
2、主函数中创建一个 int[] x=new int[3];
左边 int[] x,在栈内存中定义了一个变量 x,
new int[3],在堆内存中开辟了一个空间,每个在堆内存中存在的数据都会有一个地址值。
= 时,就将x的引用指向了new 对象在堆内存中的地址值。
注:操作对象就是操作地址。
例子:
//通过类加载器 Class LOader加载Student类,加载后,在方法区中就有了Student中的类的信息
Student s1=new Student();
s1.name="张三";
程序执行过程中堆内存的简单分析
最新推荐文章于 2023-04-05 20:03:15 发布