Java String.getBytes()为多次执行返回不同的值?

Java String.getBytes()为多次执行返回不同的值?,java,string,Java,String,我正在尝试执行上述程序,但是getBytes()为同一字符串提供了不同的值。在对给定字符串执行多次时,是否有任何方法可以获得相同的字节 public static void main(String[] args) { try { String name = "i love my country"; byte[] sigToVerify = name.getBytes(); System.out.println("file data:" +

我正在尝试执行上述程序,但是
getBytes()
为同一
字符串提供了不同的值。在对给定字符串执行多次时,是否有任何方法可以获得相同的字节

public static void main(String[] args) {
    try {
        String name = "i love my country";
        byte[] sigToVerify = name.getBytes();
        System.out.println("file data:" + sigToVerify);
        String name1 = "data";
        byte[] sigToVerify1 = name1.getBytes();
        System.out.println("file data1:" + sigToVerify1);

    }
}
这里不打印
字符串的值。正如owlstead在注释中正确指出的那样,该方法将在字节数组
sigtovify
上调用。导致此格式的输出:

System.out.println("file data:" + sigToVerify);
如果要打印数组中的每个元素,必须循环遍历它

getClass().getName() + '@' + Integer.toHexString(hashCode())
或者更简单,使用以下方法:


尝试打印字节数组的内容,而不是变量的toString()结果

System.out.println(Arrays.toString(bytes));

如果打印的字节是相同的,那么就可以继续了。

“类对象的toString方法返回一个字符串,该字符串由对象作为实例的类的名称、at符号字符“@”和对象哈希代码的无符号十六进制表示组成。”@owlstead Wow。。听起来很合理。你能提供那句话的链接,我可以把它放在答案里吗?当然,如果你把它放在你的答案里,确保你@owlstead我(我会去掉反对票,把它变成反对票,剩下的答案似乎是正确的)你是受欢迎的,生活和学习。您应该看到我在crypto.stackexchange上的最后一个错误:)
System.out.println(Arrays.toString(bytes));
for(byte b : sigToVerify)
    System.out.print(b +"\t");