众所周知,一个类可以拥有只能通过 new classname() 获取内存的对象。 那么如何为类的实例分配一些值。
class Work{
public int a = 55;
}
class DoStuff{
public static void main(String[] args){
Work obj = new Work(); // intialises variable now
System.out.println(obj.a) // a already has value 55
}
}
最佳答案
Java中初始化 block 和构造函数的执行顺序
- 每当类首次在 JVM 中加载时,静态初始化 block 就会运行
- 初始化 block 按照它们在程序中出现的顺序运行。
- 每当类初始化且调用构造函数之前,都会执行实例初始化 block 。它们通常放置在构造函数上方的大括号内。
https://www.geeksforgeeks.org/order-execution-initialization-blocks-constructors-java/
因此,在您的情况下, public int a = 55;
在 Work
类的构造函数之前调用。
JVM首先为对象预留内存,然后开始初始化所有对象属性。
关于java - 如果只在对象初始化时分配内存,类成员变量(实例变量)如何初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57774612/