第一:考虑是不是多个对象来操作同一个变量。比如一个对象个数记录器。
第二:因为static变量是一直存在在内存中的。如果一个对象需要频繁建立,则就可以考虑在这个类的变量使用static关键字。因为这样在频繁建立对象时,实际上其变量就不必频繁建立了。
举例1:在单例类中,就没必要因为第二个原因而定义static了。因为完全没有必要。为什么呢?因为单例类对象始终只有一个不可能频繁建立这样单例类的对象。
举例2:比如数据库操作类,可能多个线程都会建立一个数据库操作类对象。应该不要用单例类,因为多线程操作一个对象时,可能会出现不可预料的并发问题,还不如什么时候使用就新建立一个对象,因为每个对象对应一段内存,所以当然不会冲突。至于多个对象可能操作同一个数据库,这个系统在这方面应该做了并发处理。所以不必考虑。。