最近在很多的节目我一直在看,我注意到Java静态代码块
static {
//some code here
}
我只是在寻找一些有关此信息特别,我已经习惯了块代码全部在方法中,或者只是类,这是否简单地使用静态修饰符来设置块中的所有代码,还是还有其他更多的东西?
最近在很多的节目我一直在看,我注意到Java静态代码块
static {
//some code here
}
我只是在寻找一些有关此信息特别,我已经习惯了块代码全部在方法中,或者只是类,这是否简单地使用静态修饰符来设置块中的所有代码,还是还有其他更多的东西?
这可能是从 Static Initialization Blocks
重复的问题静态块只被调用一次,不管你创建该类型的多少对象。
JVM是否保证每个应用程序域只能执行一次静态块? – AlexVPerl
每次加载类时都会调用静态块。如果有多个加载类的类加载器,代码将被执行多次。 –
如果程序多次启动,静态块会被多次调用 –
一旦JVM加载您的类,就会首先执行静态块中的代码(例如,在您的构造函数之前)。
这段代码是不能从外部类访问的吗? – Dan
以下是来自Oracle的官方说明http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html –
静态块被调用一次(在类级别)并且不属于特定实例。
您可以在here或official oracle documentation中找到更多信息(带好例子)。
我想你可以认为它像一个构造函数,但对于类而言,不是类的任何实例。虽然我假设你可以有多个静态块,但是每个类只有一个构造函数。 –