java自動類型轉換與強制類型轉換

自動類型轉換就是自發的進行,你可以從輸出的結果看出,外表是看不出來的。我們知道數據類型有很多種,大小也不一樣,就像水桶似的,有1升的,2升的,4升的,自動類型轉換就相當於把小的水桶裏面的水裝到大的裏面去。比如


  int a = 10;


  double b = a;


  輸出b是10.0;沒毛病,合情合理。a 的值是10(整型32位),將它的值賦給b(雙精度64位),1升桶裏的水倒進2升桶裏面,沒問題。其餘的float byte char ---只要是小範圍給大範圍,統統會隱式轉換,沒問題。


  這裏說下char(字符類型)這個有點意思,上例子


  byte b = 12;


  char c = 'a';


  b+c = 109;


  驚不驚喜,意不意外!是這樣的,數字與char 類型運算時,char先轉換爲ASCII等字符編碼表中有對應的數值,然後進行計算。char與自身運算時也是先轉換爲ASCII等字符編碼表中有對應的數值。數據類型提升至int。


  強制類型轉換就是明明自身不願意,你非要人家轉換。明明你想學習,你媽非讓你玩遊戲(不玩遊戲就打你),強制,絕對強制。(ps:是不是親生的--哈哈)


  比如


  double d = 10.9;


  int a = d;報錯,絕對報錯,不報錯砍我---在默認情況下編譯器是不允許我們這樣做的,如果你就是想這樣轉換,也可以


  int a = (int) d; 這樣就可以了,這就是強制轉換,把一個裝滿2升水的大桶倒進1升的桶裏面,很明顯多餘的水就灑出了,所以強制轉換會造成數據的丟失。


  在說一說char 比如


  long a = 4000000L;


  char b = (char)a;


  b = ? 如果強制轉換爲char類型的話,會對照ASCII等字符編碼表 找出所對應的字符。


  最後說說字符串。任何只要與字符串String相加就會被String吃到肚子裏增加字符串的長度。

知海匠庫java培訓課程體系研發團隊來自網易系大咖,設計合理,知識點完整,重點突出;課程與最新技術同步,對接一線互聯網前端掌握技能;教學以授課+項目實戰教學”相結合的方式,更加突出實操能力,貼合企業的急需人才方向。

發佈了4 篇原創文章 · 獲贊 100 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章