Java - 3 運算子

wajiez發表於2024-10-06

Java - 3 運算子

算術運算子

/*
    ++a : 先運算後取值
    a++ : 先取值後運算
*/
int i = 1;
i = i++; // (1)temp=i;(2)i=i+1;(3)i=temp;
System.out.println(i); // 1

int i = 1;
i = ++i; // (1)i=i+1;(2)temp=i;(3)i=temp;
System.out.println(i); // 2

System.out.println(10/4); // 2
System.out.println(10.0/4); // 2.5 保留小數
double d = 10/4; // 2.0

// %本質:a%b = a - a/b*b
System.out.println(10%3); // 1
System.out.println(10%3); // -1
System.out.println(10%-3); // 1

關係運算子

==用於比較基本資料型別時,它會直接比較兩個變數的值是否相同。而當==用於比較物件時,它會比較兩個物件的記憶體地址,也就是判斷兩個物件是否是同一個物件

equals是Java中Object類的一個方法,它用於比較兩個物件的內容是否相等。在Object類中,equals方法的預設實現是比較物件的記憶體地址,也就是判斷兩個物件是否是同一個物件

String類重寫了equals方法,用於比較兩個字串的內容是否相同

// str1 和 str2 可以是字串變數, 也可以是字串變數
str1.equals(str2);

邏輯運算子

&&: 短路與 (如果第一個條件為false,後面不會繼續判斷)

&: 邏輯與

三元運算子

int a = 10;
int b = 99;
int result = a>b ? a++ : b--; // 1真
int n1 = 552;
int n2 = 33;
int n3 = 123;

int max = (n1>n2?n1:n2) > n3 ? (n1>n2?n1:n2) : n3;

位運算子

按位與&

按位或|

按位異或^

按位取反~

// 2的原碼(補碼)    00000000 00000000 00000000 00000010
// 3的原碼(補碼)    00000000 00000000 00000000 00000011
// 運算(得到的是補碼)00000000 00000000 00000000 00000010(是正數,所以原碼也是這個)
System.out.println(2&3)

算數右移>>:低位溢位,符號位不變,用符號位補溢位的高位

本質:/2

算數左移<<:符號位不變,低位補0

本質:*2

邏輯右移(無符號右移)>>>:低位溢位,高位補0

沒有<<<

相關文章