疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java学习静态使用认识


 

   

  在类中使用该类不变的几个参数,因为考虑到该类可能产生多个实例,为了节省内存而使用了静态常量和静态块来对该静态常量进行初始化:

  public class test {

  // 需要设置权限按钮的函数列表

  final static List methodsList = new ArrayList();

  // 初始化需要设置按钮权限的函数列表

  static {

  // 获取处理流程页面

  methodsList.add(new String("AssignedDetail"));

  // 修改

  methodsList.add(new String("forupdate"));

  methodsList.add(new String("update"));

  // 分配

  methodsList.add(new String("getAssignedJsp"));

  methodsList.add(new String("updateassigned"));

  // 处理

  methodsList.add(new String("fordeal"));

  methodsList.add(new String("deal"));

  // 解决

  methodsList.add(new String("resolved"));

  // 关闭

  methodsList.add(new String("getClosedJsp"));

  methodsList.add(new String("closedForAppraisalAndinsertKn"));

  methodsList.add(new String("closedAndinsertKn"));

  methodsList.add(new String("closed"));

  // 升级

  methodsList.add(new String("escalateToManager"));

  }

  }

  这样使用有可能造成该变量或者成员常驻内存,不如使用非静态的,这样JAVA的垃圾回收器会随时回收使用过的内存,声明成静态的,就不能释放了。静态变量在类加载时初始化,在JVM停止时才释放,不过如果是一些简单的东西,放进去也没什么问题,如果是大量的对象就可以了。如果时刻都有好多该类的实例产生,那就定义为静态,所有实例都共享这些参数,系统只为这些参数分配一块内存。如果该类的实例很少,就没必要定义成静态,系统可以随时回收资源,省得这些静态参数占内存不被回收。

  就这么几个数据对于现在的机器来说,根本不算什么。如果这个类的很多实例不是同时存在的。那么非静态变量就可以了。毕竟这个实例用完后,会回收曾被占用的内存。如果你用非静态变量存储,那么就不要用静态块去加载了。