Javaプログラムで参照できるように、何百万ものX/Yダブルペアを保存する必要があります。オブジェクト参照の数だけでなく、メモリ消費量もできるだけ少なくしたいと思います。したがって、2つのポイントを小さな二重配列で保持することをお勧めすることを考えた後、セットアップは次のようになります。
double[] node = new double[2];
node[0] = x;
node[1] = y;
配列を使用すると、次のように、クラスとクラスで使用されるX変数およびY変数の間のリンクが妨げられると考えました。
class Node {
public double x, y;
}
ただし、クラスのパブリックフィールドの格納方法を読んだ後、フィールドは実際にはポインタのような構造ではない可能性があることに気付きました。おそらく、JVMはこれらの値を連続したメモリに格納しているだけで、アドレスなしでそれらを見つける方法を知っています。私のポイントのクラス表現を配列よりも小さくします。
それで問題は、どちらがより小さなメモリフットプリントを持っているかということです。なぜ?
クラスフィールドがポインタを使用するかどうか、つまり32ビットのオーバーヘッドがあるかどうかに特に関心があります。