-
栈
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间,栈空间操作最快但是也很小。 -
堆
而通过new关键字和构造器创建的对象放在堆空间,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当成堆空间来使用。 -
静态存储区
程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。
- 补充:较新版本的Java中使用了一项叫“逃逸分析“的技术,可以将一些局部对象放在栈上以提升对象的操作性能。
栈
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间,栈空间操作最快但是也很小。
堆
而通过new关键字和构造器创建的对象放在堆空间,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当成堆空间来使用。
静态存储区
程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。