1、运算过程中,数据类型自动提升
两个变量做某种运算时,类型自动提升的规则:
a和b做某种运算时,
a和b中有double,结果就是double;
a和b中有float,结果就是float;
a和b中有long,结果就是long;除此之外,结果都是int。
例如:byte a=1; byte b=2; a=a+b;(编译器报错,因为a+b的结果是int,而a本身是byte,类型无法自动转换)
通过强制类型转换更改即可:a=(byte)a+b; 此外也可写成:a+=b;(因为这种运算不存在自动类型提升)
2、java为什么规定标识符不能以数字开头?
简单粗暴举例,假设标识符可以以数字开头,如下代码编译器就难以理解了:String 123="wds"; int a=123; 不过实际原因在《编译原理》中有阐述,主要是涉及到编译器的问题,有兴趣自己可以查阅。
3、