java - 我应该创建一个 Map 对象并在各处引用它,还是在每次需要时实例化它?

标签 java

我有一个 JavaFX Controller ,它从类中的许多不同方法调用一个方法。

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

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

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);
    }

}

最佳答案

每次创造本质上都是更好的;性能影响是如此之小,以至于您实际上不应该关心(您可能有更好的地方可以优化)。

此外,通过创建一个类变量并像这样清除它,您将引入并发问题,您稍后必须解决这些问题,这将变得更加复杂,并且可能会消除您看到的任何性能提升。

Premature optimization is the root of all evil.

关于java - 我应该创建一个 Map 对象并在各处引用它,还是在每次需要时实例化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49765590/

相关文章:

java - 修改 Java Beans setter 以返回与 Bean-Framework 冲突的 Bean 类

java - 用java解析文件

java - 按后退按钮或 F5 时如何调用托管 bean 上的方法?

java - 如何调用抽象类的方法?

java - 在Java中,如果没有传递参数,如何为变量number=Integer.parseInt(args[0])赋值?

java - 如何从 AWS Lambda 在 AWS EC2 实例上执行 JAR

java.lang.ClassNotFoundException : com.netflix.discovery.EurekaClientConfig

java - ClassCastException : com. sum.xml.internal.stream.XMLInputFactoryImpl 无法转换为 org.codehaus.stax2.XMLInputFactory2

java - 如何使用 java sdk 将嵌套的 json 对象存储和更新到 couchbase

java - "on-heap"和 "off-heap"之间的区别