程序执行过程中堆内存的简单分析

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="张三";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值