当前位置: 首页 > 面试题库 >

Java中的静态块

华景明
2023-03-14
问题内容

前几天,我在查看一些代码,然后发现:

static {
    ...
}

来自C ++,我不知道为什么会这样。它不是错误,因为代码编译良好。这个“静态”代码块是什么?


问题答案:

这是一个静态初始化器。它是在加载类时执行的(确切地说是初始化,但通常不会注意到它们之间的区别)。

可以将其视为“类构造函数”。

请注意,还有一些实例初始化器,它们看起来一样,只是它们没有static关键字。当创建对象的新实例时,除了构造函数中的代码外,还会运行这些代码。



 类似资料:
  • 问题内容: 有什么像在Java中吗? 这样的课是什么意思。静态类的所有方法都需要吗? 是否需要反过来,如果一个类包含所有静态方法,那么该类也应该是静态的吗? 静态类有什么用? 问题答案: Java具有静态嵌套类,但听起来你正在寻找顶级静态类。Java无法将顶级类设为静态,但是你可以像这样模拟静态类: 声明你的课程-阻止扩展课程,因为扩展静态课程没有意义 创建构造函数-防止通过客户端代码实例化,因为

  • 静态类有什么好处?

  • 问题内容: 静态导入是什么意思,例如: 如何定义这样的软件包?使用静态导入有什么优势? 问题答案: 表示您可以引用静态值而无需使用类名。 例如,考虑以下三个类:

  • 问题内容: 根据Java,静态变量可以通过类名访问,但是即使Java不建议使用静态变量,类对象也可以访问它们,并且给出相同的答案。 我知道该变量只有一个副本,并且所有对象和其他事物的值都相同。Java为什么建议使用类名而不是类对象? 问题答案: 因为可能会造成混淆!静态成员上没有动态调度。 看一下这个令人困惑的代码:(可能是语法错误;我的Java生锈了) 看起来很混乱,因为方法似乎是多态的,所以输

  • 我有以下代码: 当我尝试编译它时,会出现以下错误: 因此,我尝试使dbConnect静态如下:

  • 问题内容: 尝试在静态类中调用非静态方法时遇到错误。 无法从类型播放中静态引用非静态方法methodName() 我不能使该方法静态,因为这也给我一个错误。 此静态方法无法从xInterface隐藏实例方法 有什么办法可以在另一个静态方法中轮回调用非静态方法?(这两种方法位于单独的包和单独的类中)。 问题答案: 从静态方法中调用非静态方法的唯一方法是使类的实例包含非静态方法。根据定义,非静态方法是