目录

  • 2.5 运算符
  • 2.5.1、算数运算符
  • 2.5.2、赋值运算符
  • 2.5.3、关系运算符
  • 2.5.4、逻辑运算符
  • 2.5.5、位运算符
  • 2.5.6、三目运算符
  • 2.5.7、优先级


2.5 运算符

2.5.1、算数运算符

算术运算符
	+	加法运算符(字符串相加,数学加号)、正号  
	-	减法运算符、	取反
	*	乘法运算符
	/	除法运算符(结果会因为数据类型原因产生错误,比如用整数会忽略小数部分)
	%	求余
	++	自增: 操作数的值增加1
		++1:先自增,再参与运算		int a = 1;  int b = a++;  int c = ++a;   a=3  b=1 c = 3
		1++:先参与运算,再自增
	--	自减: 操作数的值减少1
		--1:先自减,再参与运算
		1--:先参与运算,再自减

2.5.2、赋值运算符

赋值运算符
	=	将右操作数的值赋给左侧操作数
	+=、-=、*=、/=	把左操作数和右操作数的值相加、减、乘、除、后赋值给左操作数
	%=:取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
	<<=:左移位赋值运算符		C <<= 2等价于C = C <<2
	>>=:右移位赋值运算符		C >>= 2等价于C = C >>2
	&=:按位与赋值运算符		   C&= 2等价于C = C&2
	^=:按位异或赋值操作符
	|=:按位或赋值操作符

2.5.3、关系运算符

使用关系运算符得出的结果都是布尔型,要么是true,要么是false

关系运算符
	==	判断如果两个操作数的值是否相等,如果相等则条件为真。
	!=	判断如果两个操作数的值是否相等,如果值不相等则条件为真。
	>	判断左操作数的值是否大于右操作数的值,如果是那么条件为真。
	>=	判断左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
	<	判断左操作数的值是否小于右操作数的值,如果是那么条件为真。
	<=	判断左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
	instanceof :检查该对象是否是一个特定类型(类类型或接口类型)。
		String name = "Java"
		name instanceof String   结果:true(name是String类型的)

2.5.4、逻辑运算符

逻辑运算符用于连接布尔表达式。

逻辑运算符
	&&:与、且   一假则假,全真才为真
	||:或	   一真则真
	!:非 	  取反

2.5.5、位运算符

位运算符
	&:如果相对应位都是1,则结果为1,否则为0(去)
		a:   0011 1100
		b: 	 1111 1111
		a&b: 0011 1100	
	|:如果相对应位都是 0,则结果为 0,否则为 1
		a:   0011 1100
		b: 	 1111 1111
		a|b: 1111 1111	
	^:如果相对应位值相同,则结果为0,否则为1
		a:   0011 1100
		b: 	 1111 1111
		a^b: 1100 0011
	〜:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
		a:   0011 1100
		~a:  1100 0011
	<<:按位左移运算符。左操作数按位左移右操作数指定的位数。3<<3相当于3乘以2^3
	>>:按位右移运算符。左操作数按位右移右操作数指定的位数。15>>3相当于15除以2^3 
		位移运算符直接操作位,效率很快,在hash等扩容上都是使用的位移(1<<16),所以每次扩容都是2倍。
	>>>:按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

&和&&的区别:

&&是逻辑运算符,与、且的意思。两边表达式一假则假,全真才为真。具有短路功能,如左边运算式为false,则 右边的表达式不参与运算

&是位运算符,按位与,等式两边表达式都为false时可做逻辑与运算,但等式两边都参与计算,无短路功能。

问:2*8怎么运算最快?

**答:按位左移运算符操作最快,把2左移3位 2<<3 **

**因为2转换成2进制数为:0000 0010 **

左移三位为:0001 0000 转换成10进制为16

<< >> 的效率是极高的

public boolean isOdd(int i) 判断奇数偶数的补全

public boolean isOdd(int i){ return i%2 != 0 } public boolean isOdd(int i){ return (i&1) == 1; }

2.5.6、三目运算符

三目运算符是可以转化成 if、else结构的,但是这种简单的判断优先选择三目运算符,效率更高。

条件运算符(三目运算符)※※※※※※
	(条件)?a:b		如果条件为true则执行a,否则执行b(a和b的数据类型要一致)

2.5.7、优先级


java 相加表示 java加加_java