System.out.println("hello world".getBytes("UTF-8"));
偶尔会返回不同的值,为什么?String.getBytes()的结果不一致
对不起,我还是Java的noob。
System.out.println("hello world".getBytes("UTF-8"));
偶尔会返回不同的值,为什么?String.getBytes()的结果不一致
对不起,我还是Java的noob。
此代码打印一个数组(byte []),但没有用Java打印标准数组。因此,代码不是打印数组的内容,而是显示一些隐藏的内存引用数组。例如“[B @ 6bbc4459”。这些信息不是非常有用,并且可能会在程序执行之间发生改变。
如果要显示数组的内容,则必须遍历它。
您正在打印字节数组上调用toString()
的结果。那不会显示你的内容,因为数组不会覆盖toString()
- 它只是向你展示类似[[email protected]
的地方,其中[B
显示它是一个字节数组,而@之后的值是一个哈希码。
如果你想显示的字节数组内容为数字,你要像Arrays.toString
:
byte[] data = "hello world".getBytes("UTF-8");
System.out.println(Arrays.toString(data));
感谢这个例子,欢呼声 – user747912
请告诉我们:(1)完整的编译代码; (2)你通常从中得到什么; (3)你偶尔会得到什么。 – NPE
在同一台机器上,使用相同的JVM? –