Java基礎入門篇(五)Java變量類型的轉(zhuǎn)換和運算符
一、變量類型的轉(zhuǎn)換
(一)自動類型轉(zhuǎn)換也叫隱式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型在轉(zhuǎn)換的過程中不需要顯式地聲明。需要滿足兩個條件:第一是兩種數(shù)據(jù)類型相互兼容,第二是目標類型取值范圍要大于源類型。
1.當把一個表數(shù)范圍小的數(shù)值或變量直接賦給另一個表數(shù)范圍大的變量時,系統(tǒng)將可以進行自動類型轉(zhuǎn)換。

例如:
- double d = 3; //int自動轉(zhuǎn)換為double類型3.0再賦值。
- 3+1.0; //表達式的類型為所有操作數(shù)的最高類型,即double類型。
2.當把任何基本數(shù)據(jù)類型的值和字符串值進行連接運算時,基本類型的值將自動類型轉(zhuǎn)換為字符串類型。
(二)強制類型轉(zhuǎn)換也叫顯式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型之間的轉(zhuǎn)換需要進行顯式地聲明。當兩種數(shù)據(jù)類型不能相互兼容或目標類型取值范圍小于源類型,自動類型轉(zhuǎn)換就不能進行。所以需要強制類型轉(zhuǎn)換。
1.當把一個表數(shù)范圍大的數(shù)值或變量直接賦給另一個表數(shù)范圍小的變量時,范圍將溢出,出現(xiàn)錯誤。
例如:
- short s = 5; //5在short的范圍內(nèi),允許賦值,5將被看成是short類型的。
- s = s + 2; //2是int類型,s+2表達式類型為int,賦值給short類型,將發(fā)生溢出,報錯。
2.強制類型具體格式如下:
目標類型 變量=(目標類型)值
例如:
- s = (short)(s+2);//將int類型強制轉(zhuǎn)換成short類型。
需要注意一點就是強制類型轉(zhuǎn)換可能會造成信息丟失。
二、運算符
(一)算術運算符
與算術相關運算符+、-、*、/,就是加減乘除,也被成為四則運算。另外還有一個%稱為模數(shù)運算符或余數(shù)運算符。算術運算符使用上和學過的加減乘除一樣,先乘除后加減。

算術運算符看起來比較簡單和容易理解。在實際使用時還有很多需要注意的問題:
1.在自增++和自減--的運算時,如果是運算符++或--放在操作數(shù)的前面則是先進行自增或自減運算,再進行其他運算。反之,如果運算符放在操作數(shù)的后面則是先進行其他運算再進行自增或自減。
例如:
- int a=2; //聲明一個int類型變量a并賦值為2
- int b=3;//聲明一個int類型變量b并賦值為3
- int x=a+b++;//聲明一個int類型變量x
- System.out.print("b="+b);
- System.out.print("x="+x);
上面代碼輸出結(jié)果是b=4,x=5。具體分析:
首先是定義了3個int類型,其中a=2,b=3,當x進行a+b++運算,因為運算符++寫在后面,所以是先進行運算,然后再自增。變量b參與加法運算時值仍然是3,x=5。變量b先進行運算后自增,b的值為4。
(二)比較運算符
數(shù)學上有大于,小于,等于的比較運算符,java也提供這些運算符,這些運算符稱為比較運算符。
例如:
- 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
比較運算符是對兩個數(shù)值或變量進行比較,結(jié)果是一個布爾值true或false。
(三)邏輯運算符
邏輯運算符用于對布爾型的數(shù)據(jù)進行操作,結(jié)果也是一個布爾值。在邏輯上“且(AND)”、“或(OR)”、“反相(NOT)”,在java也提供這些邏輯運算符,分別是&&(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
(四)位運算符
位運算符是對二進制數(shù)的每一位進行運算的符號,它是專門對數(shù)字0和1進行操作。
例如:
計算5&3=1

三、總結(jié)
本文主要介紹了數(shù)據(jù)類型的轉(zhuǎn)換分別有自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換,也介紹了這兩種類型轉(zhuǎn)換的用法,需要注意的是強制類型轉(zhuǎn)換可能造成信息的丟失。
運算符包括了算術運算符、比較運算符、邏輯運算符、位運算符。算術運算符是+、-、*、\,還有%模數(shù)運算符或余數(shù)運算符。詳細介紹了自增和自減的用法。比較運算符是對兩個數(shù)值或變量進行比較,結(jié)果是一個布爾值true或false。
邏輯運算符對布爾型的數(shù)據(jù)進行操作,結(jié)果也是一個布爾值。位運算符是對二進制數(shù)的每一位進行運算的符號,它是專門對數(shù)字0和1進行操作。希望通過本文的學習,能夠幫助到你理解數(shù)據(jù)類型轉(zhuǎn)換和運算符。