Java編程思想學(xué)習(xí)筆記
1. 賦值時(shí)的類型轉(zhuǎn)換
- 當(dāng)對(duì)基本數(shù)據(jù)類型執(zhí)行算數(shù)運(yùn)算或者按位運(yùn)算時(shí)电湘,類型比int懈艚凇(char、byte或short)的類型寂呛,在運(yùn)算之前怎诫,這些值會(huì)自動(dòng)地轉(zhuǎn)換為int類型(提升)。這樣一來(lái)最終生成的結(jié)果就是int類型贷痪。
例:
short s = 1;
s = s + 1;
--------------------------------
錯(cuò)誤信息:
錯(cuò)誤:(20, 15) java: 不兼容的類型: 從int轉(zhuǎn)換到short可能會(huì)有損失
可見(jiàn)幻妓,計(jì)算后的 s + 1 已經(jīng)轉(zhuǎn)換成了int類型。同樣的劫拢,一個(gè)int和一個(gè)long運(yùn)算肉津,結(jié)果為long類型,一個(gè)float和一個(gè)double運(yùn)算舱沧,結(jié)果是double類型妹沙。
- 對(duì)于char、byte或short來(lái)說(shuō)狗唉,當(dāng)進(jìn)行復(fù)合賦值時(shí),不需要進(jìn)行類型轉(zhuǎn)換涡真。雖然他們也執(zhí)行類型提升分俯,但能得出與直接算數(shù)運(yùn)算相同的結(jié)果肾筐。
short s = 1;
s += 1;
--------------------------------
編譯通過(guò)
PS:
- 復(fù)合賦值操作符有:+=、-=缸剪、*=吗铐、/=、%=杏节、 <<=唬渗、 >>=、 >>>=奋渔、&=镊逝、 ^=和| =
- 簡(jiǎn)單賦值操作符為=
2. 字符串操作符 = 和 +=
- 如果一個(gè)表達(dá)式以字符串起頭,則后續(xù)所有操作數(shù)都必須是字符串(編譯器會(huì)把非字符串的操作數(shù)全部轉(zhuǎn)換成它們的字符串形式)
例:
int x = 0, y = 1, z = 2;
System.out.println(x + y + z); //不以字符串起頭的情況
System.out.println("" + x + y + z); //以字符串起頭的情況
--------------------------------
輸出:
3
012
其中嫉鲸,以""開(kāi)頭的方式來(lái)替代更為麻煩的顯示方法(本例中為Integer.toString())來(lái)執(zhí)行字符串轉(zhuǎn)換撑蒜。
int x = 0, y = 1, z = 2;
System.out.println(x + y + z);
System.out.println(Integer.toString(x) + Integer.toString(y) + Integer.toString(z));
--------------------------------
輸出:
3
012
- 可以通過(guò)括號(hào)來(lái)控制表達(dá)式的賦值方式,使得變量能在轉(zhuǎn)換成字符串類型前執(zhí)行別的操作
int x = 0, y = 1, z = 2;
System.out.println("" + x + y + z);
System.out.println("" + (x + y + z));
--------------------------------
輸出:
012
3