byte short int long
这几种类型都是java中的整数类型
你肯定对int比较了解,byte和int的区别是int是32位,byte是8位,表示的数字范围为:-128到+127
所以
第一个byte中元素都没超过范围,都以数字显示。第二个byte数组中的元素都是char类型,char类型是占16位的,一般转换为byte是由大到小,需要强制转换,但这些char并没有超出byte的范围,所以不用
在打印时会将char元素转换成对应的ascii码,具体你可以去查
toString的确是输出字母,但'a'是字符,不是字符串,两个完全不同的概念
字符串+primitive类型就是转换为字符型的最简单方法,例:
4+"" 将数字4转换为字符串4 现在的4不再是数字,而是字符串,懂?
65,66,67是ASCII码没错,但是它们是整形,如果要输出对应的字符,需要转型,如下
System.out.print((char)b1[i]+" ");
toString()方法是把对象转换成字符串,对基本类型不生效,因为它们不是对象。
byte,char 其实都可以看成int型,只是范围不同。toString()方法对基本数据类型并不适用。
byte[] b={65,66,67}; 就是直接赋值不是ascii码。
class Hello {
public static void main(String args[]) {
byte[] b1={65,66,67,68,69,70};
byte[] b2={'a','b','c','d','e','f'};
for(int i=0; i
System.out.print((char)b2[i]);
}
}
}