Java运算符大全(入门必知)

Java运算符大全

刚入坑的小伙伴们?对运算符有所了解吗?运算符可谓是入门必备知识。对你以后的长远发展有着很深的影响。孔子曰:“工欲善其事,必先利其器。运算符一次性给你讲清楚,以备不时之需。

运算符的分类

运算符一共分为六种、三类
六种:算数、赋值、关系、逻辑、条件、位 运算符
三类:单目、双目、三目

1. 算数运算符

算数运算符:+ - * / % ++ –
% 模以|取模|求余数
1、如果第一个操作数比第二个操作数小,结果就为第一个操作数
例:5%6=5、7%100=7
2、取余的左边为负数,取余的结果为负
例:7%3=1、-7%3=-1、7%-3=1
++ - -
1、不参与其他任何运算(赋值运算也算)
++(–)放在操作数前面或者后面,都是自身+(-)1
例:int a = 5; a++; int b = 5; ++b
结果 a=6;b=6
2、参与其他运算
++(–) 放在操作数的前面,先自身+1(-1),再去参与运算
++(–) 放在操作数的后面,先去参与运算,再自身+1(-1)
例:

	int a = 5; 
	int b = 3;  
	b =  a++; //b=3因为a参与赋值运算并且a++,先赋值b=a,再自身+1,a=6。
	b = ++a //b=7因为a参与赋值运算并且++a,先自身+1,上一句算出a=6,所以+1后为7,赋值给b

2. 赋值运算符(双目)

1、基础赋值运算符 =
自右向左运算符的符号优先级别最低
2、扩展赋值运算符 (算数运算符+基础赋值运算符)
+=: a+=b ==> a=a+b;
-=: a-=b ==> a=a-b;

	short a = 5;
	a += 1;//正确自动强制类型转换
	a = a+1;//错误a是变量,如果要使用。需要强制类型转换a = (short)(a+1);

注:推荐使用扩展赋值运算符;1.提高执行效率。2.自动做强制类型转换。

3. 比较|关系运算符(双目)

1、> < >= <=
只能比较基本数据类型 byte short char int long float double
2、== !=
基本数据类型的数据,引用数据类型的数据都可以比较是否相等
最终的运算结果,都为boolean类型的值

	int a=5;
	int b=3;
	System.out.println(a>=b);  //true
	System.out.println(a+3 != b-1); //true
4. 逻辑运算符(双目)

操作数值为boolean类型的表达式
& 两边的操作数 都是true才是true,一个为false,结果就为false
| 两边的操作数 一个为true就是true,两个都为false才是false
! 取反 (单目)
^ 相同为false,不同为true
短路 :如果第一个操作数已经能够决定最终的结果,第二个操作数不再执行
&& 两边的操作数 都是true才是true,一个为false,结果就为false
|| 两边的操作数 一个为true就是true,两个都为false才是false
推荐使用&& 或者 ||,提议提高效率

public class Operator05{  
	
	public static void main(String[] args){ 
		
		System.out.println("--------------&-----------------");
		System.out.println(true & false);   //false
		System.out.println(false & false);  //false
		System.out.println(true & true);  //true
		
		System.out.println("--------------|-----------------");
		System.out.println(true | false);   //true
		System.out.println(false | false);  //false
		System.out.println(false | true);  //true
		System.out.println(true | true);  //true
		
		System.out.println("--------------!-----------------");
		System.out.println(!false);   //true
		System.out.println(!true);  //false
		
		System.out.println("--------------^-----------------");
		System.out.println(true ^ false);   //true
		System.out.println(false ^ false);  //false
		System.out.println(false ^ true);  //true
		System.out.println(true ^ true);  //false
		
		//测试短路
		//System.out.println(5/0==0); 
		//System.out.println(false & 5/0==0);  //false
		System.out.println(false && 5/0==0);  //false
	} 
5. 条件运算符(三目)

条件表达式 ? 值1 : 值2 ; ===>最终的结果不是值1就是值2
条件表达式是一个值为boolean类型的表达式
执行流程:
1.计算条件表达式
2.如果结果为true,整个条件运算符的结果为值1
3.如果结果为false,整个条件运算符的结果为值2

		int a=5;
		int b=7;
		int max=a>b?a : b;
		System.out.println(max);//7
6. 位运算符(双目)

先把操作数转为2进制,再去运算,得到结果转为十进制
& 同一位置的两个数如果两个都为1才是1,一个为0就是0
| 同一位置的两个数如果一个为1就是1,两个都为0才是0
^ 同一位置的两个数如果一相同为0,不同为1
位移运算符
右移>> 右移一位相当于除2
6>>2 == 6/4
左移<< 左移一位相当于乘2
5<<1 == 5*2

运算符优先级:

单目算数位关系,逻辑三目后赋值

练习题

1、

		//练习
		//自定义a,b变量,不同的值进行测试
		boolean x = a < b ? ++a * 2 > b || a > b : a < b;
		System.out.println(x);

2、

		//练习
		int k=20;
		int j=8;
		int totle = k++ + j-- + --j + ++k + k++ + j++ + k-- + --k + j++;
		System.out.println("k="+k+",j="+j+",totle="+totle);  

以上

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值