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

来源:互联网 发布:会展场馆服务优化 编辑:程序博客网 时间:2024/06/04 17:45

栈:

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

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

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

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

 

堆:

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

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

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

boolean -> Boolean

char      -> Character

byte     -> Byte

short    -> Short

int        -> Interger

long     -> Long

float    -> Float

double -> Double

void    -> Void

原创粉丝点击