java基础之运算符
明确:
++前与后++的区别
& 与 &&的区别
1.算数运算符
+(正号)、-(负号)、+、-、*、/、%、+(连接)、++(前)、++(后)、--(前)、(后)--
/:(会进行截断操作)
int a=18;
int b=10;
int c=a/b; //c=1
%:(符号取决于被取余数的符号)
int a=-18;
int b=7;
int c=a%b; // c=-4
++(前): 先自增再运算
(后)++:先运算再赋值
i=10 i1=11
i=12 i1=12
i=20 i2=19
i=18 i2=18
2.赋值运算符
=、+=、-=、*=、/=、%=
+=:并不会改变变量的数据类型
其余同理
思考1:
①:编译不通过,整数2是int类型需要用int来接收
②:编译通过不会改变变量的数据类型
思考2:
与思考1中的②同理:不会改变数据类型
i=0;
i=1;
思考3:
m++要先运算再自增
n=n*m++ ;//n=3*2 m++
m=3
n=6
思考4:
n=n+(n++)+(++n); //n=10+10+12
3.比较运算符
==、>、<、>=、<=、!=
4.逻辑运算符
& && | ||
&与&&:
1.返回的结果都一样
2.当左边的表达式为false时,&还会执行右边的表达式,&&不会执行右边的表达式
| 与 ||:
当左边的表示为true时,|还有执行右边的表达式,||不会执行右边的表达式
x=2,y=2 x=2,y=1
x=7,y=2 x=7,y=1
①z==42(true)
②z++ :43
③y:true
④z++:44
⑤x:false
⑥++z:45
⑦z==45:true
⑧z++:46
5.位运算符(操作的都是整形数据)
<<(左移)、>>(右移)、>>>(无符号右移)、&(与:同时为1才为1)、|(或同时为0才为0)、^(异或:两个不同才为1)、~(非)
<<(左移) :往左移动几位屁股后面补几个0
2<<2 // 2*2^2
8>>2 // 8/2^2
面试题: 8*2最高效的计算方式: 2<<3
6.条件运算符/三元运算符/三目运算符
(条件表达式)?表达式1:表达式2