哪些对象可用于GC



我正在编写程序,该程序应该针对堆和GC的使用进行优化。基于此,我需要创建尽可能少的对象。所以我想知道,如果我在一行中编写命令,这是否是GC的问题?

例如,此代码创建2个对象,这些对象可用于GC:

UUID uuid = UUID.randomUUID();
String s = uuid.toString();

如果我在一行中重写这个代码,比如:

String s = UUID.randomUUID().toString();

第二个变体还会为GC创建2个对象还是只创建String对象?

就GC(或Java的任何部分(而言,这两行之间没有任何区别。

需要担心堆的优化是非常不寻常的。你有一个程序已经工作了,占用了太多堆,还是做了太多GC?如果没有,不用担心。这是过早的优化,可能会使情况变得更糟。Java的GC非常非常擅长它的功能。如果您不确定这两行之间的区别,那么您应该相信Java会处理自己的内存使用。

相关内容

  • 没有找到相关文章