1.运算符
1.1算术运算符
算术运算符包括: +(两个数字求和)、 -(两个数字相减)、 *(两个数字乘积)、 /(两个数字相除)、 %(两个数字取模或者求余)、 ++(单目运算符,对数字自加 1)、 —(单目运算符,对数字自减 1)。
int a=10;int b=20;System.out.println(a+b);//30System.out.println(a-b);//-10System.out.println(a*b);//200System.out.println(a/b);//0/*int 类型和 int 类型* 做运算,最终的结果还是 int 类型*/System.out.println(a%b);//10
int i=10;i++;System.out.println(i);//11++i;System.out.println(i);//12/*根据以上的程序可以得出结论: ++可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要执行完 ++,最终的结果都会让变量自加 1。*/int m=i++;System.out.println(m);//12/*规定的,当++运算符出现在变量后,会先做赋值运算,再自加 1,所以最后 m = 12*/int m=++i;System.out.println(m);//14/*java 语法中又有这样的规定, ++出现在变量前,会先进行自加 1的操作,然后再做赋值运算,所以 m= 11*/
- 两个 int 类型数据进行数学运算之后的结果一定是 int 类型;
- ++或—可以出现在变量前也可以是变量后;
- ++无论出现在变量前还是变量后,只要执行了++,那么变量必然会自加 1;
- ++出现在变量后会先进行赋值运算,再自加 1;
- ++出现在变量前会先自加 1,再进行赋值运算。
1.2关系运算符
关系运算符主要是完成数据和数据之间的比较。返回布尔值
int a=10;int b=20;System.out.println(a>b);//falseSystem.out.println(a<b);//trueSystem.out.println(a>=b);//falseSystem.out.println(a<=b);//trueSystem.out.println(a==b);//falseSystem.out.println(a!=b);//true
1.3逻辑运算符
逻辑运算符主要包括逻辑与(&),逻辑或(|),逻辑异或(^),短路与(&&),短路
或(||)。所有逻辑运算符的特点是操作数都是布尔类型,并且最终的运算结果也是布尔类型
1.4赋值运算符
赋值运算符包括基本赋值运输符=,和拓展赋值运算符(+=、-=、/=、%=)与二进制相关的运算符
int a=12;System.out.println("a="+a);a+=1;System.out.println("a="+a);//13 a+=1等于a=a+1a-=1;System.out.println("a="+a);//12 a-=1等于a=a-1a*=2;System.out.println("a="+a);//24 a*=2等于a=a*2a/=2;System.out.println("a="+a);//12 a/=2等于a=a/2a%=2;System.out.println("a="+a);//0 a%=1等于a=a%1
拓展:a+=1与a=a+1真的相等吗?
byte a=12;a=a+1;//编译器会报错 原因类型转换异常
byte a=12;a+=1;//编译通过
根据以上代码测试得出,对于扩展类的赋值运算符在运算的过程中不会改变运算的结果类型。
1.5条件运算符
条件运算符属于三目运算符,它的语法结构是:布尔表达式?表达式 1:表达式 2。它的运行原理是这样的,先判断布尔表达式的结果是 true 还是 false,如果是 true,则选择表达式 1 的结果作为整个表达式的结果,反之则选择表达式 2 的结果作为整个表达式的结果。
int a=true?1:0;//a=1;
1.6字符串连接运算符
作用一是对数字进行求和运算,作用二就是字符串连接运算 。
int a = 10;int b = 20;System.out.println(a + " + " + b + " = " + a + b);//10+20=1020System.out.println(a + " + " + b + " = " + (a + b));//10+20=30
