public class ByteArr {
public static void main(String[] args){
Byte[] a = {(byte)0x03, (byte)0x00, (byte)0x00, (byte)0x00};
Byte[] b = {(byte)0x03, (byte)0x00, (byte)0x00, (byte)0x00};
byte[] aa = {(byte)0x03, (byte)0x00, (byte)0x00, (byte)0x00};
byte[] bb = {(byte)0x03, (byte)0x00, (byte)0x00, (byte)0x00};
System.out.println(a);
System.out.println(b);
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(aa);
System.out.println(bb);
System.out.println(aa == bb);
System.out.println(aa.equals(bb));
}
}
なぜすべてが偽と印刷されるのか分かりません。
「java ByteArray」を実行すると、答えは「false false false false」になります。
a[] は b[] に等しいと思うのですが、JVM は間違っていると言っています。なぜでしょうか?
ベストアンサー1
Arrays.equals()
プリミティブ型の値 (バイトなど) を含む配列の実際の内容を比較する場合に使用します。
System.out.println(Arrays.equals(aa, bb));
Arrays.deepEquals
オブジェクトを含む配列の比較に使用します。