java基础运算符的介绍及用法

java基础笔记之运算符

注意:图意结合能帮助理解。印象更加深刻。

在这里插入图片描述
在这里插入图片描述

/*
 * 一,算术运算符
 */
//① +可以为加法运算符,也可以为字符串拼接符号
		int yu=20;
		int num2 = 30;
		System.out.println(yu+num2);//50
		System.err.println(yu+num2+"ab");//50ab
		System.out.println("ab"+yu+num2);//ab2030
		
//②除法:整数与整数相除,得到的是整数。
		int yu1=10;
		int num3 = 3;
		System.out.println(yu1/num3);//3
		
//小数与整数相除得到小数
		float yu2 = 10;
		int num4=3;
		float hh1 = yu2/num3;
		System.out.println(hh1);//3.3333333
		
//③ % 取余,求模 被模数为正结果为正 ,为负 结果为负。被模数也就是被除数前面哪个。
		System.out.println(10%3);//1
		System.out.println(-10%3);//-1
		System.out.println(10%-3);//1
		
//④ ++ 自增 num5++ 先计算,再加1,++num5 先加1,再计算。  
		int num5 = 10;
		System.out.println(num5++);//10
		System.out.println(num5);//11
		System.out.println(++num5);//12
		System.out.println(num5);//12
//⑤ -- 自减 num5-- 先计算,再减1,--num5 先减1,再计算。  
				int num6 = 10;
				System.out.println(num6--);//10
				System.out.println(num6);//9
				
				System.out.println(--num6);//8
				System.out.println(num6);//8
/*
		 *二,赋值运算符
		 */
		//① += 相当于 x = x+y;
		int x =10;
		int y = 40;
		x+=y;
		System.out.println(x);//50
		//② -=,*=,/= 跟+=一样.
/*
		 *三,关系运算符(比较运算符)
		 */
		//①注意:"=="是判断是否相等,"="是赋值运算符不要搞混了
		//②"!="是判断不相等,"<>"SQL语法中的不相等(oracel)
		int num7 =7;
		int num8 =8;
		System.out.println(num7=num8);//8
		System.out.println(num7==num8);//true
		System.out.println(num7!=num8);//false
		//<=,<,>,>=的用法跟平常的数学一样,比较就OK了。
		
		/*
		 *四, 逻辑运算符(布尔运算符)
		 */
	// ① && (and) : 所有条件为true ,只要任意一个为false,结果就为false,全部true,结果才为true
		System.out.println(3>5 && 4<7);//false	//短路运算
		System.out.println(3<5 && 4<7);//true  
		System.out.println(3>5 && 4>7);//false  //短路运算
		
		//短路运算 : 只要有false出现,后面的就不能计算了。
		int num9=10;
		boolean result = (num9>20 && ++num9>=11);
		System.out.println(num9);//10
		System.out.println(result);//false
		
		//② || (or) : 只要任意一个为true ,结果就为true,全部为false,结果才为false
		System.out.println(3>5 || 4<7);//true 短路运算
		System.out.println(3>5 || 4>7);//false
		System.out.println(3<5 || 4<7);//true 短路运算
		
		//③ ! (not) 对所有的结果取反
		boolean result1=true;
		System.out.println(!result1);//false
/*
		 * 五,位运算符 (只对byte,short ,char,int,long有效,这些都可以隐式转换为int)
		 */
		//① &(and) 所有条件为true ,只要任意一个为false,结果就为false,全部true,结果才为true
		System.out.println(3>5 & 4<7);//false //非短路运算
		System.out.println(3<5 & 4<7);//true  
		System.out.println(3>5 & 4>7);//false 
		
		//短路运算 : 有false出现,后面的也能计算。
				int num10=10;
				boolean result2 = (num10>20 & ++num10>=11);
				System.out.println(num10);//11
				System.out.println(result2);//false
		//位运算: 1 true,0 false
				System.out.println(1 & 0);//false 非短路运算
				System.out.println(0 & 1);//false 非短路运算
				System.out.println(1 & 1);//true
				System.out.println(0 & 0);//false 
				
		//② | (or): 只要任意一个为true ,结果就为true,全部为false,结果才为false
				System.out.println(3>5 | 4<7);//true 非短路运算
				System.out.println(3>5 | 4>7);//false
				System.out.println(3<5 ||4<7);//true
				//位运算
				System.out.println(1 | 0);//true 非短路运算
				System.out.println(0 | 1);//true 非短路运算
				System.out.println(1 | 1);//true
				System.out.println(0 | 0);//false 
		/*
		 * 逻辑运算符(&&,||)与位运算符(&,|)的异同
		 * 相同点:都可以做逻辑运算
		 * 不同点:做逻辑运算时,&&,||可以做短路运算,&,|不可以,逻辑运算符效率》位运算符
		 * 		位运算符可以做安位运算 ,逻辑运算符不可以。	
		 * 
		 * */
		//③ 异或运算符:^ ,两者相同返回true,不同为false
				System.out.println(true ^ true);//true
				System.out.println(false ^ true);//false
				System.out.println(false ^ false);//true
				System.out.println(true ^ false);//false
				
				//位运算,1 true ,0 false
				System.out.println(1 ^ 0);//0
				System.out.println(0 ^ 1);//0
				System.out.println(1 ^ 1);//1
				System.out.println(0 ^ 0);//1
				
		//按位运算,按位与&,按位或|,按位异或^
		System.out.println(3 & 4);//0
		System.out.println(3 | 4);//7
		System.out.println(3 ^ 4);//7
		//计算过程:把3和4换为二进制,这里只是拿&做一个列子,|,^是一个道理。
		//3 0 0 1 1
		//4 0 1 0 0
		//& 0 0 0 0   所以结果是0
		/*
		 *左右移位运算相当与实现整数	乘以或者除以2的n次方
		 */
		//④ <<左移位,将整数二进制化,整体向左移动n位,右边空出的位置全部补零
		int num11=4;
		System.out.println(num11<<2);//16 num11*2^2=16
		//⑤ >>右移位,将整数二进制化,整体向左移动n位,如果最高位是0(正数),则左边空着的部分补0,如果是1(负数)则补1.
		int num12 = 4;
		System.out.println(num12>>2);//1 num12/2^2=1
		//⑥ >>> 无符号位移,将整数二进制化,整体向右移动n位,右边空出的位置全部补0。
		int num13 = -4;
		System.out.println(num13>>>2);//1073741823	

/*
		 * 三元运算符:表达式1?表达式2:表达式3
		 */
		System.out.println(40>30?"是的":"不是");
		/*
		 * 二元运算符:= ,+, <. >, &&,指针对两个值的
		 *
		 */
		System.out.println(8+6);//14
		/*
		 * 一元运算符:!,++ ,--,指针对一个值的
		 */
		System.out.println(!false);
		

运算符的优先级
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值