「[B\@」の謎に対処する: Java バイト配列表記法を理解する
次のような場合に遭遇する独特の「[B\@」表現Java でのバイト配列の出力は、開発者をしばしば困惑させてきました。それは何を意味しますか?またその意味をどのように解読できますか?
象徴性の解読
表記「[B@」はバイト配列の内容の 16 進表現ではありませんむしろオブジェクト記述子です。各コンポーネントは特定の側面を表します。
配列の内容を効果的に印刷する
Toオブジェクト ID ではなく、バイト配列の実際の内容を表示するには、さまざまな方法を使用できます。メソッド:
明示的な反復と変換:
byte[] in = {1, 2, 3, -1, -2, -3};
for (byte b : in) {
System.out.print(String.valueOf(b) " ");
}
16 進文字列変換:
System.out.println(Base64.getEncoder().encodeToString(in));
カスタム文字列変換:
String byteArrayToString(byte[] in) {
char out[] = new char[in.length * 2];
for (int i = 0; i >> 4) & 15);
out[i * 2 1] = "0123456789ABCDEF".charAt(in[i] & 15);
}
return new String(out);
}
JNI 命名法について
「[B\@」表記は、JNI (Java ネイティブ) で型を記述するためのより大きなシステムの一部です。インタフェース)。完全なリストは次のとおりです:
この表記法を理解すると、Java の複雑な世界をナビゲートできるようになります。自信を持ってデータを表現します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3