Java堆、栈

1、堆栈(栈):通过堆栈指针从处理器那里获得直接支持,通过堆栈指针向下移动,分配新的内存;堆栈指针向上移动,释放内存。

注意:需要明确知道确定的声明周期

存储:引用

2、堆:一种通用的内存池,不需要存储的数据再堆里的存活时间,new一个对象,具有很大的灵活性

注意:进行分配和清理需要更多的时间

存储:对象实例

3、基本类型,new将对象存储再“堆”中,因此new创建一个很小的变量,往往不是很有效。不用new创建变量,而是创建一个并非是引用的“自动”变量,这个变量直接存储“值”,位于“栈”中

注意:Java要确定每种基本类型所占存储空间的大小,不是像大多数语言那样随着机器硬件架构的变化而变化。这种所占存储大小的不变性是Java程序比用其他大多数语言编写的程序更具有可移植性的原因之一。


你可能感兴趣的:(Java堆、栈)