Java 实际上,始终在构造函数内部实例化是否更有效?或者在需要它的方法内部实例化?

Java 实际上,始终在构造函数内部实例化是否更有效?或者在需要它的方法内部实例化?,java,methods,constructor,instantiation,Java,Methods,Constructor,Instantiation,例如,假设我有 Random random = new Random(); 在构造函数内部。它似乎更适合依赖于它的方法(可能是随机数生成器方法) 但假设同一方法每次都必须清除数组列表,以便在每次调用时输出随机数。在方法的开头插入一个.clear()调用是否更好?或者从构造函数中删除数组列表的实例化并将其插入此方法?记住。尽可能严密地审视事物。这里衡量效率不是正确的标准。考虑可读性、局部性、将相关代码保持在一起、分离关注点等。clear()-O(n)。垃圾收集器使用O(1)将其移除。因此,如果您

例如,假设我有

Random random = new Random();
在构造函数内部。它似乎更适合依赖于它的方法(可能是随机数生成器方法)


但假设同一方法每次都必须清除数组列表,以便在每次调用时输出随机数。在方法的开头插入一个
.clear()
调用是否更好?或者从构造函数中删除数组列表的实例化并将其插入此方法?

记住。尽可能严密地审视事物。这里衡量效率不是正确的标准。考虑可读性、局部性、将相关代码保持在一起、分离关注点等。
clear()
-O(n)。垃圾收集器使用O(1)将其移除。因此,如果您不需要保留您的收集,请不要保留它并安装一个新的。顺便说一句,垃圾收集器将删除每个“已清除”的对象,因此您在尝试管理此类内存时,最好依赖javausage@azurefrog我喜欢你的回答,有时把整个节目想象成一个整体让我感到困惑。非常有帮助!