[code="java"]
package org.exmaple;
import java.util.HashMap;
import java.util.Map;
public class ExampleOne {
public static void main(String[] args) {
Map<String, Object> clause = null;
// 1.
clause = new HashMap<String, Object>();
clause.put("key1", "value1");
clause = new HashMap<String, Object>();
clause.put("key2", "value2");
clause = new HashMap<String, Object>();
clause.put("key3", "value3");
// 2.
clause = new HashMap<String, Object>();
clause.put("key1", "value1");
clause.clear();
clause.put("key2", "value2");
clause.clear();
clause.put("key3", "value3");
}
}
[/code]
上面是两种不同的写法,那种写法更好?
clause = new HashMap();
clause.put("key1", "value1");
clause.clear();
clause.put("key2", "value2");
clause.clear();
clause.put("key3", "value3");
这种写法,理解比较好。第一种写法的是对象覆盖了,GC回收了那些没用的对象,这个看个人的癖好了
个人认为第二种写法比较好吧,始终操作的是一个对象,节省内存中堆栈大小。不过Java自动管理栈和堆,有自己的回收机制,新创建一个对象的同时之前的对象会被回收释放掉,从科学角度来说是差不多的。
一样。
第二种吧,第一种每次都覆盖原来的了,还有什么用