1.算数运算符
1.1 基本运算符
"+":
-- 数值类型 + 数值类型: `+`: 加法
-- 字符串+任意类型 任意类型 + 字符串: `+`: 连接符
★任何类型与字符串相加, 结果都是字符串
"/":
--如果 /两边都是整型 此时除做整除操作, 结果取商整数,小数去掉 5/2=2
--如果 /任意一边为浮点类型,此时除就是数学的除法 5/2.0=2.5
1.2 自加自减操作(++,--)
++:加一操作;
--:减一操作;
★★有两种操作,一种后加加(减减),另一种前加加(减减),两者有一定区别(面试题)
后加加(变量名++ ): 先赋值再加1
前加加(++变量名): 先加1后赋值
区别案例:
-
案例 int a = 2;
-
int b = a++ + ++a;
-
输出时a=4,b=6,因为此时的a++为2,++a为4(可以自己运行程序去实际操作加思考)
2.赋值运算符
★★面试题
-
a+=b; 和 a=a+b;有什么区别?
-
区别: 如果a,b的数据类型不一样,a数据类型级别低于b的时候,a=a+b;报错, 而a+=b;不报错,进行隐式的数据类型转换,把高级别数据类型强制转换成低级别(如图所示)
3.关系运算符
★字符串(String)的比较不是使用‘==’或者‘!=’
使用,字符串.equals(字符串)
4.逻辑运算符
逻辑运算符类型为Boolean(布尔类型),结果只有true或者false
★★面试题
-
面试题: &&与&的区别
-
1. &&是短路 而&不会短路
-
2. &&只作为逻辑运算符 ,&逻辑运算符还可以作为位运算(二进制位运算) ,&&短路:在逻辑判定中,如果前面一个为假,会直接输出假,后面的关系运算不进行,就像物理电路的电路图一样.
5.位运算
-
&: 按位与: 1:true 0:false
-
|: 按位或
-
^: 按位异或: 相同为0,不同为1 特征:一个数对另问一个数异或两次,得到自己 n^m^m=n
6.三目运算符(三元运算符)
表达式1 ? 表达式2:表达式3;
表达式1: 结果类型必须是boolean
如果表达式1结果为true, 三目运算符表达式的结果 = 表达式2值
如果表达式1结果为false, 三目运算符表达式的结果 = 表达式3值