int型除以double型,結(jié)果是double型
自動(dòng)轉(zhuǎn)換遵循以下規(guī)則:
1)? 若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。
2)? 轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。
a.若兩種類型的字節(jié)數(shù)不同,轉(zhuǎn)換成字節(jié)數(shù)高的類型
b.若兩種類型的字節(jié)數(shù)相同,且一種有符號(hào),一種無符號(hào),則轉(zhuǎn)換成無符號(hào)類型
3)? 所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。
4)? char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。
5)?? 在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。如果右邊量的數(shù)據(jù)類型長度左邊長時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分按四舍五入向前舍入。
例如:
int 和double屬于不同類型,轉(zhuǎn)換遵循低精度到高精度轉(zhuǎn)換,所以int先轉(zhuǎn)成double型就算,結(jié)果就是double型
對(duì)Boolean、Character、Byte、Short、Integer、Long、Float、Double 來說,和String一樣:==是比較地址的,equals()是比較內(nèi)容的。這些java自帶的封裝類里重載好了
equals():在object中,是用來比較內(nèi)存地址的,但是在String以及上面提到的幾個(gè)類里,是比較內(nèi)容的,即使是不同地址,只要內(nèi)容一致,返回true;
==:在哪里都是比較地址(除了java自帶類型——int a = 3 ; int b = 3; 這里a和b,地址不同,但它們是自帶類型,直接比較值,依然返回true)。