Java声明持久化静态变量

时间:2018-02-28 10:12:59

标签: java static

我有一个课程,我需要在其中创建一个独特的计数器,类似于:

public class Foo {
    private static int FOO_COUNT = 0

    public static getNextCount(){
        return ++FOO_COUNT;
    }
    //... more methods...
}

计数器值必须在Java VM重新启动,应用程序重新部署等之间保持持久性,以便在整个应用程序生命周期中提供连续计数器。

如何(以及如果)可以实现(最好不使用DB或类似的持久性机制)?

1 个答案:

答案 0 :(得分:2)

您需要序列化您的对象,然后您可以将其保存在这样的位置,例如:

  import java.io.*;
    public class SerializeDemo {

       public static void main(String [] args) {
          private static int FOO_COUNT = 0;

          try {
             FileOutputStream fileOut =
             new FileOutputStream("/tmp/save.ser");
             ObjectOutputStream out = new ObjectOutputStream(fileOut);
             out.writeObject(FOO_COUNT);
             out.close();
             fileOut.close();
             System.out.printf("Serialized data is saved in /tmp/save.ser");
          } catch (IOException i) {
             i.printStackTrace();
          }
       }
    }


    public class Foo  implements java.io.Serializable  {
        private static int FOO_COUNT = 0

        public static getNextCount(){
            return ++FOO_COUNT;
        }
        //... more methods...
    }