PHP API介面GET&&POST請求封裝(通用)
阿新 • • 發佈:2021-12-01
算術運算子
+: +號在涉及到String
// 如 "" + 1 + 2 ,這裡的+號會變成字串連線符
System.out.println(""+1+2); //輸出12
System.out.println(1+2+""); //輸出3
/:除法在運算時需要注意小數,需要強制轉換
int a = 20;
int b = 10;
System.out.println(b/a); //值為0
System.out.println(b/(double)a); //值為0.5
%: 取餘數,模運算
int a = 10%3; //a = 1
++: 自增,--: 自減
int a = 1;
int b,c ;
b = ++a; //a先+1,然後賦值 a=2,b=2
c = a++; //a先賦值給c,然後a再+1 a=3,c=2
System.out.println(a); //3
System.out.println(b); //2
System.out.println(c); //2
int a = 1;
int b,c ;
b = --a; //a先-1,然後賦值 a=0,b=0
c = a--; //a先賦值給c,然後a再-1 a=-1,c=0
System.out.println(a); //-1
System.out.println(b); //0
System.out.println(c); //0
關係運算符
>、<、>=、<=、==、!=、instanceof
// 關係運算符只會返回布林值型別的true、false
// instanceof 是 Java 的保留關鍵字。它的作用是測試它左邊的物件是否是它右邊的類的例項,返回 boolean 的資料型別。
public static void main(String[] args) {
Object testObject = new ArrayList();
displayObjectClass(testObject);
}
public static void displayObjectClass(Object o) {
if (o instanceof Vector)
System.out.println("物件是 java.util.Vector 類的例項");
else if (o instanceof ArrayList)
System.out.println("物件是 java.util.ArrayList 類的例項");
else
System.out.println("物件是 " + o.getClass() + " 類的例項");
}
}
// 執行結果:物件是 java.util.ArrayList 類的例項
邏輯運算子
&&、||、!
boolean a = true;
boolean b = false;
a && b //False
a || b //True
!a //False
!b //True
位運算子
&、|、^、~、>>、<<、>>>
/*
A = 0011 1100
B = 0000 1101
-------------------
A&B 0000 1100
A|B 0011 1101
A^B 0011 0001
~B 1111 0010
--------------------
<< 相當於*2
>> 相當於/2
2*8=16 計算機怎麼運算最快,進行位運算
2*2^3 = 2^4
2: 0000 0010
4: 0000 0100
4: 0000 1000
16: 0001 0000
2<<3
System.out.println(2<<3) // 16
*/
說明>>、<<,>>>
-
算術左移<<:符號位不變,低位補零。相當於*2
-
邏輯右移>>>:低位溢位,高位補零
-
沒有<<<符號
原碼、反碼、補碼
-
正數的原碼、反碼、補碼都一樣,最高位表示符號位為0,表示正號
-
負數的原碼,數值部分和正數原碼數值部分一樣,最高位表示符號位為1,表示負號。負數的反碼就是其原碼除符號位外,按位取反。負數的補碼等於其反碼+1**
-
0的反碼,補碼都是0
-
Java裡的數都是有符號的
-
計算機運算時,都是以補碼的方式來運算的
-
看運算結果時,看原碼
public static void main(String[] args) {
// int 4個位元組
//1. 先得到 2的補碼 => 2的原碼 00000000 00000000 00000000 00000010
// 2的補碼 00000000 00000000 00000000 00000010
//2. 3的補碼 3的原碼 00000000 00000000 00000000 00000011
// 3的補碼 00000000 00000000 00000000 00000011
//3. 按位&
// 00000000 00000000 00000000 00000010
// 00000000 00000000 00000000 00000011
// 00000000 00000000 00000000 00000010 & 運算後的補碼
// 運算後的原碼 也是 00000000 00000000 00000000 00000010
// 結果就是 2
System.out.println(2&3);//2
//推導
//1. 先得到 -2的原碼 10000000 00000000 00000000 00000010
//2. -2的 反碼 11111111 11111111 11111111 11111101
//3. -2的 補碼 11111111 11111111 11111111 11111110
//4. ~-2操作 00000000 00000000 00000000 00000001運算後的補碼
//5. 運算後的原碼 就是 00000000 00000000 00000000 00000001 => 1
System.out.println(~-2);//1
//推導
//1. 得到2的補碼 00000000 00000000 00000000 00000010
//2. ~2操作 11111111 11111111 11111111 11111101 運算後的補碼
//3. 運算後的反碼 11111111 11111111 11111111 11111100
//4. 運算後的原碼 10000000 00000000 00000000 00000011=>-3
System.out.println(~2); //-3
}
&&、||和&、|的區別
對於短路與&&而言,如果第一個條件為false ,後面的條件不再判斷
對於邏輯與&而言,如果第一個條件為false ,後面的條件仍然會判斷
public static void main(String[] args) {
int a = 4;
int b = 9;
int c = 20;
if (a < 1 && ++b < 50) {
}
if (a < 1 & ++c < 50) {
}
System.out.println("b=" + b + "\t" + "c=" + c);
}
//執行結果:b=9 c=21
三元運算子
格式:
條件表示式?表示式1:表示式2
如果條件表示式為真,則返回表示式1,假返回表示式2
public static void main(String[] args) {
int a = 10;
int b = 99;
int result = a > b ? a++ : b--;
System.out.println("result=" + result);
System.out.println("a=" + a);
System.out.println("b=" + b);
}