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)。