使用Java操作符
幾乎所有操作符都只能操作“基本類型”。例外的是 “=”务唐,“==”,“带兜!=”枫笛,這些操作符能操作所有對(duì)象。 String類支持“+”和“+=”的操作刚照。
優(yōu)先級(jí)
System.out.println()語(yǔ)句中包含“+”操作符刑巧,這里的“+”表示字符串連接和字符串轉(zhuǎn)換。當(dāng)1編譯器觀察到一個(gè)String后面跟著1個(gè)“+”后面又跟著一個(gè)非String元素,會(huì)嘗試著把這個(gè)元素轉(zhuǎn)化成String啊楚。
賦值
基本數(shù)據(jù)類型的賦值都是復(fù)制吠冤,對(duì)象賦值實(shí)際上是將“引用”從一個(gè)地方賦值到另一個(gè)地方,所以如果對(duì)象賦值c=d,則c和d都指向原本只有d指向的那個(gè)對(duì)象恭理。
自動(dòng)遞增和遞減
前綴式 ++a咨演, 先增加a再賦值。 后綴式a++, 先賦值再增加a蚯斯。
關(guān)系操作符
等于“==”和不等于“薄风!=”適用于所有的基本數(shù)據(jù)類型。對(duì)于對(duì)象類型拍嵌,等于“==”和不等于“遭赂!=”比較的是引用的對(duì)象。如果比較2個(gè)對(duì)象的實(shí)際內(nèi)容是否相同横辆,則用equals()撇他,但是這個(gè)方法不適用于基本類型,基本類型用等于“==”和不等于“狈蚤!=”即可困肩。?
指數(shù)計(jì)數(shù)法
Java中 1.39e-43 中的e是10的冪次,“e”代表的是10的x方脆侮,而不是自然對(duì)數(shù)的基數(shù)2.718.
三元操作符
boolean-exp ? value0 : value1
三元操作符也稱為條件操作符锌畸,他是操作符的一種,于if-else完全不同靖避,因?yàn)樗鼤?huì)產(chǎn)生一個(gè)值潭枣。?
類型轉(zhuǎn)換操作符
如果要執(zhí)行“窄化轉(zhuǎn)換(narrowing conversion)”的操作,也就是說(shuō)將容納更多信息的數(shù)據(jù)類型轉(zhuǎn)換成無(wú)法容納更多類型的數(shù)據(jù)類型幻捏,則有可能面臨數(shù)據(jù)的丟失盆犁。 例如:
long l = ......;
int i = (int) l;
在轉(zhuǎn)化浮點(diǎn)型到整數(shù)的窄化轉(zhuǎn)換時(shí),會(huì)對(duì)改數(shù)字進(jìn)行截尾篡九,即去掉浮點(diǎn)谐岁。如果要用四舍五入則需要用Math.round()方法。
而對(duì)于“擴(kuò)展轉(zhuǎn)換(widening conversion)”榛臼,則不必顯示地進(jìn)行轉(zhuǎn)換伊佃,數(shù)據(jù)不會(huì)造成任何丟失。
Java允許我們把任何基本數(shù)據(jù)類型轉(zhuǎn)換成別的基本數(shù)據(jù)類型讽坏,但除boolean類型外锭魔。
對(duì)于基本數(shù)據(jù)類型運(yùn)算或者按位運(yùn)算,只要類型比int小路呜,那么這些值在運(yùn)算之前會(huì)自動(dòng)轉(zhuǎn)換成int迷捧。 通常表達(dá)式中出現(xiàn)的最大的數(shù)據(jù)類型決定了表達(dá)式最終結(jié)果的數(shù)據(jù)類型织咧。如果將一個(gè)float值于double值相乘,結(jié)果就是double漠秋;如果將一個(gè)int和一個(gè)long值相加笙蒙,結(jié)果就是long。對(duì)于char庆锦,byte捅位,short的任何運(yùn)算,都會(huì)獲得一個(gè)int類型
Sizeof
Java中沒(méi)有sizeof搂抒, 因?yàn)樗袛?shù)據(jù)類型在所有機(jī)器中的大小都是相同的艇搀,不需要考慮移植問(wèn)題。