我需要在模拟循环中经常调用具有多种方法的类的方法。
其中一些方法需要访问临时对象以在其中存储信息。离开该方法后,不再需要存储的数据。例如:
Class class {
method1() {
...
SomeObject temp = new SomeObject();
...
}
method2() {
...
SomeObject temp = new SomeObject();
SomeObject temp2 = new SomeObject();
...
}
}
我需要尽可能优化。最昂贵(可移除)的问题是发生了太多的分配。我认为最好不要每次都为这些对象分配所需的空间,所以我想保留它们。
以静态方式存储它们会更有效吗?像:
Class class {
private (static?) SomeObject temp;
private (static?) SomeObject temp2;
methods...
}
还是有更好的方法?感谢您的帮助!
根据答案进行编辑: 实际问题不是内存占用,而是垃圾收集清理混乱。SomeObject 是一个类似 Point2D 的类,没有什么昂贵的内存(在我看来)。我不确定使用(最终是静态的)类级别对象作为占位符还是我不知道的一些更高级的方法是否更好。