类型从int到char的转换int到char



假设

FileInputStream in=new FileInputStream ("file.txt");
char c=in.read();

给我一个错误:

java:不兼容类型:从int到char的可能有损转换

,但是

char b=87;

没有给我任何错误,而是给了我Unicode字符

  • 既然in.read()返回的int值可以是Unicode字符,而charb变量则不返回,为什么charc变量会出错

因为int也可以是21470000000,并且不能转换为char。当您指定87时,编译器知道它在预期的字符边界内,但当您从其他地方接收它时,无法确保数据安全。

int类型通常为32位(取决于系统(,而char通常为8位。因此,您正在将32位转换为8位,并且可能会丢失数据。

相关内容

  • 没有找到相关文章

最新更新