バイト配列とオブジェクト参照があります。
byte[] data = new byte[128];
Block b = new Block();
「データ」配列の最後の 2 (または 4) バイトに参照 b を格納したい。
親切に注意してください:オブジェクトをシリアル化し、バイト配列に格納したくありません。新しいブロックを参照するポインター (参照) を格納する必要があります。
編集
私のブロッククラスは次のとおりです
public class Block {
byte[] data ;
public Block(){
data = new byte[128];
}
}
基本的に、データ配列は 126 バイトを使用して文字列を格納し、最後の 2 (または 4) バイトを使用して別のブロックへの参照を格納します。その一種のリンク リスト。
[クラス自体に Block への参照を含めることにより] Block クラスの別の定義を使用してそれを行うこともできました。他の投稿から、jvm(32 ビット) では参照のサイズが 4 バイトであることを知りました。したがって、最後の4バイトを使用してのみ実行できると思います
問題文の抜粋
ブロックの最後の 2 バイトは、次のブロックを指すために使用されます。ファイルのサイズが 8 ブロックの場合、4 番目のブロックの最後の 2 バイトは 5 番目のブロックを指し、5 番目のブロックの最後の 2 バイトは 6 番目のブロックを指す、というようになります。