快熟弄懂Java的运算符

运算符:
分类:
算数运算符
赋值运算符
比较运算符|关系运算符
逻辑运算符
条件运算符
位运算符

	操作数: 运算符左右两边的数
	表达式: 运算符连接操作数整体叫做表达式
	语句: 分号代表语句的结束
	
		单目|一元运算符: 操作数为1个  +号  ++ --
		双目|二元运算符: 操作数为2个  + - * /
		三目|三元运算符: 条件运算符
  1.  算数运算符:
     	+   
     		正号(可省略)
     		加法运算
     		字符串的连接符
     			如果+左右两边有字符串的出现"",+就是作为字符串的连接符使用,把两边的内容拼接成为一整个字符串使用
     	-
     		负号
     		减法运算
     	*
     	/
     	% 模以  取模  求余数
     		如果第一个操作数小于第二个操作数,结果就为第一个操作数
     	++ --
    

    ++ –
    ++ 自增 a++ ==> a=a+1;
    — 自减 a-- ==> a=a-1;

    分析:
    ++,–操作自己
    ++放在操作数的前面还是后面,都是自身+1
    –放在操作数的前面还是后面,都是自身-1
    ++,–操作别人
    +±-放在操作数的前面,先自身+1|-1,再去参与运算
    +±-放在操作数的后面,先去参与运算,在自身+1-1

*/
public class Demo02 {

public static void main(String[] args){ 
	int a=1;
	
	a++;  //a=a+1
	System.out.println(a);
	++a;
	System.out.println(a);  //3
	--a;
	System.out.println(a);  //2
	
	
	//影响别人|操作别人|参与运算
	int b=a++;
	System.out.println(a);  //3
	System.out.println(b);  //2
	//操作别人  a的值影响输出结果
	System.out.println(--a); //2  a=2;
	System.out.println(b++); //2  b=3;
	
	System.out.println(a);  //2
	System.out.println(b);  //3
	
	//操作别人
	b=2 + --a;
	System.out.println(a);  //1
	System.out.println(b);  //3
	
	int i=3;
	int num= i++ + ++i + i++ + i++ + ++i;
	System.out.println(i);  //8 
	System.out.println(num); //17 27 30-

2.测试赋值运算符
基础赋值运算符
= 是java中唯一一个自右向左运算的符号
优先级最低

	扩展赋值运算符(算数运算符+基础赋值运算符)
		+=  a+=b; ==> a=a+b;
		-=
		*=	a*=b; ==> a=a*b;
		/=
		%=
		
		推荐使用扩展赋值运算符
		优点:
			执行效率高
		缺点:
			不直观

3 测试关系运算符|比较运算符
> < >= <=
byte short int long float double char
== !=
基本数据类型,引用数据类型

	关系运算符最终得到的结果 boolean类型的结果

4 .测试java中的逻辑运算符
& 与
一个false就是false,两个都为true,才为true

	|  或
		一个为true就是true,两个都为false,才是false
		
	!  非
		取反  !true->false  !false->true
	^  亦或
		相同为false,不同为true
	
	短路: 如果第一个操作数就能够决定最终的结果,第二个操作数位置不执行
	&& 短路与
	|| 短路或
	推荐使用短路内容
	
	所有的逻辑运算符的操作数都为值为boolean类型的表达式

5.测试java中的条件运算符

	条件表达式 ? 值1 : 值2;
	
	条件表达式:值为boolean类型的表达式
	
	执行流程:
		1.条件表达式 ,最终会得到一个boolean结果
		2.如果结果为true,整个条件表达式最终的结果为值1
		3.如果结果为flase,最终结果为值2
	
	条件运算符最终肯定会得到一个结果

6.测试java中的位运算符
先把操作数转为二进制,根据运算符的逻辑进行操作,最终得到的结果再转为十进制

	& : 同一位置的两个数,如果一个为0就是0,两个都为1才是1
	| : 同一位置的两个数,如果一个为1就是1,两个都为0才是0
	^ : 同一位置的两个数,相同为0,不同为1
	
	位移运算符
	<< 左移 第一个操作数转为2进制,第二个操作数是移动位数 ,向左移动指定的位数,空位补零
		8<<2  1000左移2位  1000 00 -> 转为十进制 32
	>> 右移 第一个操作数转为2进制,第二个操作数是移动位数 ,向右移动指定的位数,想象数据的右边有一条分水线,右侧的内容砍掉,只保留左侧的数据,转为十进制
		8>>2  1000 右移2位  10->转为十进制  2
		右移相当于/2    8>>3   8/2^3
		左移相当于*2 	8<<3   8*2^3
		
	位运算符比直接使用* /效率高
	
	运算符的优先级:
		(),.优先级是最高的
		
		单目乘除位关系,逻辑三目后赋值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值