先给大家看个概念:
• 表达式的 数据类型自动提升:
• • 所有的byte型、short型和char的值将被提升到int型。
比如:
char a='a';
char b='b';
char ch;
①ch=a+1;//编译失败,因为a会自动提升为int类型,运算结果为int。编译器提示可能会有损失
②ch='a'+1; //编译通过,为什么?
③ch=a+b;//编译失败,同①
④ch='a'+'b';//编译通过,为什么?
发现:
当表达式中没有指定类型的变量(比如int x=4;指定x为int类型)参与运算时,java虚拟机不会报错。
为什么?
|
|