瀏覽器安全:36 | HTTPS:讓資料傳輸更安全
阿新 • • 發佈:2022-04-06
運算子
算數運算子:+,-,*,/,++,--
賦值運算子=
關係運算符:>, <, >=, <= ,==, !=instanceof
這三種必須掌握。
package operator; public class Demo01 { public static void main(String[] args) { //ctrl + D :複製當前行到下一行 int a =10; int b =20; int c =25; int d =25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b);//輸出了0,本來得0,5,自動取成了0,所以我們要轉換為double System.out.println((double) a/b);//輸出0.5,正確 } }
package operator; public class Demo02 { public static void main(String[] args) { long a = 123123123123123L; int b = 123; short c = 10; byte d = 8; System.out.println(a + b + c + d); //long System.out.println(b + c + d); //int System.out.println(c + d); //int //計算時,有一個為long,結果為long(double也是) //沒有long時,結果都為int(無論你有沒有int) } }
package operator; public class Demo03 { public static void main(String[] args) { //關係運算符返回的結果:正確,錯誤 布林值 int a = 10; int b = 20; System.out.println(a>b);//false System.out.println(a<b);//true System.out.println(a==b);//false System.out.println(a!=b);//true int c = 21; System.out.println(c%a);// c / a 21/10=2 ... 1 //輸出1 餘數為1 (模運算) } }
package operator;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自減 (一元運算子)
int a = 3;
int b = a++;//a++ a = a + 1 執行完這行程式碼後,先給b賦值,再自增
//a = a + 1
System.out.println(a);//4
//a = a + 1
int c = ++a;//++a a = a + 1 執行完這行程式碼前,先自增,再給c賦值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//冪運算2^3 2*2*2 = 8 java中沒有^
double pow = Math.pow(2,3);//2的3次方
System.out.println(pow);
//很多運算,我們會使用一些工具類來操作
}
}
邏輯運算子:&&,||,!
位運算子:&,|,^, <<, >>, >>>
條件運算子?:
拓展賦值運算子:+=, -=, *=, /=
package operator;
//邏輯運算子
public class Demo05 {
public static void main(String[] args) {
//與(and) 或(or) 非(取反)
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 是真則為假 是假則為真
//短路運算
int c = 5;
boolean d = (c<4)&&(c++<4);//false 前面是錯的 後面的就不會執行了
System.out.println(d);
System.out.println(c);//輸出的5不是6 c++沒有執行
}
}
package operator;
//位運算
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 兩個都為1則得1 其他都得0
A|B = 0011 1101 兩個都為0則得0 其他都得1
A^B = 0011 0001 兩個相同則為0 其他則為1 異或
~A = 1100 0011 取反
~B = 1111 0010
2*8 = 16 2*2*2*2 2*8怎麼運算最快 (面試題)
<< >> 左移 右移
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16 逢2進1 翻一倍 1向左移一位
所以! << *2 >> /2
這些經常用來和二進位制打交道的 效率極高
*/
System.out.println(2<<3); //16 2乘3個2
}
}
package operator;
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; // a = a+b
a-=b;// a = a-b
//字串連結符 + ,String
System.out.println(a+b);
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
//面試題 這兩個有什麼區別
//如果字串""在前面 則會拼接 字串""在後面,前面的a+b依舊進行運算
}
}
package operator;
//三元運算子 雖然是偷懶的 但必須掌握 以後會很常見。更加精簡和便於理解
public class Demo08 {
public static void main(String[] args) {
// x ? y :z
//如果x==true,則結果為y 否則結果為z。
int score = 80;
String type = score <60 ? "不及格":"及格";
//小於60則及格 否則及格
System.out.println(type);
}
}
優先順序()