就是我在一个main()方法中多次调用一个类的静态成员如(static int a=5),是对同一块区域进行操作a的值会进行更改,但是当我在重新执行这个main()方法时,它又初始化为5,我想问问是为什么?与一个类的生命周期有关?

解决方案 »

  1.   

    是不是因为在每次调用main()方法时,都对类进行了初始化
      

  2.   

    凡是被static 修饰 那么在类加载的时候调用。
      

  3.   

    这你修改一次 然后把程序关闭 int a又回到了5 这个是肯定的啊   因为程序本身没有记录功能的哇
      

  4.   

    那你把什么定义为程序关闭列?是不是只有程序重新加载的时候才会再次初始化?呵呵那要是我把一个应用程序部署到客户端,程序里面有static变量,服务器重启后static变量不回到了原来的值?
      

  5.   

    static变量是在类加载是初始化,每次加载每次初始化
      

  6.   

    在Main里如果没有特殊的代码停止程序进程,比如说JOptionPane或者一个循环,程序会一行一行依次运行直到结束, 也就是一个System.exit(0).
    static变量在服务器重启的时候当然会被初始化。楼主难道想用static变量来作记录?