Roh*_*wal 8 java memory heap stack
如果您运行以下代码会发生什么?
while (true) {
String x = new String("ABC");
}
Run Code Online (Sandbox Code Playgroud)
在记忆方面?
字符串x是在堆栈上还是在堆上分配的?由于内存溢出,程序最终会崩溃,还是垃圾收集会阻止它?new关键字是否始终在堆上创建对象?何时在堆栈上创建对象?
谢谢!
字符串x是在堆栈上还是在堆上分配的?
x不是String.它是对a的引用String.引用是一个局部变量,因此在堆栈上.这String是一个对象,所以在堆上.
由于内存溢出,程序最终会崩溃吗?
可能不是.
或垃圾收集会阻止吗?
这应该.
new关键字是否始终在堆上创建对象?
是.
何时在堆栈上创建对象?
从不...除非JVM决定它无法逃避当前范围,因此决定这样做.
| 归档时间: |
|
| 查看次数: |
1580 次 |
| 最近记录: |