有关于在Java 类的静态初始化块中创建一个自身实例的问题。
2005-12-12 07:44
851 查看
有关于在Java 类的静态初始化块中创建一个自身实例的问题。
class a{
static {...} //1
static {...} //2
static {new a()} //3
static {...} //4
}
这会造成什么样的静态初始化块执行顺序那?4是否应该在3之前执行那?
这个问题在JVM的规范中有说明,对应这里的解释就是
线程在3部分要初始化a时会发现当前线程正在初始化这个类,所以他认为这是一次递归的请求,他会放弃第二次初始化请求,然后执行构造器创建a,再继续执行当前的类的初始化,这里可能出现变量异常的吧?
估计是这样的
class a{
static {...} //1
static {...} //2
static {new a()} //3
static {...} //4
}
这会造成什么样的静态初始化块执行顺序那?4是否应该在3之前执行那?
这个问题在JVM的规范中有说明,对应这里的解释就是
线程在3部分要初始化a时会发现当前线程正在初始化这个类,所以他认为这是一次递归的请求,他会放弃第二次初始化请求,然后执行构造器创建a,再继续执行当前的类的初始化,这里可能出现变量异常的吧?
估计是这样的
相关文章推荐
- 一个关于Java JFrame 无法初始化组件问题
- 关于String s1 = new String("abc") 创建一个对象问题和Java常量池总结
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- 《Applications=Code+Markup》读书札记(2)——创建一个简单的 WPF 程序的代码结构及关于 Window 实例位置设置问题
- 关于如何初始化一个类内的静态二维数组变量问题
- 展讯的一道笔试Java题(关于静态初始化问题)
- 关于用java创建一个.properties文件,程序结果为空的问题
- 一个关于java初始化的问题
- java类中创建一个自身的静态对象,如何理解不会无限创建导致堆溢出
- 关于JAVA中变量的初始化及类属性的默认值问题
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- 一个关于创建非模态对话框的问题
- Java和guava关于hashmap在初始化的时候最好给个初始容量,避免扩容引起性能问题的探究。
- 关于海量数据TopK问题的一个具体实现(java)
- java 父类子类静态成员,实例成员,构造函数初始化的顺序
- 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题
- Java IO学习【2】一个关于换行、续写的的小问题
- 只实例化一个静态实例,避免重复创建实例
- JAVA中关于主方法调用非静态方法的问题
- 关于Java包导入的一个奇怪问题(www.sunxin.org)