Java中的运算符简介

算术运算符

//  +  -  *  /  %
//int/int结果还是int
int a = 1;
int b = 2;
System.out.println(a / b);
//结果为0,要想得到小数需要double类型

//0不能作为除数,会出现编译错误

// %表示取余,不仅仅可以对int求模,也能对double求模
System.out.println(11.5 % 2.0);

//增量赋值运算符
//  +=  -=  *=  /=  %=
int a = 10;
a += 1;   //等价于a = a + 1
System.out.println(a);

//自增/自减运算符
//  ++  --
int a = 10;
int b = ++a;
System.out.println(b);
int c = a++;
System.out.println(c);

//如果不取自增运算的表达式的返回值,则前置自增和后置自增没有区别
//如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值

关系运算符

//  ==  !=  <  >  <=  >=
int a = 10;
int b = 20;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a < b);
System.out.println(a > b);
System.out.println(a <= b);
System.out.println(a >= b);

//需要注意的是,关系运算符的表达式的返回值都是boolean类型

逻辑运算符
逻辑与 &&
两个操作数都为true,结果为true,否则结果为false

int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b <c);

逻辑或 | |
两个操作数都为false,结果为false,否则结果为true

int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b || b <c);

逻辑非 !
操作数为true,结果为false,操作数为false,结果为true(单目运算符,只有一个操作数)

int a = 10;
int b = 20;
int c = 30;
System.out.println(!a < b);

短路求值
对于&&,如果左侧表达式值为false,则表达式的整体值一定是false,无需计算右侧表达式
对于||,如果左侧表达式的值为true,则表达式的整体值一定是true,无需计算右侧表达式

System.out.println(10 > 20 && 10 / 0 == 0);
//打印false
System.out.println(10 < 20 || 10 / 0 == 0);
//打印true

位运算符
按位与 &
如果两个二进制位都是1,则结果为1,否则结果为0

int a = 10;
int b = 20;
System.out.println(a & b);
//按二进制位运算,需要先把10和20转成二进制,分别为01010 和 10100

按位或 |
如果两个二进制位都是0,则结果为0,否则结果为1

int a = 10;
int b = 20;
System.out.println(a | b);
//与按位与运算类似

//当&和|的操作数为整数的时候,表示按位运算,当操作数为boolean的时候,表示逻辑运算

按位取反 ~
如果该二进制位为0则转为1,如果为1则转为0

int a = 0xf;
System.out.println("%x\n",~a);
//0x表示十六进制数字,0表示八进制数字

按位异或 ^
如果两个数字的二进制位相同则结果为0,相异则结果为1

int a = 0x1;
int b = 0x2;
System.out.println("%x\n",a ^ b);

移位运算符

//左移  << 
//最左侧位不要了,最右侧补0

//右移  >>
//最右侧位不要了,最左侧补符号位(正数补0,负数补1)

//无符号右移  >>>
//最右侧位不要了,最左侧补0

左移1位,相当于原数字2,左移N位,相当于原数字2的N次方
右移1位,相当于原数字/2,右移N位,相当于原数字/2的N次方

条件运算符
条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
是Java中唯一一个三目运算符,是条件判断语句的简化写法

//求两个数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值