bmw*_*128 3 java memory object
哪个更适合内存管理或任何其他原因,或者这两个场景是相同的:
Calendar currentDateTime = Calendar.getInstance();
int i= foo.getSomething(currentDateTime);
Bar bar= foo.getBar(currentDateTime);
Run Code Online (Sandbox Code Playgroud)
另一个代码块:
int i= foo.getSomething(Calendar.getInstance());
Bar bar= foo.getBar(Calendar.getInstance());
Run Code Online (Sandbox Code Playgroud)
一般的问题是,获取对象的实例更好,然后在需要时使用该实例,或者在每次需要时进行getInstance()调用.并且,如果不处理单身人士,但是制作一个简单的POJO,答案会改变吗?
要明确的是,日历实际上并不是单身人士.Calendar.getInstance()每次调用它时都会返回一个新对象.
这意味着您的问题的答案取决于函数getSomething()和getBar()是否具有导致foo存储新Calendar实例的副作用.一般而言,良好的编程习惯要求不会出现这种情况.
编辑:但是,每次调用Calendar.getInstance()时,最终可能会有不同的日期.这可能是一个重要的细节,具体取决于您的功能.
编辑2:它还取决于您执行上述过程的频率.正如另一个答案所指出的,实例化Calendar对象可能非常密集.如果你只做两次,那么缓存它并不重要.如果您经常这样做,那么您可以考虑改变您的方法或进行一些缓存.