2015-09-26 62 views
1
class Testing{ 

    static int count = 0; 
    public Testing(){ 
     count++; 
    } 
    public static void main(String[] args){ 
     Testing[] testObjects= new Testing[20]; 
     for(int i = 1; i<20;i++){ 
      if(Testing.count==5){ 
       System.out.println("5 objects are created.. Can't create anymore, although 20 objects can be stored"); 
       System.exit(0); 
      } 
      else{ 
        testObjects[i] = new Testing(); 
        System.out.println("Object "+Testing.count+" is created."); 
      } 
     } // for loop close 
     System.out.println("Program will exit"); 
    } 
} 

我曾尝试这个代码,但它仅保留一个运行的信息,我需要跟踪多个执行我们如何检查一个java程序以前执行过多少次?

+0

后retireve它创建一个循环,让你的程序运行多次。如果程序实际上结束了(进程终止),除非您通过文件或类似方式将其写入驱动器,否则无法存储该信息。这就是为什么你必须通过循环模拟程序重启,并考虑每个循环迭代1执行。 –

+0

你想要算什么?有多少人已经初始化? – Michael

+2

你想追踪什么?一旦程序运行完毕,内存就不足了,内部的任何东西都没有了。您需要一些持久机制(保存日志文件,序列化您关心的对象等) – paisanco

回答

0

你必须要坚持的的值,例如到文件中。

3

声明countstatic将该变量不是绑定到类实例,而是绑定到类本身。因此,所有对象共享一个count变量。您设置代码的方式(在每个构造函数调用中增加count)跟踪在此程序的整个生存期内创建了多少个Testing对象。如果你想坚持数据,你需要看看Preferences这个类。从本质上讲,在程序结束时,你就会把价值入库:

myPreferences.put("ObjectsCreated", Testing.count); 

然后用

int previous = myPreferences.getInt("ObjectsCreated", 0); 
相关问题