Java类加载过程中静态变量和变量的区别

来源:互联网 发布:获取mac的最高权限 编辑:程序博客网 时间:2024/06/03 16:11

        类加载过程分为五个步骤,加载、连接、初始化、使用、卸载,在连接阶段会对静态变量分配内存,并将其初始化为默认值(Java中为0),初始化阶段,如果对静态变量定义了初始值,则将默认值改为初始值。故当我们用静态变量时,只需要声明了静态变量,如果不对它进行初始化也可以直接用(比如输出System.out.println()),但变量就不行,没有进行初始化不能用。

      public class Main {
      static int p;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
               System.out.println(p);       

     }

      结果输出:0

     public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
               int q;
              System.out.println(q); 

    }

    结果输出:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The local variable q may not have been initialized(没有初始化)

0 0
原创粉丝点击