java - 如果只在对象初始化时分配内存,类成员变量(实例变量)如何初始化?

标签 java class oop

众所周知,一个类可以拥有只能通过 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/

相关文章:

r - 如何从 R 工作区中删除所有自定义方法和类?

c++ - 无法从类型 'Class::operator==' bool 转换为 'bool (Class::)(Class*) to type '

c++ - 引用不能为 NULL 或者它可以为 NULL?

c++ - 返回对对象构造函数的引用

java - 存储 Java UI 应用程序配置/设置的最佳实践

java - 如何上传Java JNLP文件到服务器?

c++ - 类构造函数中的模板和使用(#define)

php - 如何在 PHP5 中构建多 oop 函数

java - Spring:将值作为对象形式映射并传递给 Controller ​​以进行查看

java - 使用 Hibernate Search 对短语进行模糊搜索