解释Java中内存中的栈(stack)、堆(heap)和静态存储区的用法
2017-06-22 11:45
435 查看
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。栈空间操作最快但是也很小,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当成堆空间来使用。
String str = new String(“hello”);
上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。
补充:较新版本的Java中使用了一项叫“逃逸分析“的技术,可以将一些局部对象放在栈上以提升对象的操作性能。
String str = new String(“hello”);
上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。
补充:较新版本的Java中使用了一项叫“逃逸分析“的技术,可以将一些局部对象放在栈上以提升对象的操作性能。
相关文章推荐
- Java - 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法
- 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法
- 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
- 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
- java中的Stack和Queue之间用法解释,还有heap
- 解释内存中的栈、堆和静态存储区的用法?
- 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
- Java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
- 【转】 Java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
- java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
- 关于java内存使用的相关问题(寄存器、栈、堆、静态存储、常理存储、非RAM存储)
- JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)
- Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)
- Java中内存中的Heap(堆)、Stack(栈)与程序运行的关系
- Java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
- java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)
- Java_内存分区堆(heap) 栈(stack)和方法区(method)
- java虚拟机内存的堆区(heap),栈区(stack)和静态区(static/method)
- java内存解析-------stack(栈)和heap(堆)的理解
- Java中内存中的Heap、Stack与程序运行的关系