关于JAVA Static的初始化顺序(及递归错误)
来源:互联网 发布:python实现二叉树 编辑:程序博客网 时间:2024/05/18 01:37
package com.cisco.learning;
class ClassOne{
//去掉static将产生StackOverflowError
//因为有了静态修饰,导致不会第二次初始化。
private static ClassOne classOne=new ClassOne();
ClassOne(){
System.out.println("ClassOne Constructor");
}
}
class ClassTwo{
private static int i=getMethod();
private static int getMethod() {
// TODO Auto-generated method stub
System.out.println("ClassTwo static");
return 0;
}
}
public class CopyOfTestStatic {
/**
* @param args
*/
public static void main(String[] args) {
new ClassOne();
System.out.println("________");
new ClassOne();
}
//没有打印ClassTwo static,说明没有创建对象时(或访问静态域),不会初始化静态成员
/*//
* ClassOne Constructor
ClassOne Constructor
说明先初始化了静态域,而且以后不再初始化,所以不会产生递规StackOverflowError。
________
ClassOne Constructor*/
}
package com.cisco.learning;
import java.util.Calendar;
public class Elvis {
private static final int i=10;
public static final Elvis INSTANCE = new Elvis();
private final int beltSize;
private static final int CURRENT_YEAR = Calendar.getInstance().get(
Calendar.YEAR);
private Elvis() {
System.out.println(i);
beltSize = CURRENT_YEAR - 1930;
}
public int beltSize() {
return beltSize;
}
/* 10
Elvis wears a size -1930 belt.
说明,当访问静态域或者NEW()时,Class的静态部分就开始初始化;*/
public static void main(String[] args) {
System.out.println("Elvis wears a size " + INSTANCE.beltSize()
+ " belt.");
}
}
- 关于JAVA Static的初始化顺序(及递归错误)
- static 及java初始化顺序
- java static初始化顺序
- Java中static变量的初始化顺序
- static的初始化顺序
- 关于java的初始化顺序
- 有static初始化顺序(静态数据的初始化 )
- 关于java的初始化顺序的问题
- Java static变量初始化顺序引发的bug
- 关于java初始化顺序的一个示例
- 关于Java中初始化顺序的问题
- Java关于继承的详细初始化顺序
- 关于java类初始化的顺序
- 关于JAVA类的初始化顺序
- 关于Java类内的初始化顺序
- Java初始化顺序,静态变量,static块,实例变量,构造器的初始化顺序
- Java类及对象初始化的顺序
- java 类及子类的初始化顺序
- Android 程序自动更新
- Android动画及图片的缩放和旋转
- 未能从程序 集'Microsoft.VisualStudio.DataDesign.SyncDesigner.DslPackage,Version=9.0.0.0,Culture=neutral
- JS MVC 用例子来说明他的好处
- ASP.NET连接数据库并获取数据
- 关于JAVA Static的初始化顺序(及递归错误)
- 经典面试之n线分割最多面与n面分割最多空间
- android EditText限制输入长度
- 如何获取系统的应用程序的相关信息
- SQL养成一个好习惯是一笔财富
- 用ViewFlipper和GestureDetector实现手势翻页的效果
- Java代码查错题
- 华为如何通过ACL访问控制列表限制上网
- 二分法HDU2199