テキストではなくオブジェクトを比較しています。buffer1はbuffer2とは異なります
equalsメソッドのJDKリファレンスを読み取る
equalsメソッドは、null以外のオブジェクト参照に同値関係を実装します。
これは再帰的です。null以外の参照値xの場合、x.equals(x)はtrueを返す必要があります。これは対称的です。null以外の参照値xおよびyの場合、y.equals(x)がtrueを返す場合に限り、x.equals(y)はtrueを返す必要があります。これは推移的です。null以外の参照値x、y、およびzの場合、x.equals(y)がtrueを返し、y.equals(z)がtrueを返す場合、x.equals(z)はtrueを返す必要があります。一貫性があります。null以外の参照値xおよびyの場合、オブジェクトのequals比較で使用される情報が変更されていない限り、x.equals(y)を複数回呼び出すと常にtrueが返されるか、常にfalseが返されます。null以外の参照値xの場合、x.equals(null)はfalseを返す必要があります。クラスObjectのequalsメソッドは、オブジェクトに対して可能な限り最も識別力のある同値関係を実装します。つまり、null以外の参照値xおよびyの場合、
通常、hashCodeメソッドの一般的なコントラクトを維持するために、このメソッドがオーバーライドされるたびにhashCodeメソッドをオーバーライドする必要があることに注意してください。これは、等しいオブジェクトには等しいハッシュコードが必要であると述べています。