内存中的对象是在静态块中创建的对象吗?

时间:2012-09-04 15:25:16

标签: java object stack heap static-block

如果我创建一个静态块并在那里创建一个Object,比如说其他一些类,那么该对象是在堆上还是在堆栈上创建的?

class Hello {
   static {
       Abc abcObject=new Abc();
   }
   // Other Code...
} 

2 个答案:

答案 0 :(得分:7)

无论静态(或)非静态,对象始终在堆上。

引用将在堆栈上。

答案 1 :(得分:4)

对象是在堆中创建的,但对象的引用位于堆栈中。

您创建的变量abcObject位于堆栈中。它包含堆中存储new Abc()对象的内存地址。