算术运算符
+ 正号
- 负号
+ 加
- 减
* 乘
/ 除
% 取模
++ 自增
-- 自减
+ 字符串相加
例子⑴:
int x = 4270
x = x / 1000 * 1000
system.out.println(x);
/* 原理:x与1000都是int类型的数据,所以余数也是int类型*/
例子⑵: 自增(++)
int a = 3,b;
b = a++ // a++ ; a=a+1
例子⑶: 字符串加号(+)
system.out.println(“haha”+“haha”) // +是把2个字符串进行连接
例子⑷: 字符串加号(+)
int a = 3,b;
b = a++
system.out.pirntln(a+“,”+b) // 输出结果a=4;b=3
原理:字符串数据和任何数据使用+都是相连接,最终都会变成字符串
赋值运算符
-= += *= /=
short x = 4;
x = x + 5 // x;short类型, 5;默认为int类型,可能损失精度
x+=5 // 只是把5的值赋给x+,过程中计算机会自动转化数据类型
比较运算符
== 相等于
!= 不相于
〈 小于
〉 大于
〈 = 小于等于
〉= 大于等于
比较运算符的结果都是boolean型,也就是要么true,要么是false
逻辑运算符(用于连接boolean类型的表达式)
& : AND(与) 只要两边的boolean表达式结果,有一个位false,那么结果就是 false。
只有两边都为true,结果位true。
| : OR(或) 只要两边有一个为true,结果为true。
只有两边都为false,结果为false。
^ : XOR(异或) 两边相同结果为false。
两边不同结果为true。
! : NOT (非) !true=false。
&& : AND(短路) 当左边为false,右边不运算。
|| : OR(短路) 当右边为true,右边不运算。
位运算符 (直接对二进制进行运算)
>> : 左移 原数据最高位
<< : 右移 原数据最高位
>>>: 无符号右移 最高位0补
& : 与运算
| : 或运算
^ : 异或运算
~ : 反码
左移;右移列子: (<< ;>>)
3<<2=12 // 直接对二进制运算
0000-0000 0000-00000 000-0000 0000-0011
|
<<: 00|00-0000 0000-00000 000-0000 0000-001100 // 向左移动2位,移动后空位0补
|
6>>2=1 // 直接对二进制运算
0000-0000 0000-00000 000-0000 0000-0110
|
>>: 000000-0000 0000-00000 000-0000 0000-01|10 //向右边移动2位,移动后空位0补
|
与运算 列子;( & )
6 & 3 = 2
110
& 011
------------
010 = 2
或运算 列子;( | )
6 | 5 = 7
110
| 101
---------
111 = 7
异或运算 列子;( ^ )
6 ^ 5 =3
110
^ 101
----------
011 = 3
练习题目; 对两个变量的值进行互换
int n=3 ,m=8
temp = n; // 通过第三方变量
n = m ;
m= temp;
n= n+m; // 不通过第三方变量
m=n-m;
n=n-m;
n = n ^ m
m = n ^ m // (n^m )^m
n = n ^m // n^( n^m)