/*
赋值运算符
字符串连接运算符
三目运算符/三元运算符/条件运算符
关于JAVA中的赋值类运算符:
赋值类运算符包括两种:
*基本的赋值运算符
=
*扩展的赋值运算符
+=
-=
*=
/=
%=
1.赋值类的运算符优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量
2.注意以下代码:
byte i=10;
i+=5;等同于:i=(byte)(i+5);
int k=10;
k+=5;等同于:k=(int)(k+5);
long x=10L;
int y=20;
y+=x;等同于:y=(int)(y+x);
3.重要结论:扩展类的赋值运算符不改变运算结果类型。
*/
public class OperatorTest04 {
public static void main(String[] args) {
//基本的赋值运算符
//将10赋值给变量i
int i=10;
//先运算等号右边的算式,将右边的值赋值给变量i
i=i+5;
//相当于上式简化,+=运算符可以翻译为"追加"/"累加"
//例如数据里面要追加数据,就是用此方法+=
i+=5;
//举例子
//10没有超过byte类型的取值范围,可以直接赋值
byte b=10;
//以下代码编译错误。为什么?
//编译器只检查语法,不运行程序,编译器发现b+5的类型是int类型,b变量的数据类型是byte
//大容量向小容量转换需要加强制转换类型转换符,所以以下程序段编译报错
//b=b+5;
//纠正错误
b=(byte)(b+5);
//下面又是一个例子,反驳上面
byte x=10;
x+=5;//等同于x=(byte)(x+5);并不等同于x=x+5;
System.out.println(x);//编译成功15
//举例子
byte z=0;
z+=128;//等同于: z=(byte)(z+128);强制转换
System.out.println(z);//-128 可以执行但是损失精度
z+=10000;
System.out.println(z);//用计算执行出-112,说明可以执行,但是损失精度
}
}