Java内存管理

Java的内存管理有内存分配与内存回收,Java中内存分配与回收完全用虚拟机自动实现。

 

内存分为:栈,堆,代码区,静态变量存储区。

 

栈:存放局部变量,引用对象,形参(形参是一种特殊的局部变量)。例如,定义局部变量int i=20; 那么i分配在栈中,栈中的内容用完后立即释放,所以速度较快,注意一点,基本数据类型不一定分配在栈中。


堆:存放new出来的对象,堆里面的内容用完后不会立即释放空间。


代码区:主要存放代码。


静态变量存储区:存放字符串,static变量。

 


下面我们来解释语句:House h=new House()

 

根据上面所描述,可以知道h存在于栈中,而House()存在于堆中,对应如图所示:

 

 

h存放的是对象的地址,注意这里不是真正的地址,而是假地址,局部变量在使用前必须明确初始化,成员变量可以不需要,因为成员变量有默认初始值。

 

另外,Java不能像C语言那么直接操作内存,所以Java的安全性很好。

 

Java中函数参数变量有基本数据类型变量和引用类型变量,基本数据类型变量传递的是具体的值,而引用类型的变量传递的是对象的地址。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值