Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.7k views
in Technique[技术] by (71.8m points)

java - Is this a valid way to count instances of objects?

Is this a valid way to count instances of objects? Or should I not override finalize?

public class MyClass{
    private int instances;
   public MyClass(){
       instances++;
   }    
   @Override
   public void finalize(){
       instances--;
   }
   public static int getInstances(){
       return instances;
   }
}

The solution doesn't have to be Thread safe

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Mark instancesas static volatile. And secondly, never override the finalize method. Also, in the code AS-IS, note that you can't access to instances variable in your public static int getInstances method.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...