【问题标题】:Java - Fields vs implemented MethodsJava - 字段与实现的方法
【发布时间】:2015-09-05 15:20:50
【问题描述】:

我必须解析 JSON 响应并返回包含其数据的对象。但我不确定哪种解决方案更“内存友好”:

方法一:字段

public class MyElement {

    private int var1;

    public MyElement(int var1) {
        this.var1 = var1;
    }

    public int getVar1() {
        return var1;
    }

}

方法 1.1: 现场直接访问。
方法 1.2: 使用建筑商/工厂。

方法二:

public interface MyElement {
    int getVar1();
}

// In Code
return new MyElement() {
    @Override
    public int getVar1() {
        return 5;
    }
}

【问题讨论】:

  • 我不会写这样的东西:使用杰克逊。它要求您的对象遵循 Java Bean 标准。在您分析了您的应用并且数据告诉您存在问题之前,不要担心内存是否友好。

标签: java memory methods field


【解决方案1】:

旁注:public getVar1() 无法编译。方法 1、1.1 和 1.2 之间的任何差异都可以忽略不计(尽管 1.1 是可变的,除非您将字段设为 final),但我会使用方法 1。这是因为,使用方法 2,实际上创建了一个新的(匿名)类.如果多次执行,则会创建大量类。当然,除非真正大规模,否则这种差异通常无关紧要,所以当内存不是问题时,不要把它当作问题。

【讨论】:

    【解决方案2】:

    我认为 Java Bean 标准是一种更好的方法,因为它在软件开发的大多数实现中都遵循。

    我在下面为您提供了很好的参考链接,这些链接将解释您的疑问的详细信息:

    Places where JavaBeans are used?

    When would you use the Builder Pattern?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多