Java基础教程【第三章:Java运算符】_java运算符在第几章,红黑树详细分析(图文详解)

1. 算术运算符

加号(+)、 减号(-)、 乘号(*)、 除号(/) 、取模(%) 、自增运算符(++) 、自减运算符(- -)

1.1. 除号(/)

取商运算

int a = 10;
int b = 3;
System.out.println(a / b); // 3

1.2 取模(%)

取余运算

int a = 10;
int b = 3;
System.out.println(a % b);// 1

1.3 自增运算符(++)、自减运算符(- -)

a++自增就相当于a=a+1;a- -相当于a=a-1;

int a=10;
int b=3;
a++;
b--;
System.out.println(a);//11
System.out.println(b);//2

1.4 前缀++、- -与后缀++、- -的区别:

++i(前缀++)在使用 i 之前,使 i 的值加 1,因此执行完++i 后,整个表达式和 i 的值均为 i+1;

i++(后缀++)在使用 i 之后,使 i 的值加 1,因此执行完 i++后,整个表达式的值为 i,而 i 的值变为 i+1

–i 在使用 i 之前,使 i 的减 1,因此执行完–i 后,整个表达式和 i 的值均为 i-1;

i–在使用 i 之后,使 i 的减 1,因此执行完 i–后,整个表达式的值为 i,而 i 的值变为 i-1

练习:
1)

int i =1;
System.out.println(i++);

2)

int i = 1;
for (; i < 5; i++) {
System.out.println(i);
}
System.out.println(i);

2. 逻辑运算符

2.1 逻辑与运算符&

两者都为true才为true:
0&0=0, 0&1=0, 1&0=0, 1&1=1

2.2 逻辑或运算符|

两者都为false才为false:
1|1=1, 1|0=1, 0|1=1, 0|0=0

2.3 逻辑非运算符!

对值进行取反:
!1=0,!0=1

2.4短路与运算符&&

如果左边表达式的值为 false,则不必对右边的表达式求值,整个表达式的结果为 false。

2.5短路或运算符||

如果运算符左边的表达式的值为 true,则整个表达式的结果为 true,不必对运算符右边的表达式再进行运算。

在这里插入图片描述
练习:

int a = 1;
int b = 2;
int c = 3;
//System.out.println(b++ < a++ && c++ < a++);
//System.out.println(a + "\t" + b + "\t" + c);
//System.out.println(b++ < a++ & c++ < a++);
//System.out.println(a + "\t" + b + "\t" + c);

在这里插入图片描述

3. 关系运算符

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210125195540494.png

4. 位运算符

4.1按位与运算(&)

参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0。
即:0&0=0,0&1=0,1&0=0,1&1=1

4.2按位或运算(|)

参与运算的两个值,如果两个相应位都是 0,则该位结果为 0,否则为 1。
即:0|0=0,0|1=1,1|0=1,1|1=1

4.3按位异或运算(^)

参与运算的两个值,如果两个相应位的某一个是 1,另一个是 0,那么按位异或(^)在该位的结果为 1。也就是说如果两个相应位相同,输出位为 0,否则为 1。
即:0 ^ 0=0,0 ^ 1=1,1 ^ 0=1,1^1=0

4.4按位取反运算(~)

按位取反运算(~)属于一元运算符,它只对一个自变量进行操作(其他所有运算符都是二元运算符)。按位取反生成与输入位的相反的值——若输入 0,则输出 1;输入 1,则输出 0。
即:~ 0=1,~1=0

4.5左移位运算符(<<)

运算符<<执行一个左移位。作左移位运算时,高位溢出,低位补零,右边的空位补 0。在不产生溢出的情况下,数据左移 1 位相当于乘以 2。其实就是计算机组成原理中的逻辑左移

例如:
int a=64,b; b=a<<1; //b=128 

4.6右移位运算符(>>与>>>)

运算符>>执行一个右移位(带符号),操作数的构成二进制位右移若干位,低位溢出舍弃,高位补充原来高位的值。(右移一位相当于除 2 取商)

例如:
int a=16,b; b=a>>2; //b=4

5. 赋值运算符 =

最后总结

搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析

最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化

image

a=16,b; b=a>>2; //b=4


## 5. 赋值运算符 =




# 最后总结

搞定算法,面试字节再不怕,有需要文章中分享的这些**二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析**

最后再分享一份**终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化**

[外链图片转存中...(img-6D9h1ULy-1727113116276)]



> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)收录**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值