如果你自己创作一个类,我只是想着它是否会给你表现。
public class Coordinate{
private int x;
private int y;
public Coordinate(int x, int y){
this.x = x;
this.y = y;
}
/* Getters & Setter */
/* etc. */
}
这会比使用Point2D
表现更好,还是性能稍差?
我知道这是一个天真的问题,但在搜索互联网时我什么也没找到。
答案 0 :(得分:1)
您无需创建自己的Coordinate
课程,因为已存在包含字段java.awt.Point
和int x;
的课程int y;
。此类还实现了java.awt.geom.Point2D
,因此很容易使用需要Point2D
的现有代码。
这是否会改善表现:既然你还没有告诉我们你打算用它做什么,那就没办法说出来了。如果您要使用转换等Java2D功能,构建Shape
或Path2D
s,那么它不太可能提高性能,甚至可能会因为频繁转换而降低性能int
和double
。
如果您只是将它与自己的代码一起使用并且只打算执行整数运算,并且在具有多次迭代的紧密循环中,那么您可能会看到一些性能改进,因为您&# 39;现在重新进行整数运算,这比我曾经听过的任何CPU上的浮点运算都要快。没有任何动态HotSpot编译可以改变这种差异,所以你可以肯定的是,你至少会看到一些改进。
但是如果您将Coordinate / Point上的操作与其他计算或I / O混合,那么这些其他操作的性能特征不会改变,因此整数算术的性能增益将小于你的整体表现。