从c++到java 之六 (堆和栈)

栈:

只能存储知道确切大小和生命周期的数据,因为编译器需要生成相应的代码以准确的移动栈指针。

也因此,java对象不会放在栈上。

分配内存和释放内存是通过上下移动栈指针完成的,这种方法的效率仅仅次于寄存器。

没有办法可以在栈上面创建非主类型的对象,这是和c++不同的。

 

堆:

在堆上为数据分配空间很灵活,因为不需要数据的确切大小以及生命期,但是效率较栈分配要低,方法和c++是一样的,用new。

不属于主类型的对象,都是通过new命令创建在堆上的。

如果想把主类型的对象放到堆上,可以通过new <主类型的封装器>来实现。

boolean -> Boolean

char      -> Character

byte     -> Byte

short    -> Short

int        -> Interger

long     -> Long

float    -> Float

double -> Double

void    -> Void

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值