乐趣区

JavaSe笔记03-关于操作符,运算符和位运算符

运算符
Java 运算符,是一种特殊的符号。用表示数据的运算,赋值和比较。

算数运算符
赋值运算符
比较运算符
位运算符
逻辑运算符
三目运算符

1. 算数运算符
符号:加(+), 减(-), 乘(*),除(/),取余(%)
自增:++
自减:–

作用在于:整数和浮点型。
最终的结果: 十进制。只要是 byte,short,int,long,char,float,double 相加结构都是十进制。
所有的运算的结果的最小范围一定是:—int
a. 自增:++

不同行:
int a =1;
a++;
++a;
System.out.println(a); //3 a++ 与 ++a 在不同行效果是等价的。

相同行:在运算中,或者逻辑判断中,或者方法的传参中就存在差异了
int a =5;
int b = a++ + 6;
System.out.println(b); // 11
System.out.println(a); // 6

int a1 =5;
int b1 = ++a1 + 6;
System.out.println(b1); // 12
System.out.println(a1); // 6

分析 [int b = a++ + 6;] 运算步骤: 先运算再递加。
step1: a + 6 = 11
step2: a++ = 6
因此结果是 b=11,a=6

分析 [int b = ++a + 6;] 运算步骤: 先递加再运算。
step1: ++a1 = 6
step2: a1+ 6 = 12
因此结果是 b1=12,a1=6

b. 自减:– 跟自增 ++ 同理
2. 赋值运算符

等号 =,只要赋值了就修改内存控制的二进制
基础数据类型的默认值:byte short int long 都是 0 float double == 0.0 boolean == false char==u0000 空格

赋值运算符的扩展:
+=,-=,*=,/=,%=

3. 比较运算符
< > == >= <= != 用于条件判断中
a. == 逻辑判断,是内存地址的比较 -(二进制),还需考虑前面的数据类型。b. = 赋值
“==” 数字是值的比较,对象 (封装数据类型) 是内存地址的比较。如果是基础数据类型值比较 ==,值相等那么都是 true, 如果是封装数据类型都是 false—hashCode()
4. 逻辑运算符

短路:或 || 且 && 非!
不短路:或 | 且 & 非 ^ (从性能上讲,不推荐使用。)

5. 三目运算符
格式:(逻辑判断(boolean))?true:fakse;
6. 位运算符(7 个) — 计算
>> 右移运算符
>>> 无符号右移
<< 左移, 二进制整体往左边移动两位,空白位用 0 填充。
& 按位与,如果两个同时为 1 返回就是 1,其他的都是 0。
| 按位或,如果有一位是 1 那么就是 1,其他的都是 0。
^ 按位异或,两个相同的时候 0,不同时返回 1。
~ 按位非,单数字取反
作用:快速计算一个数字想要得到结果,最终都是以二进制的方式进行计算。
思路: 把十进制转成二进制,再进行移位操作。

true & false — 逻辑符合
5 & 9 — 位运算

退出移动版