我创建了一个非常简单的应用程序来请求项目,工具和什么不是。我使用数据库来保存所有这些信息。我的请购经理类使用getter,它使用数据库中的信息返回请购单的新实例。这个新对象会永远存在于堆栈中吗?我怎么强迫它收集?我怎样才能做到这一点,比如如何在不创建新对象的情况下编写函数?
public static Requisition getRequisition(int id) {
//logic for getting the correct id and so forth
return new Requisition(id, /*logic for name*/, /*logic for price and other fields*/);
}
答案 0 :(得分:1)
除非已将此视为性能问题,否则我不会担心。 java垃圾收集器在你清理后非常有效。
java中的对象永远不会存储在堆栈中,只能存储在堆中。 引用可以放在堆栈上,当它们超出范围时它们就会消失。 在最后一次引用它之后,创建的对象将在第一个集合过程中被垃圾收集。
如果没有看到这个功能,以及当前如何实现它,很难建议如何改进它。然而,作为第一个想法,可以使用单个对象并让getter更新其值。虽然这可能会导致其他地方出现问题,但如果假定对象在获取后没有改变。