两种方法实现:
public void setPosiotion(int x, int y) { //什么都不做 }
public void setPosiotion(Point point) { //什么都不做 }
如果我必须调用 setPosition() 10 亿次怎么办,不需要创建新 Point 的方法会明显更快地工作吗?
两种方法实现:
public void setPosiotion(int x, int y) { //什么都不做 }
public void setPosiotion(Point point) { //什么都不做 }
如果我必须调用 setPosition() 10 亿次怎么办,不需要创建新 Point 的方法会明显更快地工作吗?
它可能会产生很小的差异,但它可能少于您编写较长表达式所需的时间。有时你的时间和效率更重要。
比编写时间更重要的是维护代码所花费的时间,这可能是开发时间的 3 倍。这表明可维护性应该是您的主要关注点。
简而言之; 编写简单、清晰易懂的代码,它通常会表现良好,并且从长远来看是最有效的。
如果我必须调用 setPosition() 10 亿次怎么办,不需要创建新 Point 的方法会明显更快地工作吗?
这取决于setPosition
方法的作用。
如果该方法仅使用x
和中的y
值,Point
那么不创建/传递Point
对象可能会更快。
如果该方法立即创建 aPoint
来保存您传递的x
andy
值,那么您Point
自己创建可能会更快。
由于最新的 JVM 可以使用转义分析来推断Point
不需要将对象创建为堆对象,因此这很复杂。另一方面,它取决于需要传递多少级方法调用(等等)x
和值。y
简而言之,很难预测。
最后,您的假设setPosition
将被调用 10 亿次是值得怀疑的……除非您实际分析了应用程序。即使它是有效的,这些调用仍然可能对整个应用程序执行时间做出微不足道的贡献。
先剖析,再优化。