本文主要介绍隐式的强制类型转换
- 隐式的强制类型转换常发生在赋值表达式和有返回值的函数调用表达式中。
- 上述的强制转换只能当两个类型可转时才能进行。
赋值表达式
算数赋值运算符
| 运算符 | 名称 | 例子 |
|---|
| += | 加赋值 | a += b、a += b+3 |
| -= | 减赋值 | a -= b |
| *= | 乘赋值 | a *= b |
| /= | 除赋值 | a /= b |
| %= | 取余赋值 | a %= b |
复合位赋值运算符
| 运算符 | 含义 | 实例 | 结果 |
|---|
| &= | 按位与赋值 | num1 &= num2 | 等价于 num 1=num 1 & num2 |
| I= | 按位或赋值 | num1 I= num2 | 等价于 num 1=num 1 I num2 |
| ^= | 按位异或赋值 | num1 ^= num2 | 等价于 num 1=num 1 ^ num2 |
| «= | 按位左移赋值 | num1 «= num2 | num 1=num 1 « num2 |
| »= | 按位右移赋值 | num1 »= num2 | 等价于 num 1=num 1 » num2 |
package src.基础.自动转换;public class Test {
public static void main(String[] args) {
byte a=10;
byte b=2;
//计算a/b
// a=a/b;
a/=b;//(隐式强制转换)
System.out.println(a); //5
// a=a*b;
a*=b;//(隐式强制转换)
System.out.println(a); //10
// a=a-b;
a-=b;//(隐式强制转换)
System.out.println(a);//8
// a=a+b; 编译错误
a+=b;//(隐式强制转换)
System.out.println(a);//10
//a=a<<2
a<<=2;//(隐式强制转换)
System.out.println(a);//40
//a=a>>2;
a>>=2;//(隐式强制转换)
System.out.println(a); //10
//a=a&2;
a&=2;//(隐式强制转换) 00001010
// 00000000 00000000 00000000 00000010
//按位与运算 00000010
System.out.println(a); //2
//a=a^2;
// 00000000 00000000 00000000 00000010
// 00000010
// 按位异获运算 00000000
a^=2;//(隐式强制转换)
System.out.println(a); // 0
//a=a|2;
// 00000000
//00000000 00000000 00000000 00000010
//按位或运算 00000010
a|=2;//(隐式强制转换)
System.out.println(a); //2
//a=a%b;
a%=b;//(隐式强制转换)
System.out.println(a); //0
}
}
有返回值的函数调用表达式
暂时没有遇到过,或者遇到过没有注意,以后看到了再补充吧,如有错误,欢迎指出!