1

ここの 331 行目 ( openjdk の MutableBigInteger source ) では関数 toIntArray() を定義しています。一般に、MutableBigInteger は、たとえば{0, 0, 0, 0x12345678, ..., 0xffffffff, 0, 0, 0}、変数offsetを使用しintLen、ゼロ以外の値の開始位置と終了位置を定義することができる配列です (配列の実際のペイロード)。したがって、その関数は次のようになります。

int[] result = new int[intLen];
for(int i=0; i<intLen; i++)
    result[i] = value[offset+i];
return result;

パッケージは既にArraysユーティリティ クラスをインポートしているため、すべての for ループをArrays.copyOfRange(value, offset, intLen);?

一般的に、私の質問は、関連するすべての状況に関するものです。このような場合に対処するときにライブラリ メソッドを使用する方が良いですか、それとも実際の違いはなく、ほぼ同じ効率の実行可能ファイルが得られますか?

4

2 に答える 2

2

openjdk の実装について口論するつもりはありませんが、プロファイリングを行い、なぜ彼らが下した決定を下したのかを理解するまで (それらは間違っている可能性がありますが、私の迅速な判断は間違っている可能性がはるかに高いです)。

ただし、原則として、独自の独自の実装よりも確立されたライブラリを使用する方がほとんどの場合優れています。

于 2013-07-12T19:30:34.407 に答える