Java基础06-运算符

运算符

算数运算符 +、-、*、/、%、++、--
赋值运算符 =
关系运算符 >、<、>=、<=、==、!=、instanceof(面向对象)
逻辑运算符 &&、||、!
位运算符 &、|、^、~、>>、<<、>>>
条件运算符 ? :
扩展赋值运算符 +=、-=、*=、/=

 

1.二元运算符

1.整数运算:

如果两个操作数中有一个为Long,则结果为Long。

没有Long时,结果为int。

2.浮点运算:

如果两个数有一个为double,则结果为double。

只有两个数都为float,结果才为float。

3.关系运算符:

返回的是布尔值。

 

2.取模运算

负数 % 负数 = 负数;

负数 % 正数 = 负数;

正数 % 负数 = 正数;

 

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

 

4.逻辑运算符

短路逻辑运算符(&&)采用短路方式。如果已判断出第一个条件为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

 

5.位运算符

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 效率最快。

 

6.扩展运算符

运算符 用法 等效表示
+= 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

 

7.字符串连接符

常见面试题

int a = 10;
int b = 20;
System.out.println(" " + a + b); //输出1020。只要出现一个String类型字符串,则后面的都转换为字符串
System.out.println(a + b + " "); //输出30。先进行了a+b运算,再进行转换,最后结果仍为30。

 

8.三目条件运算符

语法格式:

x ? y : z       //如果x为true,则取y的值,如果x为false,则取z的值。
score = 80;
type = score < 60 ? "不及格" : "及格";

 

9.运算符优先级

括号 > 一元 > 乘性 > 加性 > 移位 > 关系 > 相等 > 按位与 > 按位异或 > 按位或 > 逻辑与 > 逻辑或 > 条件 > 赋值

 

10.感想

今天在袜子的吊牌上看到一句话,”只是坚持,仅此而已!Just hold on, that's all! “。无论是做什么行业,干什么事情,都要保持这种不忘初心、坚持不懈的优秀品质。今天很累,但是收获也很多。明天会更加累(满课),但是会学到更多新的东西,让自己的生活变得更充实,更美好。希望今天的努力,可以换来未来的好消息。

Java基础06-运算符

 

 
上一篇:第八节 Java基础语法5


下一篇:很多博文都是错的,ConcurrentHashMap的容量为什么是2的n次幂