1.1 运算符的基本概念:
= 和 + 都是运算符.
1+1 称之为表达式, 最后要有一个运算结果.
int num=1+1; 这一条语句要用 ";" 作为一条语句的结束.
运算符两边的数称之为操作数. 将运算符左右的一个操作数称为单目 / 单元, 两个操作数称为双目 / 双元.
1.2 运算符的分类:
算数运算符:+ - */ % + --
关系运算符:> <== <=>= != instanceOf
逻辑运算符:& | ! ^ && ||
赋值运算符: =
拓展运算符: += -= *= /= %=>>= <<= ^+ !=
位运算符:& | ^>> <<<<< !
条件运算符: ?:
i. 赋值运算符
= 号将运算符右侧的结果赋值给左边的变量进行存储.
运算时自右向左进行的
int num=10;
ii. 算数运算符
- +
- public class Demo05 {
- public static void main(String[] args) {
- // 正号
- int num=+5;
- System.out.println(num);
- // 加法运算符
- num=2+3;
- System.out.println(num);
- // 连接符
- System.out.println("1+1="+1+1);
- }
- }
注意事项:
正号: 在数值前面编写
加法运算: 保证 + 号左右两边都是一个具体的值.
连接符:+ 号左右两边有一个操作数为字符串类型时,+ 号就是连接符, 它会把左右两边的操作数都当成字符串, 进行拼接, 所以 + 号为拼接符的时候最好用括号先计算运行结果.
- -
- public class Demo05 {
- public static void main(String[] args) {
- // 减法运算符
- int num=3-2;
- System.out.println(num);
- // 负号
- num=-5;
- System.out.println(num);
- }
- }
- */ %
- public class Demo05 {
- public static void main(String[] args) {
- // 乘法运算
- int num=1*1;
- System.out.println(num);
- // 除法运算
- num=2/1;
- System.out.println(num);
- // 取余
- num=3%2;
- System.out.println(num);
- }
- }
- ++ --
++ -- 都是单目运算符
++ -- 的区别和联系
联系
++ 是在原来变量基础上 + 1.
-- 是在原来变量基础上 - 1.
当 ++ 和 -- 是单独一条语句时,++ -- 是单目运算符, 不管放前面还是放后面都是自身加一, 自身减 1.
区别
num++ => num++ 最后有一个结果 num 本身存在一个结果; num++ 表达式的值和 num 是有关系 num++ 表达式的值 = num 的值
++num 不是单独一条语句是, 前加, 先自增 再运算.
num++ 不是单独一条语句时, 后加, 先运算 再自增
--num 不是单独一条语句是, 前减, 先自减 再运算.
num-- 不是单独一条语句时, 后加, 先运算 再自减 .
iii. 扩展运算符
其实就是算数运算符和位运算符加上赋值运算符的结合体
- public class Demo05 {
- public static void main(String[] args) {
- // 计算两个学生的分数之和
- int a=80;
- int b=70;
- int sum=0;
- sum=sum+a;
- sum=sum+b;
- System.out.println(sum);
- int sum1=0;
- sum1+=a;
- sum1+=b;
- System.out.println(sum1);
- }
- }
扩展运算符的优缺点
优点:
提高了编译速度
提高了编写效率
自动强制类型转换 (即是有点也是缺点)
缺点:
不利于阅读
iv. 关系运算符
<== <=>= != instanceOf
注意事项:
最后的结果是一个 boolean 类型的值 true 和 false
!= == 既可以比较基本数据类型 也可以比较引用类型
<>>= <= 只能比较基本数据类型 (布尔类型除外)
v. 逻辑运算符
逻辑运算符中包括了 (& | ! ^ && ||), 逻辑运算符左右变量的操作数有且只能是 boolean 类型的值. 当
&,|,^ 左右两边的操作数不是 boolean 类型, 是数值型时要注意, 此时 &,|,^ 不是逻辑运算符而是
位运算符.
逻辑运算符最后的结果:
& 和 && 是两边都为 true 才为 true.
| 和 || 是两边只要有一个 true 就为 true.
^ 是两边相同为 false, 两边不同为 true.
! 为取反.
&& 和 & 的联系和区别以及 | 和 || 的联系和区别.
联系
&& 和 & 都是两边都为 true 才为 true.
|| 和 | 都是两边有 true 就为 true.
区别
&& 是当第一个操作数为 false, 将不会看第二个操作数, 直接为 false.
|| 是当第一个操作数为 true 时, 将不会看第二个操作数, 直接为 true.
vi. 条件运算符
?:
是 java 中的唯一一个三目运算符.
< 表达式 1>?< 表达式 2>:< 表达式三 >
在运算中, 首先对第一个表达式进行检验, 如果为真则返回表达式二的值, 如果为假, 则返回表达式三的值.
来源: http://www.bubuko.com/infodetail-3557541.html