Omu*_*Omu 6 java static-initializer
有人可以解释一下以下是什么吗?
public class Stuff
{
static
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch ( ClassNotFoundException exception )
{
log.error( "ClassNotFoundException " + exception.getMessage( ) );
}
...
}
Run Code Online (Sandbox Code Playgroud)
这静态{...}做了什么?
我知道来自C++的静态变量,但这是一个静态块还是什么?
什么时候这个东西会被执行?
小智 8
静态初始化程序块的主要用途是执行各种初始化,这些初始化可能不适合构造函数,因此构造函数和初始化程序将新创建的对象放在一个完全一致的状态下使用.
例如,与构造函数不同,静态初始值设定项不会被继承,并且只在JRE加载和初始化类时才执行一次.在上面的示例中,一旦初始化完成,类变量foo将具有值998877.
另请注意,静态初始化程序按它们在源文件中以文本方式显示的顺序执行.此外,对于其中一个块内部无法执行的操作存在许多限制,例如不使用已检查的异常,不使用return语句或this和super关键字.
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |