加減乘除求余沒什么說(shuō)的了神妹,python除法得到小數(shù),
而java如果2個(gè)操作數(shù)都是整數(shù)家妆,那么各種操作數(shù)的結(jié)果就是整數(shù)鸵荠,而如果有一個(gè)或2個(gè)都是浮點(diǎn)數(shù),那么這些操作數(shù)的結(jié)果就是浮點(diǎn)數(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ù)計(jì)算有時(shí)候因?yàn)橛?jì)算機(jī)的精度問(wèn)題導(dǎo)致結(jié)果不會(huì)特別理想伤极,和python一樣)
字符串拼接
System.out.println("aaa"+"bbb");輸出aaabbb
但是
System.out.println("aaa"+13);輸出aaa13蛹找,將13實(shí)現(xiàn)了轉(zhuǎn)化為字符串
又如
System.out.println(""+13);也是將字符串轉(zhuǎn)換成13的字符串輸出
System.out.println("13"+13);也是將字符串轉(zhuǎn)換成1313的字符串輸出
計(jì)算是從左到右的
System.out.println(""+13+13);結(jié)果是1313字符串輸出
System.out.println(13+""+13);也是
System.out.println(13+13+"");的結(jié)果是68的字符串,即先計(jì)算數(shù)字求和
還有字符型
System.out.println('a'+'b');輸出的結(jié)果是195哨坪,因?yàn)樽址前磾?shù)值考慮庸疾,結(jié)果就是ascii碼值相加
自增運(yùn)算符
a++;
++a;
光看結(jié)果都是a=a+1了,但是在賦值或者運(yùn)行時(shí)卻是有區(qū)別的当编,
b=a++的結(jié)果是使a賦值給b届慈,然后語(yǔ)句執(zhí)行完a自加1,
b=++a的結(jié)果是a自加1,然后a的值給b
其實(shí)可以理解成+的位置決定是先賦值還是先+
賦值運(yùn)算符
int a=2;
int x=y=z=4;等號(hào)右邊開始賦值相當(dāng)于4->z->y->x的順序凌箕,不建議這么寫
a+=4;等價(jià)于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,這是賦值語(yǔ)句
邏輯運(yùn)算符
&&拧篮,&與,||牵舱,|或串绩,!非芜壁,^異或
&&和&都是與礁凡,但是如果左操作數(shù)為false,&&不會(huì)再往下計(jì)算,&&也叫短路與
||和|都是或慧妄,但是如果左操作數(shù)是true,||不會(huì)往下計(jì)算顷牌,||也叫短路或
int age=80;
boolean isAudlt = age>=18;
boolean isQing = age>=25 && age<=35;(無(wú)法像python寫成連式,必須用邏輯運(yùn)算符相連)
System.out.println(isAudlt);
System.out.println(isQing);
原碼塞淹,反碼窟蓝,補(bǔ)碼
二進(jìn)制原碼就是二進(jìn)制表示
反碼正數(shù)是自身,負(fù)數(shù)除了第一個(gè)符號(hào)位不變饱普,其他位取反运挫,
補(bǔ)碼正數(shù)是自身,負(fù)數(shù)是反碼+1(計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)用的都是補(bǔ)碼)
9原碼int 00000000 00000000 00000000 00001001,補(bǔ)碼套耕,反碼一樣
-9原碼int 10000000 00000000 00000000 00001001
反碼 11111111 11111111 11111111 11110110
補(bǔ)碼 11111111 11111111 11111111 11110111
位運(yùn)算
&位與谁帕,|位或,~位取反冯袍,^位異或(符號(hào)位參與運(yùn)算)
<<左移匈挖,>>右移碾牌,>>>右移(其中2個(gè)符號(hào)左移右移保留符號(hào)位,三個(gè)符號(hào)儡循,帶著符號(hào)位移動(dòng))
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");