Java基礎(chǔ)入門(mén)篇(五)Java變量類(lèi)型的轉(zhuǎn)換和運(yùn)算符
一、變量類(lèi)型的轉(zhuǎn)換
(一)自動(dòng)類(lèi)型轉(zhuǎn)換也叫隱式類(lèi)型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類(lèi)型在轉(zhuǎn)換的過(guò)程中不需要顯式地聲明。需要滿足兩個(gè)條件:第一是兩種數(shù)據(jù)類(lèi)型相互兼容,第二是目標(biāo)類(lèi)型取值范圍要大于源類(lèi)型。
1.當(dāng)把一個(gè)表數(shù)范圍小的數(shù)值或變量直接賦給另一個(gè)表數(shù)范圍大的變量時(shí),系統(tǒng)將可以進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換。
 例如:
- double d = 3; //int自動(dòng)轉(zhuǎn)換為double類(lèi)型3.0再賦值。
 - 3+1.0; //表達(dá)式的類(lèi)型為所有操作數(shù)的最高類(lèi)型,即double類(lèi)型。
 
2.當(dāng)把任何基本數(shù)據(jù)類(lèi)型的值和字符串值進(jìn)行連接運(yùn)算時(shí),基本類(lèi)型的值將自動(dòng)類(lèi)型轉(zhuǎn)換為字符串類(lèi)型。
(二)強(qiáng)制類(lèi)型轉(zhuǎn)換也叫顯式類(lèi)型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換需要進(jìn)行顯式地聲明。當(dāng)兩種數(shù)據(jù)類(lèi)型不能相互兼容或目標(biāo)類(lèi)型取值范圍小于源類(lèi)型,自動(dòng)類(lèi)型轉(zhuǎn)換就不能進(jìn)行。所以需要強(qiáng)制類(lèi)型轉(zhuǎn)換。
1.當(dāng)把一個(gè)表數(shù)范圍大的數(shù)值或變量直接賦給另一個(gè)表數(shù)范圍小的變量時(shí),范圍將溢出,出現(xiàn)錯(cuò)誤。
例如:
- short s = 5; //5在short的范圍內(nèi),允許賦值,5將被看成是short類(lèi)型的。
 - s = s + 2; //2是int類(lèi)型,s+2表達(dá)式類(lèi)型為int,賦值給short類(lèi)型,將發(fā)生溢出,報(bào)錯(cuò)。
 
2.強(qiáng)制類(lèi)型具體格式如下:
目標(biāo)類(lèi)型 變量=(目標(biāo)類(lèi)型)值
例如:
- s = (short)(s+2);//將int類(lèi)型強(qiáng)制轉(zhuǎn)換成short類(lèi)型。
 
需要注意一點(diǎn)就是強(qiáng)制類(lèi)型轉(zhuǎn)換可能會(huì)造成信息丟失。
二、運(yùn)算符
(一)算術(shù)運(yùn)算符
與算術(shù)相關(guān)運(yùn)算符+、-、*、/,就是加減乘除,也被成為四則運(yùn)算。另外還有一個(gè)%稱(chēng)為模數(shù)運(yùn)算符或余數(shù)運(yùn)算符。算術(shù)運(yùn)算符使用上和學(xué)過(guò)的加減乘除一樣,先乘除后加減。
  算術(shù)運(yùn)算符看起來(lái)比較簡(jiǎn)單和容易理解。在實(shí)際使用時(shí)還有很多需要注意的問(wèn)題:
1.在自增++和自減--的運(yùn)算時(shí),如果是運(yùn)算符++或--放在操作數(shù)的前面則是先進(jìn)行自增或自減運(yùn)算,再進(jìn)行其他運(yùn)算。反之,如果運(yùn)算符放在操作數(shù)的后面則是先進(jìn)行其他運(yùn)算再進(jìn)行自增或自減。
例如:
- int a=2; //聲明一個(gè)int類(lèi)型變量a并賦值為2
 - int b=3;//聲明一個(gè)int類(lèi)型變量b并賦值為3
 - int x=a+b++;//聲明一個(gè)int類(lèi)型變量x
 - System.out.print("b="+b);
 - System.out.print("x="+x);
 
上面代碼輸出結(jié)果是b=4,x=5。具體分析:
首先是定義了3個(gè)int類(lèi)型,其中a=2,b=3,當(dāng)x進(jìn)行a+b++運(yùn)算,因?yàn)檫\(yùn)算符++寫(xiě)在后面,所以是先進(jìn)行運(yùn)算,然后再自增。變量b參與加法運(yùn)算時(shí)值仍然是3,x=5。變量b先進(jìn)行運(yùn)算后自增,b的值為4。
(二)比較運(yùn)算符
數(shù)學(xué)上有大于,小于,等于的比較運(yùn)算符,java也提供這些運(yùn)算符,這些運(yùn)算符稱(chēng)為比較運(yùn)算符。
例如:
- System.out.printf("3>2 結(jié)果%b%n",3>2);
 - System.out.printf("3>=2 結(jié)果%b%n",3>=2);
 - System.out.printf("3<2 結(jié)果%b%n",3<2);
 - System.out.printf("3<=2 結(jié)果%b%n",3<=2);
 - System.out.printf("3==2 結(jié)果%b%n",3==2);
 - System.out.printf("3!=2 結(jié)果%b%n",3!=2);
 
輸出結(jié)果是:
- 3>2 結(jié)果true
 - 3>=2 結(jié)果true
 - 3<2 結(jié)果false
 - 3<=2 結(jié)果false
 - 3==2 結(jié)果false
 - 3!=2 結(jié)果true
 
比較運(yùn)算符是對(duì)兩個(gè)數(shù)值或變量進(jìn)行比較,結(jié)果是一個(gè)布爾值true或false。
(三)邏輯運(yùn)算符
邏輯運(yùn)算符用于對(duì)布爾型的數(shù)據(jù)進(jìn)行操作,結(jié)果也是一個(gè)布爾值。在邏輯上“且(AND)”、“或(OR)”、“反相(NOT)”,在java也提供這些邏輯運(yùn)算符,分別是&&(AND)、||(OR)、!(NOT)。
例如:
- int number=35;
 - System.out.println(number>30&&number<40);
 - System.out.println(number>40||number<30);
 - System.out.println(!(number>40||number<30));
 
輸出結(jié)果是:
- true
 - false
 - True
 
(四)位運(yùn)算符
位運(yùn)算符是對(duì)二進(jìn)制數(shù)的每一位進(jìn)行運(yùn)算的符號(hào),它是專(zhuān)門(mén)對(duì)數(shù)字0和1進(jìn)行操作。
例如:
計(jì)算5&3=1
 三、總結(jié)
本文主要介紹了數(shù)據(jù)類(lèi)型的轉(zhuǎn)換分別有自動(dòng)類(lèi)型轉(zhuǎn)換和強(qiáng)制類(lèi)型轉(zhuǎn)換,也介紹了這兩種類(lèi)型轉(zhuǎn)換的用法,需要注意的是強(qiáng)制類(lèi)型轉(zhuǎn)換可能造成信息的丟失。
運(yùn)算符包括了算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。算術(shù)運(yùn)算符是+、-、*、\,還有%模數(shù)運(yùn)算符或余數(shù)運(yùn)算符。詳細(xì)介紹了自增和自減的用法。比較運(yùn)算符是對(duì)兩個(gè)數(shù)值或變量進(jìn)行比較,結(jié)果是一個(gè)布爾值true或false。
邏輯運(yùn)算符對(duì)布爾型的數(shù)據(jù)進(jìn)行操作,結(jié)果也是一個(gè)布爾值。位運(yùn)算符是對(duì)二進(jìn)制數(shù)的每一位進(jìn)行運(yùn)算的符號(hào),它是專(zhuān)門(mén)對(duì)數(shù)字0和1進(jìn)行操作。希望通過(guò)本文的學(xué)習(xí),能夠幫助到你理解數(shù)據(jù)類(lèi)型轉(zhuǎn)換和運(yùn)算符。



















 
 
 










 
 
 
 