Java運算符詳解

一、算數運算符

一元運算符

算術一元運算符一共有3個,分別是-、++和–。
在這裏插入圖片描述
示例代碼如下:

int a = 12; 
//是把a變量取反
System.out.println(-a); 
//先把a賦值給b變量再加一,即先 賦值後++
int b = a++; 
System.out.println(b);
//先把a加一,再把a賦值給b變量,即先++後賦值
b = ++a;
System.out.println(b);

輸出結果:

-12
12
14

二元運算符

二元運算符包括:+、-、*、/和%,這些運算符對數值類型數據都有效
在這裏插入圖片描述

算術賦值運算符

在這裏插入圖片描述

二、關係運算符

關係運算是比較兩個表達式大小關係的運算,它的結果是布爾類型數據,即true或false。關係運算符有 6種:==、!=、>、<、>=和<=。
在這裏插入圖片描述
==和!=可以應用於基本數據類型和引用數據類型。當用於引用數據類型比較時,比較的是 兩個引用是否指向同一個對象,但在實際開發過程中多數情況下,只是比較對象的內容是否相 當,不需要比較是否爲同一個對象。

三、邏輯運算符

邏輯運算符是對布爾型變量進行運算,其結果也是布爾型。
在這裏插入圖片描述
短路與(&&)和短路或(||)能夠採用最優化的計算方式,從而提高效率。在實際編程 時,應該優先考慮使用短路與和短路或。

示例代碼如下:

int i = 0; 
int a = 10; 
int b = 9;

if ((a > b) || (i == 1)) {

	System.out.println("或運算爲 真"); 
} else {

	System.out.println("或運算爲 假"); }

if ((a < b) && (i == 1)) {

	System.out.println("與運算爲 真"); 
} else {

	System.out.println("與運算爲 假"); 
}

if ((a > b) || (a++ == --b)) { 
	System.out.println("a = " + a); 
	System.out.println("b = " + b); 
}

運行結果:

或運算爲 真 
與運算爲 假
a = 10, b = 9

四、位運算符

位運算是以二進位(bit)爲單位進行運算的,操作數和結果都是整型數據。位運算符有如下幾個運算 符:&、|、^、~、>>、<<和>>>,以及相應的賦值運算符。
在這裏插入圖片描述
無符號右移>>>運算符僅被允許用在int和long整數類型, 如果用於short或byte數據, 則數據在 位移之前,轉換爲int類型後再進行位移計算。

位運算示例代碼:

//十進制50
byte a = 0B00110010; 
//十進制94
byte b = 0B01011110;

// 0B01111110
System.out.println("a | b = " + (a | b)); 
// 0B00010010
System.out.println("a & b = " + (a & b)); 
// 0B01101100
System.out.println("a ^ b = " + (a ^ b)); 
// 0B10100001
System.out.println("~b = " + (~b));
// 0B00001100
System.out.println("a >> 2 = " + (a >> 2)); 
// 0B00011001
System.out.println("a >> 1 = " + (a >> 1)); 
// 0B00001100
System.out.println("a >>> 2 = " + (a >>> 2)); 
// 0B11001000
System.out.println("a << 2 = " + (a << 2)); 
// 0B01100100
System.out.println("a << 1 = " + (a << 1));

int c = -12; 
System.out.println("c >>> 2 = " + (c >>> 2)); 
System.out.println("c >> 2 = " + (c >> 2));

運行結果:

a | b = 126
a & b = 18
a ^ b = 108
~b = -95
a >> 2 = 12
a >> 1 = 25
a >>> 2 = 12
a << 2 = 200
a << 1 = 100
c >>> 2 = 1073741821
c >> 2 = -3

五、其他運算符

除了前面介紹的主要運算符,Java還有一些其他運算符。

  • 三元運算符(? :)。例如x?y:z;,其中x、y和z都爲表達式。
  • 小括號。起到改變表達式運算順序的作用,它的優先級最高。
  • 中括號。數組下標。
  • 引用號(.)。對象調用實例變量或實例方法的操作符,也是類調用靜態變量或靜態方法的操作 符。
  • 賦值號(=)。賦值是用等號運算符(=)進行的。
  • instanceof。判斷某個對象是否爲屬於某個類。
  • new。對象內存分配運算符。
  • 箭頭(->)。Java 8新增加的,用來聲明Lambda表達式。
  • 雙冒號(::)。Java 8新增加的,用於Lambda表達式中方法的引用。

示例代碼如下:

import java.util.Date;
public class HelloWorld {
	public static void main(String[] args) {
		
		int score = 80; 
		// 三元運算符(? : )
		String result = score > 60 ? "及格" : "不及格";	
		System.out.println(result);
		// new運算符可以創建Date對象
		Date date = new Date(); 
		 //通過.運算符調用方法
		System.out.println(date.toString());
	}
}

六、運算符優先級

在一個表達式計算過程中,運算符的優先級非常重要。表中從上到小,運算符的優先級從高到低, 同一行具有相同的優先級。二元運算符計算順序從左向右,但是先級15的賦值運算符的計算順序從右 向左的。
在這裏插入圖片描述
運算符優先級大體順序,從高到低是:
算術運算符→位運算符→關係運算符→邏輯運算符 →賦值運算符


以上內容僅供參考學習,如有侵權請聯繫我刪除!
如果這篇文章對您有幫助,左下角的大拇指就是對博主最大的鼓勵。
您的鼓勵就是博主最大的動力!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章