Java语法基础-2(运算符)

运算符

算术运算符

在这里插入图片描述

赋值运算符

在这里插入图片描述
注意:
当我们计算以下代码的时候

short a = 10;
a = a + 10; 

我们会因为没有进行强制类型转换系统会报错,但是当我们使用+=的时候,如下,却不会报错,因为使用此类赋值运算符的时候不会改变本身的数据类型

short a = 10;
a += 10;

比较运算符(关系运算符)

比较运算符的结果都是boolean型,要么是true,要么是false
在这里插入图片描述

逻辑运算符

在这里插入图片描述

  • & 当两个都为true才为true
  • && 当两个都为true才为true,与&的区别是,当&&左侧为false的时候,不会再计算右侧,直接返回false。而&左右两侧都会计算
  • | 当有一个为tuue的时候就为true
  • || 当有一个为tuue的时候就为true,与|的区别同上
  • ! 当为false的时候才为true
  • ^ 当一个为true另一个为false的时候结果才会为true,当两个都为true或者都为false的时候结果为false

位运算符

位运算符是直接对整数的二进制进行运算
在这里插入图片描述
在这里插入图片描述

左移右移运算符

当使用<<运算符的时候,其实就是运算符左侧是几,就拿左边的数去乘2的几次方,例如上面的例子:
3 << 2,位运算符左侧是3,右侧是2,就是3 * 2 * 2 = 12
结论:
在一定的范围内,每使用 << 移动一位,相当于 * 2
在一定的范围内,每使用 >> 移动一位,相当于 / 2
为什么是在一定的范围内呢,那是因为二进制也是有长度的,当我们计算3 << 33的时候相当于计算 3 << 2
如果有一道面试题是快速计算 2 * 8,这个时候就可以使用 2 << 3 或者 8 >> 1

无符号右移

其实跟使用 >> 类似,每使用 >> 移动一位,相当于 / 2,但是使用 >> 是有负数的,使用 >>> 没有负数,例如:

-3 >> 2 = -1;
-3 >>> 2 = 1073741823;

与运算

在这里插入图片描述
例如:12 & 5 = 4;
计算二进制,只有1 & 1时结果才为1,否则是0

或运算

在这里插入图片描述
例如:12 & 5 = 13;
计算二进制,只有0 | 0时结果才为0,否则是1

异或运算

在这里插入图片描述
例如:12 ^ 5 = 9;
相同二进制位进行^计算,结果是0; 1 ^ 1 = 0; 0 ^ 0 = 0;
不相同二进制位进行^计算,结果是1;1 ^ 0 = 1; 0 ^ 1 = 1;

取反运算

在这里插入图片描述
例如:~6 = -7;
包括符号位,所有0改为1,1改为0

三元运算符

格式:(条件表达式)?表达式1:表达式2
条件表达式里面是一个boolean类型,当为true时执行表达式1,当为false的时候执行表达式2
例如:获取两个数的最大值

int a = 2;
int b = 3;
int max = (a > b) ? a : b;

例如:获取三个数的最大值

int a = 1;
int b = 2;
int c = 3;
int i = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;

所有使用三元运算符的地方都可以改为if-else,但是所有使用if-else的地方不一定能使用三元运算符
如果一个判断既能够使用if-else又能够使用三元运算符,优先使用三元运算符,三元运算符的运行效率更高

运算符的优先级

以下图片来自百度百科:
在这里插入图片描述
运算符优先级没必要记下来,如果想要哪一个运算优先运算,加一个括号就行了。

总结

关于Java基础知识运算符的总结就先到这了,如果有什么错误的地方,欢迎提出
下一篇将总结关于流程控制的相关知识
Java语法基础(流程控制篇)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值