Java基础系列(12)- 运算符

时间:2021-09-06 03:06:12   收藏:0   阅读:16

运算符

自增理解

int a = 3;
int b = a++; // 先赋值,再自增,相当于在后面执行一句a = a + 1
//a = a + 1
System.out.println(a); // 4
// a = a + 1
int c = ++a;// 先自增,再赋值,相当于在前面执行一句a = a + 1

System.out.println(a); // 5
System.out.println(b); // 3
System.out.println(c); // 5

注意点:

short a = 10;
a = a + 1; // 编译报错
a = (short)(a + 1); // 成功
a++; // 成功,自增不会改变原来的数据类型
 

位运算

A  = 0011 1100
B  = 0000 1101
A&B= 0000 1100  与,位都为1,才为1
A|B= 0011 1101  或,有一个为1,则为1
A^B= 0011 0001  异或,位相同则为0,不同则为1  公式:m = (m^n)^n 
~B = 1111 0010  非,取反
// << 左移  在一定范围内(如果1移动到符号位,即最高位,就变成负数了,所以说一定范围内),相当于*2,右边移动之后空出来的地方用0补齐
// >> 右移  在一定范围内相当于/2,如果是正数,左边移动之后空出来的地方用0补齐;如果是负数,左边移动之后空出来的地方用1补齐;
// >>> 无符号右移  在一定范围内相当于/2,左边移动之后空出来的地方用0补齐;
0000 0000 0
0000 0001 1
0000 0010 2  1左移一位<<  就是4
0000 0011 3
0000 0100 4  1左移一位<<  就是8
0000 1000 8
0001 0000 16    

字符串连接

int a = 10;
int b = 20;

System.out.println(a+b+""); // 30
System.out.println(""+a+b); // 1020
 

三元运算符

// x?y:z
// 如果x为真,则y,否则z
int score = 59;
String type = score>60 ? "及格":"不及格";
System.out.println(type);

优先级

技术分享图片

原文:https://www.cnblogs.com/gltou/p/15224000.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!