Java中的运算符号的分类:
算术运算符:
基本的算术运算符:
+、-、*、/(默认取整)、%
扩展的算数运算符:++ or --
赋值运算符:
最基本的:=
关系(比较)运算符:
逻辑运算符:
位运算符:
三目运算符:
class OperatorDemo{
public static void main(String[] args){
//定义两个变量
int x=3;
int y=4;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y);//默认取整
//计算具体结果:浮点型
System.out.println(x*1.0/y);//小数
System.out.println(x%y);
System.out.println(1.0-0.32);//0.6799999999999999(永远近似某个值)
//如果小数做减法或者除法要精确计算: 常用类:BigDecimal(针对小数进行精确计算)
}
}
扩展运算符:++ or--
情况1:
单独使用:无论操作++ 或者--在数据前面或者后面,
都对数据本身的值进行自增一或者自减一
情况2:
参与运算:
1):如果++或者--在数据的前面,先对数据的值进行自增+1或者-1,然后参与运算
2):如果++或者--在数据后面,先进行运算然后在进行对该数据本身的自增+1或者-1
class OperatorDemo2{
public static void main(String[] args){
//定义两个变量
int a=3;
int b=4;
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("--------------");
//单独使用
//运算符在数据之前(++ or --)
//++a;
//--b;
a++;
b--;
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("--------------");
int x=3;
int y=4;
//++或者--参与运算
//1)在数据前面
int m=x++;
int n=y--;
System.out.println("x:"+x);
System.out.println("y:"+y);
System.out.println("m:"+m);
System.out.println("n:"+n);
}
}
赋值运算符:
基本的赋值运算符:
=
将等号右边的值赋值给等号左边的值
int a=10;将10赋值给int 类型的变量
注意:=不能写成==(比较运算符)
扩展的赋值运算符:
+=,-=,*=,/=,%=
+=
将等号左边的数据和右边的数据相加,在赋值给左边的变量
class OperatorDemo{
public static void main(String[] args){
int a=10;
int b;
b=a=20;//将整数20赋值给变量a,将a结果留下来再赋值给b
//b=a==20;//将整数20和a进行比较(不兼容的类型: boolean无法转换为int)
System.out.println("a:"+a+",b:"+b);
System.out.println("----------------");
int x=20;
x+=10;//相当于x=x+10;
System.out.println(x);
}
}
/*
面试题
short s=1;
s=s+1;
s+=1;
那一句会编译失败
扩展的赋值运算符里面隐藏了一个强制类型转换(不会出现问题)
*/
class OperatorTest{
public static void main(String[] args){
//定义一个变量
short s=1;
//s=s+1;//肯定会失败,byte,short,char三者不转换,一旦参与运算-->默认先提升
//等号的右边int类型,等号左边short类型,不能接收结果
//解决方案
s=(short)(s+1);
System.out.println(s);
s+=1;//等价与s=(short)(s+1);
}
}