在Java中通过其值初始化字节数组?
因此,我有一个字符串的字节值。例如,通过:在Java中通过其值初始化字节数组?,java,byte,Java,Byte,因此,我有一个字符串的字节值。例如,通过: String str="Test String"; System.out.println(str.getBytes()); 这给了我: [B@1339a0dc 我可以使用它初始化字节数组,例如: byte[] bytes=new bytes("[B@1339a0dc"); 还是什么?否。这是类名([B是字节[])和哈希代码(1339a0dc是十六进制的哈希代码)。哈希不能反转,因为它们不是 为什么要打印它?因为您使用的是隐式toString()。
String str="Test String";
System.out.println(str.getBytes());
这给了我:
[B@1339a0dc
我可以使用它初始化字节数组,例如:
byte[] bytes=new bytes("[B@1339a0dc");
还是什么?否。这是类名([B
是字节[]
)和哈希代码(1339a0dc
是十六进制的哈希代码)。哈希不能反转,因为它们不是
为什么要打印它?因为您使用的是隐式toString()
。这:
System.out.println(str.getBytes());
由编译器转换为以下格式:
System.out.println(str.getBytes().toString());
因为System.out.println()
将字符串作为参数,所以这里进行隐式转换
因此,您使用的是默认的对象#toString()
实现,正如我前面解释的那样(更多详细信息)getBytes
返回一个byte
数组。因此,您可以执行以下操作:
byte[] bytes = str.getBytes();
直接的
[B@1339a0dc
只是一个用字符串表示的对象引用,而不是实际的字节数组