因为你用System.out.println("123".getBytes())打印出来的其实是调用了System.out.println("123".getBytes().toString()),数组对象的toString方法默认返回的就是这个格式:“[B”是说这是一个字节数组,后面的是这个数组在内存中的位置,每次执行的内存位置都不一样,自然就是每次都变得。

解决方案 »

  1.   

    谢谢  那既然  "123".getBytes() 每次得到的数据都不一样  那为啥我们还把这个"123".getBytes()这个数据存到数据库里啊   这样且不是存到数据库里的数据不准吗
      

  2.   

    你看到的 [B@dc8569其实是 "123".getBytes().toString()的结果,保存到数据库的是"123".getBytes(),这是一个真正的数组。
      

  3.   

    你好 谢谢解释 那怎么才能看"123".getBytes(),这是一个真正的数组    那怎么才能看这个正真的数组啥样的呢   
    为啥"123".getBytes()  打印出来的数据是  "123".getBytes().toString()这个结果啊
      

  4.   

    System.out.println(byte[]) 调用的其实是PrintStream.println(Object),这里面调用了String.valueOf(),这个方法里调用了toString()方法。
    byte[] b = "123".getBytes();
    System.out.println(b);
    System.out.println(Arrays.toString(b));