在JAVA中一个字符占两个字节,看下列问题:
byte[] b1="helloworld".getBytes();
System.out.println(b1.length);
输出结果为:10
结论是:一个10个英文字母的String转为字节数组占10个字节。为什么?中间发生什么变化?
byte[] b1="helloworld".getBytes();
System.out.println(b1.length);
输出结果为:10
结论是:一个10个英文字母的String转为字节数组占10个字节。为什么?中间发生什么变化?
为什么会变少。不懂就不要回,瞎起哄
byte[] b1 = "helloworld".getBytes("gbk");
System.out.println(b1.length);
"helloworld".getBytes("utf-8");
System.out.println(b1.length);
byte[] b2 = "我是一个兵".getBytes("gbk");
System.out.println(b2.length);
b2 = "我是一个兵".getBytes("utf-8");
System.out.println(b2.length);
byte[] b1 = "helloworld".getBytes();
//第1行输出结果为:1101000
System.out.println(Integer.toBinaryString(b1[0]));
byte[] b2 = "爱我中华啊".getBytes("UTF-8");
//第2行输出结果为:11111111 11111111 11111111 11100111
System.out.println(Integer.toBinaryString(b2[0]));
byte[] b3 = "爱我中华啊".getBytes();
//第3 行输出结果为:11111111 11111111 11111111 10110000
System.out.println(Integer.toBinaryString(b3[0]));
//第4次输出结果为:11100100 0110001
System.out.println(Integer.toBinaryString('爱'));
1.第1次输出结果可以看出:输出‘h’对应ASCII值的二进制
2.第2,3次输出就出现问题。
3.第3,4次经过getBytes()方法后输出与直接输出结果不同
何解?