1. 程式人生 > >java中不同資料型別的運算

java中不同資料型別的運算

今天上班的時候,不是很忙,看到java程式設計的群裡發了一個問題:1+‘1’+1+1+“0”,請問等於多少,我相信不少人看到這樣的問題肯定有點蒙,至少我剛開始的時候是懵逼的,很好奇答案到底是什麼,於是就在mian函式裡面輸入System.out.println(1+'1'+1+1+"1");看控制檯列印的是多少?結果呢。。。結果後面再說哈哈(結果是你們經常和女朋友說的)。

出於好奇我就仔細的研究了一下,到底是什麼原因,到底怎麼得來的。

我就開始從前面一個一個測試:

public class DateType {
	public static void main(String[] args) {
		System.out.println(1+'1');
	}
}

控制檯輸出:50,那說明‘1’就表示49,在ascii碼錶裡裡面可以查到字元1對應的10進位制ascii值為49,”0“表示在後面拼接一個字元0,這樣就很容易知道結果了。

當我換了位置重新測試一下又發現了問題:

public class DateType {
	public static void main(String[] args) {
		System.out.println("1"+1+1);
	}
}
public class DateType {
	public static void main(String[] args) {
		System.out.println("1"+1+'1');
	}
}

控制檯輸出結果都是:111,先開始我也為第二結果為1149
說明第一個為字元時,後面不管什麼型別都是字元,還有最後輸出的結果的資料型別都是字元型別。

總結:不同的資料型別運算,從前往後計算,如果是整形,正常的10進位制計算,遇到字元轉成10進位制的ascii碼值計算,有字元就直接拼接字元,遇到字元的,後面都是字元,就沒必要轉化。

這些在開發中應該很少遇到,當時在一些面試題中可能會出現,希望能幫助到大家,第一次寫部落格,可能很多地方寫的不好,以後繼續努力,繼續堅持,謝謝大家!