標籤:
大家好,今天呢我吧我所學到的一些知識點共用給大家,希望大家看完之後,要是有什麼不懂的,請隨時聯絡我,要是覺得我寫的不是很好的 ,還希望你們能夠諒解一下,因為小弟我剛學會寫部落格也沒多久,很多格式和方法都不是很完善,希望大家多多包涵,好了 廢話就不多說了,來談一下今天我所學到的一些知識點吧;
今天我主要是學到了一些Java中的資料類型,其中,Java中的資料類型分為倆類------基礎資料類和邏輯資料類,下面我所介紹的都是基本資料類的一些分類,至於邏輯類,由於使用次數過少,所以今天就不再這裡多做介紹了。
好了,基本資料類裡面又包含了8種資料類型,從小到大排列就是,byte / shot / int / long / float / double/ 和一些單字元型 char / boolear 總共八種;
至於這八種常用的資料類型的用法,我相信懂一點Java基礎的都知道該怎麼使用吧,這這裡我就不一一向大家介紹了。
迴歸主題,基礎類型的自動轉換 和強制轉換是什嗎??? 在一開始接觸的時候 我也沒弄懂是怎麼一回事,但是按照字面上的意思 不就是 簡單的 把不同類型 的數值 進行轉換一下嗎,我是一開始就這樣想的,但是到後來我發現我錯了,而且錯的很離譜,因為這裡包含著許多學問,也就是接下來我所說的 自動轉換 和強制轉換了;
現在來想一下第二個問題,為什麼要進行強制轉換,可能有很多程式員認為i+=1隻是i=i+1的簡寫方式,其實不然,它們一個使用簡單賦值運算,一個使用複合賦值運算,而簡單賦值運算和複合賦值運算的最大差別就在於:複合賦值運算子會自動地將運算結果轉型為其左運算元的類型。看看以下的兩種寫法,你就知道它們的差別在哪兒了:
(1) byte i=5;
i+=1;
(2) byte i=5;
i=i+1;
第一種寫法編譯沒問題,而第二種寫法卻編譯通不過。原因就在於,當使用複合賦值運算子進行操作時,即使右邊算出的結果是int類型,系統也會將其值轉化為左邊的byte類型,而使用簡單賦值運算時沒有這樣的優待,系統會認為將i+1的值賦給i是將int類型賦給byte,所以要求強制轉換。理解了這一點後,我們再來看一個例子:
byte b=120;
b+=20;
System.out.println("b="+b);
說到這裡你應該明白了,上例中輸出b的值不是140,而是-116。因為120+20的值已經超出了一個byte表示的範圍,而當我們使用複合賦值運算時系統會自動作類型的轉化,將140強轉成byte,所以得到是-116。由此可見,在使用複合賦值運算子時還得小心,因為這種類型轉換是在不知不覺中進行的,所以得到的結果就有可能和你的預想不一樣
好了,由於時間關係,今天的知識點到這裡又要結束了,而每天的計劃和目標又得重新提醒自己一遍了。
1、每天鍛煉指法一小時;
2、每天堅持寫一篇部落格或者日誌;
3、每天上課提前十五分鐘進教室;
4、每天給自己一句鼓勵的話語------學知識只是一塊敲門磚,能夠讓你比別人領先一步進公司,但是當你進去之後就會發現,進來的每個人的知識量都是差不了多少的,所以說在以後的人生路上,還是得看你學會做人的態度。。。。。。。
第二十一篇 Java 資料類型的定義 ,以及基礎類型的自動轉換和強制轉換