java运算符
对常量和变量进行操作的符号
分类:
算数运算符、
赋值运算符、
比较运算符、
逻辑运算符、
位运算符、
三目运算符
算数运算符
+、-、*、/、%、++、–
四舍五入的方法+0.5
%:取余数 如8%3=2
++:自增1 –自减一
++、–如果单独运算在操作数的前后是没区别的
int a = 3;
int b = 4;
int c = a++;
int d = b++;
System.out.println(c);//3
System.out.println(d);4
如果“++”或“–”放在操作数的后面:
int a= 3;
int b = 4;
int c =++a;
int d =--b;
System.out.println(c);//4
System.out.println(d);5
赋值运算符:
+、-、+=、-=、
int a = 3;将等号右面的值赋给在左面
a+=3;//等价于a = a+3;
+=、-=、/=、默认包含一个强制类型转换
关系(比较)运算符:
==、!=、>、<、>=、<= (关系运算符的结果只能是boolean类型)
int a = 3;
int b = 4;
System.out.println(a<b)//数值的比较,直接比较值输出flase
publice class Men{
Men m1 = new Men();
m1.name="尊敬的柯里昂"
Men m2 = new Men();
m2.name="尊敬的柯里昂"
System.out.println(m1.name=m2.name)
//引用数据类型比较的就是内存地址了这样即使内容一样输出的也会是flase
逻辑运算符
&:逻辑与(和)、|逻辑或、!逻辑取反(非)、 ^异或、&&短路与、||短路或
逻辑运算符左右两边只能是boolean表达式或者常量
逻辑与& 只要有一个flase结果就是flase
System.out.println(a>b&a
位运算
位运算是直接对二进制进行运算。其操作数和运算结果都是整型值。
//&与运算 有0则0(一般情况0代表假、1代表真)
int a = 3;
int b = 4;
System.out.println(a&b);
//|或运算 有1则1
// ^ 异或 同一个数据与另一个数据异或两次,最终的结果还是原值
三目运算符
(关系表达式)?表达式1:表达式2;
int a;
int b;
int c=(a>b)?a:b;//如果a>b为真则max=a,否则max=b
位与’&’,位或’|’,位非’~’,位异或’^’,右移’>>’,左移’<<’,无符号右移’>>>’
运算符 | 运算 | 范例 |
---|---|---|
<< | 左移 | 3<< 2 = 12 –>3 * 2 * 2=12 |
> | 右移 | 3>> 1 = 1 –> 3/2=1 |
> | 无符号右移 | 3 >>> 1 = 1 –> 3/2=1 |
& | 与运算 | 6 & 3 = 2 |
| | 或运算 | 6 | 3 = 7 |
^ | 异或运算 | 6 ^ 3 = 5 |
~ | 反码 | ~6 = -7 |
运算符 | 运算方法 |
---|---|
<< | 空位补零,被移除的高位丢弃 |
> | 被移位的二进制最高位是0,右移后,空缺位补0; |
> | 被移位二进制最高位无论是0还是1,空缺位都补0; |
& | 任何二进位和0进行“&”运算,结果都是0; |
| | 任何二进制和0进行|运算,结果是原值; |
^ | 任何相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1。 |