算数运算符 | +、-、*、/、%、++、-- |
---|---|
赋值运算符 | = |
关系运算符 | >、<、>=、<=、==、!=、instanceof(面向对象) |
逻辑运算符 | &&、||、! |
位运算符 | &、|、^、~、>>、<<、>>> |
条件运算符 | ? : |
扩展赋值运算符 | +=、-=、*=、/= |
1.整数运算:
如果两个操作数中有一个为Long,则结果为Long。
没有Long时,结果为int。
2.浮点运算:
如果两个数有一个为double,则结果为double。
只有两个数都为float,结果才为float。
3.关系运算符:
返回的是布尔值。
负数 % 负数 = 负数;
负数 % 正数 = 负数;
正数 % 负数 = 正数;
1.自增自减:
int b = a++; //先给b赋值,再自增。相当于: int b = a; a = a + 1; int b = ++a; //先自增,再给b赋值。相当于: a = a + 1; int b = a;
2.乘幂处理:
不能用^。要使用工具类来操作。
double b = Math.pow(3,2); //相当于3^2,结果为9.0
短路逻辑运算符(&&)采用短路方式。如果已判断出第一个条件为false,则不再计算第二个条件。
int a = 5; boolean b = (a < 4) && (a++ < 10); System.out.println(b); //输出为"false" System.out.println(a); //输出为5。判断出(a<4)为false后不再执行第二个 判断,直接判定b为false
A:0011 1100
B:0000 1101
操作符 | 含义 | 描述 | 示例 |
---|---|---|---|
& | 与 | A,B上下逐位比较,都为1则1,其余为0 | A&B = 0000 1100 |
| | 或 | A,B上下逐位比较,都为0则0,其余为1 | A|B = 0011 1101 |
^ | 异或 | A,B上下逐位比较,相同则0,不同为1 | A^B = 0011 0001 |
~ | 非 | 1变0,0变1 | ~A = 1100 0011 |
<< | 左移 | 按位左移 | A<<2 = 1111 0000 |
>> | 右移 | 按位右移 | A>>2 = 1111 |
>>> | 右移补0 | 按位右移,空位补0 | A>>>2 = 0000 1111 |
int a = 2 * 8;怎样计算效率最快?
0000 0000 --> 0
0000 0001 --> 1
0000 0010 --> 2
0000 0100 --> 4
0000 1000 --> 8
0001 0000 --> 16
左移1位,则*2;右移1位,则/2。
2 * 8 --> 2 << 3 效率最快。
运算符 | 用法 | 等效表示 |
---|---|---|
+= | a += b | a = a + b |
-= | a -= b | a = a - b |
*= | a *= b | a = a * b |
/= | a /= b | a = a / b |
%= | a %= b | a = a % b |
int a = 10; int b = 20; System.out.println(" " + a + b); //输出1020。只要出现一个String类型字符串,则后面的都转换为字符串 System.out.println(a + b + " "); //输出30。先进行了a+b运算,再进行转换,最后结果仍为30。
语法格式:
x ? y : z //如果x为true,则取y的值,如果x为false,则取z的值。
score = 80; type = score < 60 ? "不及格" : "及格";
括号 > 一元 > 乘性 > 加性 > 移位 > 关系 > 相等 > 按位与 > 按位异或 > 按位或 > 逻辑与 > 逻辑或 > 条件 > 赋值
今天在袜子的吊牌上看到一句话,”只是坚持,仅此而已!Just hold on, that's all! “。无论是做什么行业,干什么事情,都要保持这种不忘初心、坚持不懈的优秀品质。今天很累,但是收获也很多。明天会更加累(满课),但是会学到更多新的东西,让自己的生活变得更充实,更美好。希望今天的努力,可以换来未来的好消息。