一、一切皆对象

2021-01-12  本文已影响0人  flyjar

一、一切皆对象

1.存储到什么地方

1.1

​ 寄存器。这是最快的存储区,因为它位于不同于其他门存储区的地方--处理器内部。但是寄存器的数量及其有限,所以这个地方不由程序员掌控,而且无法感知到它。

1.2

​ 栈。位于通用RAM(随机访问存储器)中,栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。

​ 栈中主要存放一些基本类型的变量数据(int, short, long, byte, float, double, boolean, char)和对象句柄(引用)。存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而转是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)。

​ 局部变量的数据存在于栈内存中。

​ 栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。堆中的对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定。

上一篇下一篇

猜你喜欢

热点阅读