Java中的实例变量与方法变量的内存利用率

时间:2017-02-20 13:03:45

标签: java

以下两个实现(HashMap对象位置已更改),哪一个占用较少的内存,以及何时释放内存?

Add /xyz.rpm /xyz.rpm

RUN rpm -i xyz.rpm

由于

1 个答案:

答案 0 :(得分:1)

使用的内存大致相同(如果您的应用程序和一个线程中只有一个ValidateA实例,则完全相同。)

auditData引用本身的内存将被释放:

  • ValidateA中,当ValidateA实例本身符合垃圾回收条件时)
  • ValidateB中,在方法的最后

HashMap实例的内存将在不再从任何地方引用时释放(符合GC条件) - 假设您没有其他参考地图除了auditData

  • ValidateA中,当您设置auditData = null时,再次运行该方法(覆盖之前的auditData),或ValidateA实例本身符合GC的条件时
  • ValidateB中,在方法的最后