8 操作符

加減乘除求余沒什么說的了,python除法得到小數(shù),
而java如果2個操作數(shù)都是整數(shù),那么各種操作數(shù)的結(jié)果就是整數(shù),而如果有一個或2個都是浮點數(shù),那么這些操作數(shù)的結(jié)果就是浮點數(shù)

int a=1,b=2;
System.out.println(a/b);結(jié)果是0
int a=1;
float b=2.0f;
System.out.println(a/b);結(jié)果是0.5 (小數(shù)計算有時候因為計算機的精度問題導(dǎo)致結(jié)果不會特別理想,和python一樣)

字符串拼接
System.out.println("aaa"+"bbb");輸出aaabbb
但是
System.out.println("aaa"+13);輸出aaa13,將13實現(xiàn)了轉(zhuǎn)化為字符串
又如
System.out.println(""+13);也是將字符串轉(zhuǎn)換成13的字符串輸出
System.out.println("13"+13);也是將字符串轉(zhuǎn)換成1313的字符串輸出

計算是從左到右的
System.out.println(""+13+13);結(jié)果是1313字符串輸出
System.out.println(13+""+13);也是
System.out.println(13+13+"");的結(jié)果是68的字符串,即先計算數(shù)字求和

還有字符型
System.out.println('a'+'b');輸出的結(jié)果是195,因為字符是按數(shù)值考慮,結(jié)果就是ascii碼值相加

自增運算符
a++;
++a;
光看結(jié)果都是a=a+1了,但是在賦值或者運行時卻是有區(qū)別的,
b=a++的結(jié)果是使a賦值給b,然后語句執(zhí)行完a自加1,
b=++a的結(jié)果是a自加1,然后a的值給b
其實可以理解成+的位置決定是先賦值還是先+

賦值運算符
int a=2;
int x=y=z=4;等號右邊開始賦值相當(dāng)于4->z->y->x的順序,不建議這么寫
a+=4;等價于a=a+4;

比較操作符
<,>,>=,<=,==,!=返回的結(jié)果是true,false
System.out.println(1>2);輸出false
System.out.println('c'>'b');輸出true
如果
System.out.println(a=2);則結(jié)果輸出2,這是賦值語句

邏輯運算符
&&,&與,||,|或,!非,^異或
&&和&都是與,但是如果左操作數(shù)為false,&&不會再往下計算,&&也叫短路與
||和|都是或,但是如果左操作數(shù)是true,||不會往下計算,||也叫短路或
int age=80;
boolean isAudlt = age>=18;
boolean isQing = age>=25 && age<=35;(無法像python寫成連式,必須用邏輯運算符相連)
System.out.println(isAudlt);
System.out.println(isQing);

原碼,反碼,補碼
二進制原碼就是二進制表示
反碼正數(shù)是自身,負數(shù)除了第一個符號位不變,其他位取反,
補碼正數(shù)是自身,負數(shù)是反碼+1(計算機存儲數(shù)據(jù)用的都是補碼)
9原碼int 00000000 00000000 00000000 00001001,補碼,反碼一樣
-9原碼int 10000000 00000000 00000000 00001001
反碼 11111111 11111111 11111111 11110110
補碼 11111111 11111111 11111111 11110111

位運算
&位與,|位或,~位取反,^位異或(符號位參與運算)
<<左移,>>右移,>>>右移(其中2個符號左移右移保留符號位,三個符號,帶著符號位移動)
public class MyData{
public static void main(String[] args){
int a=-9,b=9;
System.out.println(a<<1); //-18
System.out.println(a>>1); //-5
System.out.println(a>>>1); //2147483643
System.out.println(b<<1); //18
System.out.println(b>>1); //4
System.out.println(b>>>1); //4
}
}

三元操作符
形如a?x:y a條件滿足與否,是返回x,否則返回y
System.out.println(7>8?"7大于":"7不大于8");

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容