java - 什么是最有效率的;创建一个新实例或更改现有实例中的值?

标签 java

我正在尝试编写一个跟踪电影的应用程序,作为提高 Java 水平的一种方法。为此,我为电影本身使用“Movie”类,以及您可能期望的“标题”、“年份”、“导演”等类,这些类都是通过“电影”构造函数设置的。现在假设我想更换一部电影的导演,那么从“电影”类中最有效的方法是什么?我将其归结为创建一个新实例或更改旧实例,即

public void setYear(int year) {
    this.year = new Year(year);
}

public void setYear(int year) {
    this.year.setYear(year);
}

最重要的是,我只是不确定第二个是否是正确的编码实践?

我最近刚刚开始学习 Java,所以对于我的问题中的任何困惑,我深表歉意。

最佳答案

与大多数性能问题一样,最佳答案是;首先考虑简单、清晰的编码,它通常会表现得足够好。仅当您测量到有问题时才担心性能问题,否则您只是猜测(即使您有十年的 Java 应用程序调优经验)

第一个例子是最简单的,也可能是最清晰的,尽管我不确定为什么你有一个 Year 类,因为你很乐意传入一个 int一年。第二种速度更快,但更容易出错。

如果您只是想要最高效,请使用 int

最佳实践可能是使用 Year 作为随处不可变的值,例如

public void setYear(Year year) {
    this.year = year;
}

例如,JodaTime 有多种不可变类来表示不同的时间段。

关于java - 什么是最有效率的;创建一个新实例或更改现有实例中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21464840/

相关文章:

java - 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销 servlet?

java - 不调用jsf中的setter方法

java - Java 项目中服务器和客户端包的共享资源

java - 电话验证凭证

java - 在启动时使用 Hibernate 验证数据库连接

java - 在一个文件中索引多个文件

Java gzip pdf 从 url 到文件 - 结果出现轻微字符不匹配

java - response.sendRedirect 在 Spring MVC RequestMethod.DELETE 中不起作用

java - 启动多个 spring boot 实例,但启动一个主机名用于本地开发

Java异常crshes玩法框架