write()方法的一般形式
void write(int value)
它接受一个int值作为参数,但不强制转换就打印出一个字符
int b;
b='A';
System.out.write(b);
谁能解释写方法是怎么做到的?
最佳答案
简而言之,因为char只是数字,所以您可以在int
和char
之间进行强制转换,并且基本上没有任何变化(只要您不弄乱负数和可能超出char数据类型范围的数字)。
更准确地说,字符就像“无符号短裤”,see this question,显然,您可以在“无符号短裤”和整数之间没有太多问题的情况下工作。
您可以执行以下操作:
char c = 'c';
int x = (int) c;
System.out.println(c);
System.out.println(x);
System.out.println((char) x);
c = (char) (c + 1);
System.out.println(c);
打印:
c
99
c
d
因此,当您调用
write('A')
时,它将自动将'A'强制转换为其对应的整数65
,并且其作用与调用write(65)
相同。如果您呼叫
write(65)
,会发生什么?字节65
被发送到控制台,这是一个文本控制台,它将字节解释为字符,因此将65打印为对应的字符'A'。从根本上讲,“ A”只是二进制的
1000001
,十进制为65。您只是用write
的65来调用1000001
,当被解释为ASCII table的字符时就是'A'。关于java - write()方法如何输出字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23958271/