如果我创建一个静态块并在那里创建一个Object,比如说其他一些类,那么该对象是在堆上还是在堆栈上创建的?
class Hello {
static {
Abc abcObject=new Abc();
}
// Other Code...
}
答案 0 :(得分:7)
无论静态(或)非静态,对象始终在堆上。
引用将在堆栈上。
答案 1 :(得分:4)
对象是在堆中创建的,但对象的引用位于堆栈中。
您创建的变量abcObject
位于堆栈中。它包含堆中存储new Abc()
对象的内存地址。