1. 程式人生 > >JAVA學習筆記2——字元型+布林變數+型別轉換

JAVA學習筆記2——字元型+布林變數+型別轉換

最近在看JAVA教學的視訊,覺得老師講的很好,同時借用原始碼還有筆記來撰寫本系列部落格,記錄自己的學習內容,同時也供看到的人學習。

開始寫第二篇了哦~

繼上篇介紹完JAVA的數值型別後,我們再來看看字元型(char)和布林變數(boolean)。

上一篇已經提到過JAVA內部採用的字符集是Unicode字符集,每一個字元佔據兩個位元組的大小,這和C++是不一樣的哦,除了正常的各國語言的一個字元外,char型別下還有很多特殊功能的字元,下面的程式碼片段介紹幾種經常見到並且實用的。

<span style="font-size:14px;">//測試char
public class TestCharType {
	public static void main(String[] args){
		char c1 = 'a';
		char c2 = '尚';   //unicode  2: 0-65535
		char c3 = '\n';   //表示換行符
		char c4 = '\'';   //用轉義字元來輸出單引號
		char c5 = '\t'     //用製表符來拉開固定間距
		System.out.print(c1);
		System.out.print(c3);
		System.out.print(c2);
	
		char c4 = 'a';
		int i = c4 + 2;     //i是99
		char c5 = (char)i;   //強制轉型(常用在高級別往低級別轉)
		System.out.println(c5);
		//迴圈列印a-z
		for(int j=0;j<26;j++){
			char temp = (char)(c4+j);
			System.out.print(temp);
		}
		//java裡面的字串,是定義成:String類了。
		String  str = "abcdefghijklmnopqrstuvwxyz";
		System.out.println("\n"+str);
	    
		//boolean型別只有一位
		boolean b = false;   //false
		if(b){    
			System.out.println("true");
		}	
	}
}</span>
好了,介紹完這四種基本資料型別之後,我們看看它們之間的型別轉換吧!

JAVA裡面的基本資料型別轉換分為自動型別轉換與強制型別轉換,先來看自動型別轉換:

再開看看強制型別轉換:

        

對比上述兩種型別轉換我們可以得出結論:JAVA轉型的原則是不是程式設計者的資料丟失精度,所以向著大容量資料型別方向轉型的就是自動型別轉換,而相比之下,強制型別轉換則既有“順流而下”也有“逆流而上”,最大的不同時不考慮精度是否會丟失而只是規定了一個特定的“目的地”。

下面的程式碼是相應的實現以及兩個小的實踐題,大家仔細看看哦:

<span style="font-size:14px;">//測試自動轉型和強制轉型 
public class TestCast {
	
	public static void main(String[] args){
	/*	
		byte b = 123;
		//byte b2 = 300;    這兩個不能轉型
		//char c = -3;
		char c2 = 'a';
		int i = c2;
		long d01 = 123213;
		float f = d01;
		
		//測試強制轉型
		int i2 = -100;
		char c3 = (char)i2;   //-100超過char的表數範圍(0~65535),所以轉換成完全不同的值,無意義的值!
		System.out.println(c3);
	*/	
	/*
		//表示式中的型別提升問題
		int a = 3;
		long b = 4;
		double d = 5.3;
		int c = (int)(a+b);   //做所有的二元運算子(+-/*%),都會有型別提升(向容量大的轉換)的問題!損失精度的都不會正常進行!
		float f = (float)(a + d);
	*/
	
		int money = 1000000000;  //10億
		int years = 20;
		long total = money*years;   //注:返回的是負數,因為money和years都是int型,乘完還是int型,已經溢位成為負數,再賦給long型的total也仍然顯示為負數!
		long total = (long)money*years; //可以只對money進行轉型,然後進行自動轉型,便可以正常顯示
		long total = (long)(money*years); //這樣返回仍然為負數,原因同第一個
		System.out.println(total);
		
		//一個人70年心跳多少次
		long times = 70L*60*24*365*70;      //同理,其中一個數字(最好不要是最後一個數字)轉換為long型
		System.out.println(times);
		
		
	}

}</span>