类的生命周期

原创
2015/05/11 22:43
阅读数 20

类的生命周期:加载-->链接-->初始化-->使用-->卸载

 

Singleton.java

public class Singleton{

    public static int i;    

    private static Singleton instance = new Singleton();    

    public static int j = 0; 
  

    private Singleton(){

        i++;

        j++;

        System.out.println("constructor");

    }    

    public static void sayHi(){

        System.out.println("invoke static method");

    }

}

Client.java

public class Client{

    public static void main(String[] args){

        Singleton.sayHi();

        System.out.println("i="+Singleton.i);

        System.out.println("j="+Singleton.j);

    }

}

输出:

constructor
invoke static method
i=1  
j=0

看完上段代码后, 一定很奇怪,j为什么是0,而不是1。 其实就在于

private static Singleton instance = new Singleton();    

这一句。类加载时,会为每个静态变量赋默认值,而初始化时是 用户自定义的值,而且顺序是从上到下,从左往右。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部