java 中关于byte数组的赋初值问题

2024-11-23 12:15:43
推荐回答(4个)
回答1:

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不再是数字,而是字符串,懂?

回答2:

65,66,67是ASCII码没错,但是它们是整形,如果要输出对应的字符,需要转型,如下
System.out.print((char)b1[i]+" ");

toString()方法是把对象转换成字符串,对基本类型不生效,因为它们不是对象。

回答3:

byte,char 其实都可以看成int型,只是范围不同。toString()方法对基本数据类型并不适用。
byte[] b={65,66,67}; 就是直接赋值不是ascii码。

回答4:

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)b1[i]);
System.out.print((char)b2[i]);
}
}

}