Java 运算符

  

目录

一、算术运算符 

1.1、 加法运算 “ + ”

1 .2、减法运算 “ - ”

1 .3、乘法运算 “ * ”

1 .4、除法运算 “ / ”

1 .5、自增运算 “ ++ ”

1 .6、自减运算 “ -- ”

二、关系运算符 

三、逻辑运算符 

四、位运算符 

五、运算符优先级


          程序运算符是有许多语句组成的,而语句的基本单位就是表达式与运算符。Java 的运算符可分为 : 算术运算符、关系运算符、逻辑运算符和位运算符。

一、算术运算符 

        算术运算符主要用于 Java 做运算操作使用。

算术运算符意义
+加法
-减法
*乘法
 /除法
%取余
++自增
--自减

1.1、 加法运算 “ + ”

将加法运算符 “ + ” 的前后两个数相加

System.out.println("6 + 8 = " + 6 + 8); //直接输出表达式的值

1 .2、减法运算 “ - ”

int num = 6 - 3; // 将6-3运算之后赋值给num保存

1 .3、乘法运算 “ * ”

int num = 5 * 5; // 将 5 * 5 运算后的值赋值给num保存

1 .4、除法运算 “ / ”

int num = 10 / 5; // 将 10 / 5 运算后的值赋值给num保存

使用除法运算时,若是运算的结果不能整除时,输出的结果与实际的会有差异,因为整形的变量无法保存小数点后面的数据所致。

示例

public class Test1 {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 13;
		int d = 4;
		System.out.println("(b / a)能整除情况 = " + b / a);
		System.out.println("(c / d)不能整除情况 = " + c / d);
		System.out.println("(c / d)不能整除,进行强制类型转换 = " + (float)c / d);
	
	}
}

控制台显示

(b / a)能整除情况 = 2
(c / d)不能整除情况 = 3
(c / d)不能整除,进行强制类型转换 = 3.25

1 .5、自增运算 “ ++ ”

public class Test2 {
	public static void main(String[] args) {
		 int a = 10;  // 把 10 赋值给变量 a
		 System.out.println("a++ ="+(a++));// 先执行完a++后   a的值才会加1   a=10  
		 System.out.println("++a ="+(++a));// 先执行完++a前   a先加1       a=12
	}
}

1 .6、自减运算 “ -- ”

public class Test3 {
	public static void main(String[] args) {
		 int a = 10;  // 把 10 赋值给变量 a
		 System.out.println("a-- ="+(a--));// 先执行完a--后   a的值才会减1    a=10
		 System.out.println("--a ="+(--a));// 先执行完--a前   a先减1        a=8
	}
}

二、关系运算符 

        关系运算符去判断表达式是否成立时,会产生一个响应值 true 或者 false 。

关系运算符意义
>大于
<小于
>=大于等于
 <=小于等于
==等于
!=不等于

示例

public class Test4 {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		System.out.println("a > b = " + (a > b));  	// false
		System.out.println("a < b = " + (a < b));  	// true
		System.out.println("b >= a = " + (b >= a)); //true
		System.out.println("b <= a = " + (b <= a));	// false
		System.out.println("a == b = " + (a == b));	// false
		System.out.println("a != b = " + (a != b));	//true
	}
}

三、逻辑运算符 

逻辑运算符意义
&&and ,与
||or ,或
public class Test5 {
	public static void main(String[] args) {
	     boolean a = true;
	     boolean b = false;
	     System.out.println("a && b = " + (a&&b));   // false
	     System.out.println("a || b = " + (a||b) );  //  true
	     System.out.println("!(a && b) = " + !(a && b));// true
	  }
}

四、位运算符 

        Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
操作符描述例子
如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应位都是 0,则结果为 0,否则为 1(A | B)得到61,即 0011 1101
^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111

示例

public class Test6 {
	public static void main(String[] args) {
	     int a = 60; /* 60 = 0011 1100 */ 
	     int b = 13; /* 13 = 0000 1101 */
	     int c = 0;
	     c = a & b;       /* 12 = 0000 1100 */
	     System.out.println("a & b = " + c );
	 
	     c = a | b;       /* 61 = 0011 1101 */
	     System.out.println("a | b = " + c );
	 
	     c = a ^ b;       /* 49 = 0011 0001 */
	     System.out.println("a ^ b = " + c );
	 
	     c = ~a;          /*-61 = 1100 0011 */
	     System.out.println("~a = " + c );
	 
	     c = a << 2;     /* 240 = 1111 0000 */
	     System.out.println("a << 2 = " + c );
	 
	     c = a >> 2;     /* 15 = 1111 */
	     System.out.println("a >> 2  = " + c );
	  
	     c = a >>> 2;     /* 15 = 0000 1111 */
	     System.out.println("a >>> 2 = " + c );
	  }
}

控制台显示

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

五、运算符优先级

        当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

        下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

类别操作符关联性
后缀() [] . (点操作符)左到右
一元expr++ expr--从左到右
一元++expr --expr + - ~ !从右到左
乘性 * /%左到右
加性 + -左到右
移位 >> >>>  << 左到右
关系 > >= < <= 左到右
相等 ==  !=左到右
按位与左到右
按位异或^左到右
按位或|左到右
逻辑与&&左到右
逻辑或| |左到右
条件?:从右到左
赋值= + = - = * = / =%= >> = << =&= ^ = | =从右到左
逗号左到右
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2014Team

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值