算术运算符
基础运算之加 减 乘 除 取余( + - * / %)
- 运算符之相加( + )
public static void main(String[] args) { System.out.println("Hello world!"); int a = 10; int b = 20; int c = a + b; System.out.println(c);//输出30 }
- 最基础的运算符 + 用来相加两个数。可以用来计算整型与浮点型数值,与数学中的运算规则一样
- 运算符之相减 ( - )
public static void main(String[] args) { System.out.println("Hello world!"); int a = 10; int b = 20; int c = b - a; System.out.println(c);//输出10 }
- 最基础的运算符 - 用来相加两个数。可以用来计算整型与浮点型数值,与数学中的运算规则一样
- 运算符之乘法( * )
public static void main(String[] args) { System.out.println("Hello world!"); int a = 7; int b = 20; System.out.println(a * b);//输出140
- 最基础的运算符 * 用来相加两个数。可以用来计算整型与浮点型数值,与数学中的运算规则一样
- 运算符之除法( / )
public static void main(String[] args) { System.out.println("Hello world!"); int a = 7; int b = 20; System.out.println(a/b);//输出0 System.out.println(b/a);//输出2
- Java中整数的除法跟数学中的除法不太一样,在不够整除时会把余数去掉,只留下整除部分,如上上面的代码中不够整除所以输出2和0;
- 运算符之取模(取余数)( % )
public static void main(String[] args) { System.out.println("Hello world!"); int a = 7; int b = 20; System.out.println(a % b);//输出7 System.out.println(b % a);//输出6
- 取模就是就取余, 跟 除法 相对,去掉整数部分,只留余数部分
- 除法和取模需要注意以下几点
- 运算符的右数不能为0
- 与浮点数进行计算时会转为浮点类型
增量运算符
- 加强版运算符之 += 、 -= 、*= 、/= 、%=
- 增量之加等 +=
- 其它四种也是相同概念
- 增量运算符之自增(++)自减(--)
- 主要是区分符号是在变量的前面还是后面,在前面称为前置,先对变量进行加一或者减一,后置则是变量先使用,在使用完之后在加一或者减一。
关系运算符
- 关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。
public static void main(String[] args) { System.out.println("Hello world!"); int a = 10; int b = 20; // 注意:在Java中 = 表示赋值,要与数学中的含义区分 // 在Java中 == 表示相等 System.out.println(a == b); // false System.out.println(a != b); // true System.out.println(a < b); // true System.out.println(a > b); // false System.out.println(a <= b); // true System.out.println(a >= b); // false
注意:当需要多次判断时,不能连着写,比如: 3 < a < 5 , Java 程序与数学中是有区别的逻辑运算符
- 逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型
- 逻辑之逻辑与&&
语法规则:表达式 1 && 表达式 2 ,左右表达式必须是 boolean 类型的结果。 相当于现实生活中的并且,需要满足两个条件。如:颜值和才华,必须都具备才是真 两个表达式都为真,结果才是真,只要有一个是假,结果就是假。![]()
![]()
- 逻辑之逻辑或 ||
语法规则:表达式 1 || 表达式 2 ,左右表达式必须是 boolean 类型的结果。 相当于现实生活中的或,有两个条件只需满足一个就可以,如颜值和才华,有一个就为真![]()
public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真 System.out.println(a == 1 || b > 110); // 左为真 但 右为假 则结果也为真 System.out.println(a > 210 || b == 2); // 左为假 但 右为真 则结果也为真 System.out.println(a > 10 || b > 20); // 左为假 且 右为假 则结果为假
- 逻辑之逻辑非 !
- 语法规则:! 表达式 ------ 作用:真变假,假变真
位运算符
Java 中数据存储的最小单位是字节,而数据操作的最小单位是比特 . 字节是最小的存储单位,每个字节是由 8 个二 进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。 位运算符主要有四个 : & | ~ ^ 位操作表示 按二进制位运算 . 计算机中都是使用二进制来表示数据的 (0和1 构成的序列 ), 按位运算就是在按照二进制位 的每一位依次进行计算- 位运算符之按位与 &
- 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
- 位运算符之按位或 |
- 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1.
![]()
![]()
注意 : 当 & 和 | 的操作数为整数 (int, short, long, byte) 的时候 , 表示按位运算 , 当操作数为 boolean 的时候 , 表示逻辑运算. 位运算符之按位取反 ~ 如果该位为 0 则转为 1, 如果该位为 1 则转为 0![]()
![]()
- 所以最后输出负数21
- 位运算符之按位异或 ^
- 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.
移位运算符
移位运算符有三个 : << >> >>> ,都是按照二进制比特位来运算的。- 移位运算符之左移 <<: 最 左 侧 位 不 要 , 最 右 侧 补 0
- 可能出现符号位变成1,直接变成负数
- 移位运算符之左移 >>
- 最 右侧 位 不 要 , 最左侧补符号位(正数补0, 负数补1)
- 移位运算符之无符号右移 >>> :最右侧位不要了, 最左侧补 0
- 跟右移相似,但是符号位始终补0,这样不会出现负数
左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替. 移动负数位或者移位位数过大都没有意义.
条件运算符
条件运算符只有一个 : 表达式1 ? 表达式 2 : 表达式 3 当 表达式 1 的值为 true 时 , 整个表达式的值为 表达式 2 的值 ; 当 表达式 1 的值为 false 时 , 整个表达式的值为 表达式 3 的值 . 也是 Java 中唯一的一个 三目运算符 , 是条件判断语句的简化写法 .![]()
表达式 2 和表达式 3 的结果要是同类型的,除非能发生类型隐式类型转换 表达式不能单独存在,其产生的结果必须要被使用
算符的优先级运
运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号,自己不同清楚的情况下加上括号,按照自己需要的顺序来执行