我应该制作一个Map对象并在整个地方引用它,还是每次需要它时实例化?

时间:2018-04-11 02:34:03

标签: java

我有一个JavaFX控制器,可以从类中的许多不同方法调用方法。

sendToNode(String name, Map<String, Object> p){}

现在,在每个方法中,我将创建一个新地图并用参数填充它。

public void someMethod(){
    Map<String, Object> p = new HashMap();
    p.put("a", 777);
    sendToNode("slave", p);
}

创建一个类变量并且每次都清除它而不是在每个方法中实例化一个新变量更好(内存和效率)吗?

public MyClass{
    Map<String, Object> p = new HashMap();

    public void someMethod(){
        p.clear();
        p.put("a", 777);
        sendToNode("slave", p);
    }

}

1 个答案:

答案 0 :(得分:2)

每次创造本身都更好;性能打击是如此之小,以至于你真的不应该关心(你可能有更好的优化场所)。

此外,通过制作单个类变量并将其清除,您将引入并发问题,以后需要解决的问题会更加复杂,并且可能会消除您看到的任何性能提升。 / p>

  

过早优化是万恶之源。