它们用于两个非常不同的目的:
- 静态初始化程序块将在加载类时被调用,并且将无法访问实例变量或方法。根据@Prahalad Deshpande的评论,它通常用于创建静态变量。
- 另一方面,非静态初始化程序块仅在对象构造上创建,可以访问实例变量和方法,并且(根据@EJP建议的重要更正)将在构造函数的开头,在调用任何其他后续构造函数代码 之前, 已(显式或隐式)调用了超级构造函数。我已经看到当一个类具有多个构造函数并且需要为所有构造函数调用相同的初始化代码时使用它。与构造函数一样,您应该避免在此块中调用非最终方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)