现在的位置: 首页 > 综合 > 正文

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

2014年01月11日 ⁄ 综合 ⁄ 共 394字 ⁄ 字号 评论关闭

栈:

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

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

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

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

 

堆:

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

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

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

boolean -> Boolean

char      -> Character

byte     -> Byte

short    -> Short

int        -> Interger

long     -> Long

float    -> Float

double -> Double

void    -> Void

抱歉!评论已关闭.