java 运算符

1:运算顺序从左到右,赋值顺序从右到左。

2:单操作运算符,++(自动递增)、--(自动递减),+(取正)、-(取负)、~(按位取反)、!(逻辑取反)、()(造型)

  a:自动递增,自动递减放前先加减在赋值,反之先赋值在加减

  b:取正负和算数加减相同,编译器可根据上下文自动判断属于什么运算符

  c:按位运算符对一个整数型操作数进行按位操作,生成与输入值相反,输入0则输出1。

  d:逻辑运算对布尔类型进行取反操作

  e:造型运算符用于强转类型

	public static void main(String arr[]){
		int x =1;
		int y=++x;
		System.out.println(x+"__"+y);
		x =1;
		int z=x++;
		System.out.println(x+"__"+z);
		x =1;
		y=--x;
		System.out.println(x+"__"+y);
		x =1;
		z=x--;
		System.out.println(x+"__"+z);
		x=1;
		y=~x;
		System.out.println(y);
		boolean x_ = true;
		boolean y_ = !x_;
		System.out.println(y_);
		x=1;
		double t=(double)x;
		System.out.println(t);
	}
2__2
2__1
0__0
0__1
-2
false
1.0
3:算数运算符,+(加)、-(减)、*(乘)、/(除)、%(取模)

  a:加减用于基本数据类型,运算结果数据溢出不会抛异常,会影响精度。+可以用作两个字符串链接。

  b:乘运算用于基本数据类型,运算结果数据溢出不会抛异常,会影响精度。

  c:除运算用于基本数据类型,除数为0,操作数中有一个浮点数输出Infinity,否则抛出异常 java.lang.ArithmeticException。

  d:取模运算用于基本数据类型,除数为0,操作数中有一个浮点数输出NaN,否则抛出异常 java.lang.ArithmeticException。取模运算正负与被除数相同。

4:位移运算符,<<(左移位)、>>(右移位)、>>>(无符号右移位)

  a:移位操作必须是整数型(字符型,字节型,短整型,整型,长整形),移位运算会将字符型,字节型,短整型转化为整形。

  b:带符号左移位高位舍弃低位补0(相当于乘2)。带符号右移位低位舍弃高位补0或1(相当于除2)。无符号右移位低位舍弃高位补0。

	public static void main(String arr[]){
		//0000 0000 0000 0000 0000 0000 0000 0001 
		//00 0000 0000 0000 0000 0000 0000 000100
		int y=1<<2;
		System.out.println(y);
		//0000 0000 0000 0000 0000 0000 0000 0101
		//000000 0000 0000 0000 0000 0000 0000 01
		y=5>>2;
		System.out.println(y);
		//最高位0为正 1为负 -1则为1000 0000 0000 0000 0000 0000 0000 0001
		//补码:取反+1 0000 0000 0000 0000 0000 0000 0000 0001
		//1111 1111 1111 1111 1111 1111 1111 1111
		//0011 1111 1111 1111 1111 1111 1111 1111
		y=-1>>>2;
		System.out.println(y);
	}
5:比较运算符:<(小于)、<=(小于等于)、>(大于)>=(大于等于)、==(等于)!=(不等于)

  a:==,!= 判断的是对象的引用值即内存地址。

	public static void main(String arr[]){
		final String a="a";
		String b ="b";
		String c ="ab";
		System.out.println(a+b==c);
	}
false
6:按位运算符:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)

	public static void main(String arr[]){
		//0000 0000 0000 0000 0000 0000 0000 0001
		int x=1;
		//0000 0000 0000 0000 0000 0000 0000 0010
		int y=2;
		//两个操作数中位都为1,结果才为1,否则结果为0
		//0000 0000 0000 0000 0000 0000 0000 0000
		System.out.println(x&y);
		//两个位只要有一个为1,那么结果就是1,否则就为0
		//0000 0000 0000 0000 0000 0000 0000 0011
		System.out.println(x|y);
		//如果位为0,结果是1,如果位为1,结果是0
		//1111 1111 1111 1111 1111 1111 1111 1110
		//取反+1 0000 0000 0000 0000 0000 0000 0000 0010
		//1111 1111 1111 1111 1111 1111 1111 1101
		//取反+1 0000 0000 0000 0000 0000 0000 0000 0011
		System.out.println(~x+"_"+~y);
		//两个操作数的位中,相同则结果为0,不同则结果为1。
		//0000 0000 0000 0000 0000 0000 0000 0011
		System.out.println(x^y);
	}
0
3
-2_-3
3
7:逻辑运算符:&&(逻辑与)(两个操作都为true,运行结果为true)、||(逻辑或)(两个操作至少有一个为true,运行结果为true)、!(逻辑非)(生成与输入相反值),逻辑短路特性,&&是两边同时为真则为真,如果左边为假,右边不计算。 || 是只要有一边为真 结果就为真,左边为真,右边不计算。

8:条件运算符:?:(相当于一个简化版的if else)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值