java - 我应该创建一个新变量还是始终访问类对象中的数据?

标签 java performance class pojo member-variables

让我们从一个例子开始(只是为了解释)

public void mySecretOperation() {
    User user = new User();

    if (user.getAge() > 2 && user.getAge() < 5) {
        //TODO : do something...
    }

    if (user.getAge() > 12 && user.getAge() < 15) {
        //TODO : do something...
    }

    if (user.getAge() > 31 && user.getAge() < 55) {
        //TODO : do something...
    }

    if (user.getAge() > 78 && user.getAge() < 89) {
        //TODO : do something...
    }

}

另一种选择是 int age = user.getAge(); 然后到处使用 age 而不是 user.getAge()

  • 所以,性能方面(或者让我们考虑空间复杂度)会在那里 有什么区别吗?

  • 我们能说一种方法优于另一种方法吗?

我知道这是一个菜鸟问题,仍然很想知道。

最佳答案

尽管它在性能方面有所不同,但几乎可以忽略不计。因此,在性能方面,您不会通过重构获得太多 yield 。

由于您在接收后没有进行任何逻辑操作(如增加/减少等),因此可以多次调用 getter。毕竟,您正在获取一个通过该方法返回的变量。

除非你在你的 getter 中做一些昂贵的操作,否则你的代码对我来说看起来没问题。

请注意,如果您在多线程环境中,最好使用 getter,因为您获取的变量有可能被修改。

关于java - 我应该创建一个新变量还是始终访问类对象中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722920/

相关文章:

python - 在Python中将一个模块导入到另一个模块

php - 使用数组时 str_replace 更快吗?

java - Javascript 有 Java 的日历辅助类吗?

Java 8 日期和时间 : parse ISO 8601 string without colon in offset

java - Struts 2 中的默认 Action 包

c# - Wpf 数据虚拟化

sql - 在 Oracle SQL 语句中使用分号

Python实例属性从具有相同名称的类属性中获取初始值?

Java - 外部可见的静态类私有(private)字段

java - 如何从 HashMap 中检索键和值