文章目录
算术运算符
+
这个其实和数学里面是一样的,两数相加求和
int a = 4;
int b = 2;
int c =a+b;
System.out.println(c);//最后输出的结果为6
-
这个也是和数学里面一样,两数相减求差值
int a = 4;
int b = 2;
int c =a-b;
System.out.println(c);//最后输出的结果为2
*
这个也是数学里面的乘法,求两数相乘之积
int a = 4;
int b = 2;
int c =a*b;
System.out.println(c);//最后输出的结果为8
/
除法与其他有些许不同,需要稍微注意一下,除法中0不能作为除数,如果用0来作为除数的话运行将会报错,报错为ArithmeticException: / by zero,其次,int/int也还是int类型,如果需要小数的话,需要用到double来计算,其中一个为double,然后接收用double,最后结果就为小数,也就是浮点数
int a = 2;
double b = 1;
double c = b/a;
System.out.println(c);//最后输出的结果为0.5
%
这个应该都不陌生,这个是数学里面的求模运算符,其实也就是取余数,看例子
int a = 2;
int b = 3;
int c = a%b;
System.out.println(c);//最后输出的结果为2
关系运算符
==
在Java中两个等号一起打出来,代表的是判断符号左右两边是否相等
int a = 2;
int b = 3;
if(a==b){
System.out.println("相等");
}else{
System.out.println("不相等");
}//最后输出的结果为不相等
!=
这个可以看作和==是一对,因为这个的意思是不相等,来看看例子
int a = 2;
int b = 3;
if(a != b){
System.out.println("不相等");
}else{
System.out.println("相等");
}//最后输出的结果为不相等
< > <= >=
这四个应该小学的时候就见过了,它其实还是小学那个时候的意思,为了判断符号两边的大小的,这里就不过多的阐述了
逻辑运算符(返回值为boolean)
&&
&&这个东西在Java中叫做逻辑与,在数学中我们应该听过这个名词,关于它的特点其实也很简单,就是有假(false)必假(false),两真(true)才真(true),举个例子说明一下
int a = 2;
int b = 3;
int c = 4;
System.out.println(a<b && b<c);//最后输出的结果为true
int a = 2;
int b = 3;
int c = 4;
System.out.println(a>b && b<c);//最后输出的结果为false
在这里要注意一点,如果&&左边为假,&&右边的表达式将不会执行,称之为短路,看例子
int a = 2;
int b = 3;
int c = 4;
System.out.println(a>b && c/0==100);//最后输出的结果为false
我们上面说过了,0不可以作为除数,但是上面的程序正常运行出结果了,没有报错,说明了&&右边的表达式并没有执行,这就是短路
||
这个是逻辑或,它的特点是有真(true)必真(true),两假(flase)才假(flase),并且和&&一样也会有短路的情况出现,出现的前提和&&刚好相反,是||左边为真(true)会短路,这里就不代码说明,可以适当参考&&的代码
!
这个是叫做逻辑非,这个比较好理解,true为真,!true就是false了,为假,加上!后,假(false)变成真(true),真变成假
int a = 2;
int b = 3;
System.out.println(!(a<b));//最后输出的结果为false
位运算符
&
这个是按位与,它的意思是两个数对应的二进制位,如果有0即为0,都是1的话是1
int a = 2;//二进制为0010
int b = 3;//二进制为0011
System.out.println(a&b);//最后输出的结果为2
|
这个是按位或,它的意思是两个数对应的二进制位,如果有1即为1,都是0的话是0
int a = 2;//二进制为0010
int b = 3;//二进制为0011
System.out.println(a|b);//最后输出的结果为3
~
这个是按位取反,如果二进制位是1,则变为0,如果是0则变为1
^
这个叫做按位异或,如果对应二进制位相同则取0,反之取1
int a = 2;//二进制为0010
int b = 3;//二进制为0011
System.out.println(a^b);//最后输出的结果为1
移位运算
<<
它叫做左移操作符,作用是舍弃二进制的最左侧数字,然后最右边添上一个0,每移动一位就相当于乘2,这个需要注意,如果遇到乘以2的几次方,就可以左移几位,可以大大节省运算时间
>>
这个叫做右移操作符,作用是舍弃二进制的最右侧数字,然后最左侧添加符号位,正数的话添加0,负数的话添加1,每移动一位就相当于除以2,如果遇到除以2的几次方,就可以右移几位,可以大大节省运算时间
>>>(谨记,没有<<<这个东西)
这个是无符号右移,直接舍弃最右侧的数字,然后最左侧添上一个0,一定注意,没有所谓的无符号左移这个说法
条件运算符
表达式1?表达式2:表达式3
这个是个三目运算符,意思是如果表达式1成立,则执行表达式2,反之执行表达式3
int a = 2;
int b = 3;
int c = a>b ?a:b;
System.out.println(c);//最后输出的结果为3