【JavaSE】运算符的总结--03

前言:上一章我们讲了数据类型和变量,接下来我们就得找一个东西把变量与变量连接起来,这个东西也就是我们的运算符,所以接下来就让我们一起来学习运算符吧

1.什么是运算符

运算符是指对操作数进行操作时的符号,不同运算符操作的含义不同。

根据需要操作的操作数不同,可以将它分为单目运算符(一个操作数),双目运算符(两个操作数),还有三目运算符(三个操作数)。

在Java中,运算符可分为:算术运算符,关系运算符,逻辑运算符,位运算符,移位运算符,条件运算符等。

2.算术运算符

算术运算符包括:+(加),-(减),*(乘),/(除),%(取余)以及++(自增),--(自减)

其中在Java中%可以对小数进行取余(在c语言中只可以对整数进行取余)

也可以对负数进行取余:例如:

public class TestDemo3 {
    public static void main(String[] args) {
        System.out.println(10%3);
        System.out.println(10%-3);
        System.out.println(-10%3);
        System.out.println(-10%-3);
    }
}
1
1
-1
-1

显而易见:

正数%正数得正数

正数%负数得负数

负数%正数得负数

负数%负数得负数

所以说:取余的结果取决于被除数的正负,与除数无关

自增,自减运算符,前置++(先自增,再使用),后置++(使用完,再自增),自减也是如此

不同类型的变量进行运算需要强制类型转换

int a = 10;
int b = 20;
short c = (short)(a+b);

在使用使用自增自减运算符的时候,不需要进行强制类型转换的,程序会自动转化为接收的变量类型

在使用/(除号)时,牢记如果计算出的答案有小数的时候,系统会直接帮你向下取整。

例如:

【JavaSE】运算符的总结--03_第1张图片

3/2所应该得到的答案应该是1.5,然而我们所得到的答案是1,所以更加确定了如果计算出的答案有小数的时候,系统会直接帮你向下取整。

3.关系运算符

关系运算符包括: ==(判断相等), !=(判断不相等), <= (小于等于), >= (大于等于),< (小于),> (大于)。

关系运算符一般在判断语句上使用,在判断语句中只存在true和false(不存在c语言中的非0为真了)。

4.逻辑表达式

逻辑表达式包括 :&&(逻辑与),||(逻辑或),(逻辑取反)

&&(逻辑与)的判断情况

表达式1 表达式2 结果
&&的左右表达式必须是boolean类型的结果
|| (逻辑或)的判断情况
 
表达式1 表达式2 结果
 

||的左右表达式必须是boolean类型的结果

(逻辑取反)的判断情况

表达式 !表达式

&&和||支持短路求值(如果运行第一个表达式就可以判断结果,程序就不会运行第二个表达式),!不支持短路求值。

5.位运算符

位运算符包括: &(按位与),|(按位或),^(按位异或),~(按位取反)

位运算符的操作单位都是对二进制位进行操作

&(按位与)(双目运算符):有0则0,无0则1;

|(按位或)(双目运算符):有1则1,无1则0;

^(按位异或)(双目运算符):二进制相对应的位相同为0,不同为1;

~(按位取反)(单目运算符):0变1,1变0。

6.移位运算符

移位运算符包括:<<,>>,>>>

<<(左移)

最左侧的二进制位舍去,在最右侧的二进制位上补 0。

>>(右移)

最右侧的二进制位舍去,在最左侧的二进制位上补符号位(正数补0,负数补1)。

>>>(无符号右移)

最右侧的二进制位舍去,在最左侧的二进制位上补0。

7.条件运算符

条件运算符包括:(? : )

<表达式1> ? <表达式2> : <表达式3>

如果表达式1为真(true),则结果为表达式2的结果;

如果表达式1为假(false),则结果为表达式3的结果。

8.运算符的优先级

优先级 运算符 结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 «、»、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右向左

终于把运算符的总结也写完了,把运算符学好,也代表着我们也开始入坑Java了,一起加油!

                                                   

你可能感兴趣的:(JavaSE,java)