当前位置: 代码迷 >> J2EE >> 100分求System.out.println("123"getBytes()); 为何数值还会变化 "123"getBytes()到底是什么东西
  详细解决方案

100分求System.out.println("123"getBytes()); 为何数值还会变化 "123"getBytes()到底是什么东西

热度:431   发布时间:2016-04-17 23:27:11.0
100分求System.out.println("123".getBytes()); 为啥数值还会变化 "123".getBytes()到底是什么东西啊
System.out.println("123".getBytes());  为啥数值还会变化   "123".getBytes()到底是什么东西啊 
------解决思路----------------------
str.getBytes 你那输出的是对象

你看有变化么?


String str = "123";
byte[] bytes = str.getBytes();
for(int j=0;j<bytes.length;j++){
System.out.print(bytes[j]);
}


------解决思路----------------------
返回的是一个数组,doc解释:Returns: resultant byte array
rint直接输出是数组的地址,而非数组内容。
输出内容可以使用Arrays.toStrin()函数。
System.out.println(Arrays.toString("123".getBytes()));

------解决思路----------------------
System.out.println("123".getBytes());  为啥数值还会变化   "123".getBytes()到底是什么东西啊

首先说明一点的是"123"是个字符串,"123".getBytes()获取对应字符串的字符数组,这点应该没有什么疑问吧,
既然你想知道为什么,这里给你补充点C语言的知识,相信你就可以了解些了
C语言中,没有所谓的字符串的概念,在咱们java中的所有字符串都是按照字符数组的方式去存储的
如Java中String str = "I am a boy";
在C中就是char str[11] ={'I',' ','a',‘m’,' ','a',' ','b','o','y' ,''};c[0]='I';
C的特点就是更加关注于底层,即数据在存储区里如何存储,存储的地址,占用多少字节等等,相对于更底层的C语言来说,目前这xie个高级语言更关注与业务逻辑,所以相对的这个底层的东西在高级语言诞生的时候就考虑到,封装起来了,你要看一下java的String类的源码就会了解得,他们一般都是有c语言发展过来的,java就是如此,所以java中也保存了C语言的这个特性,即String类的构造方法里面有一个用数组作为参数的,有的时候你需要对字符也好,文本也罢,做读取写入操作的时候就需要用到getBytes这个方法,像输入输出流拉,上传下载操作等等,适当了解C也不错哦
------解决思路----------------------
String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.

"123".getBytes()返回的格式是Byte数组,即Byte[].
你的System.out.println("123".getBytes()),输出的是数组的地址,如果你还不明白,看下面
System.out.println("123".getBytes());等价于 Byte[] a="123".getBytes();System.out.println(a);
------解决思路----------------------
引用:
String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.

"123".getBytes()返回的格式是Byte数组,即Byte[].
你的System.out.println("123".getBytes()),输出的是数组的地址,如果你还不明白,看下面
System.out.println("123".getBytes());等价于 Byte[] a="123".getBytes();System.out.println(a);

由于你的多个"123",不是同一个对象,所以生成的数组的地址也是不同的。如果给你讲解到这里,你还不明白,只能说明你的java功底太弱了
------解决思路----------------------
"123".getBytes()返回的格式是Byte数组,即Byte[].,直接输出,返回的是对应的数据组的地址。
  相关解决方案