Demo01DataType.java
/* 當資料型別不一樣時,將會發生資料型別轉換, 自動型別轉換(隱式) 1. 特點:代碼不需要進行特殊處理,自動完成, 2. 規則:資料范圍從小到大, 強制型別轉換(顯式) */ public class Demo01DataType { public static void main(String[] args) { System.out.println(1024); // 這就是一個整數,默認就是int型別 System.out.println(3.14); // 這就是一個浮點數,默認就是double型別 // 左邊是long型別,右邊是默認的int型別,左右不一樣 // 一個等號代表賦值,將右側的int常量,交給左側的long變數進行存盤 // int --> long,符合了資料范圍從小到大的要求 // 這一行代碼發生了自動型別轉換, long num1 = 100; System.out.println(num1); // 100 // 左邊是double型別,右邊是float型別,左右不一樣 // float --> double,符合從小到大的規則 // 也發生了自動型別轉換 double num2 = 2.5F; System.out.println(num2); // 2.5 // 左邊是float型別,右邊是long型別,左右不一樣 // long --> float,范圍是float更大一些,符合從小到大的規則 // 也發生了自動型別轉換 float num3 = 30L; System.out.println(num3); // 30.0 } }View Code
Demo02DataType.java
/* 強制型別轉換 1. 特點:代碼需要進行特殊的格式處理,不能自動完成, 2. 格式:范圍小的型別 范圍小的變數名 = (范圍小的型別) 原本范圍大的資料; 注意事項: 1. 強制型別轉換一般不推薦使用,因為有可能發生精度損失、資料溢位, 2. byte/short/char這三種型別都可以發生數學運算,例如加法“+”. 3. byte/short/char這三種型別在運算的時候,都會被首先提升成為int型別,然后再計算, 4. boolean型別不能發生資料型別轉換 */ public class Demo02DataType { public static void main(String[] args) { // 左邊是int型別,右邊是long型別,不一樣 // long --> int,不是從小到大 // 不能發生自動型別轉換! // 格式:范圍小的型別 范圍小的變數名 = (范圍小的型別) 原本范圍大的資料; int num = (int) 100L; System.out.println(num); // long強制轉換成為int型別 int num2 = (int) 6000000000L; System.out.println(num2); // 1705032704 // double --> int,強制型別轉換 int num3 = (int) 3.99; System.out.println(num3); // 3,這并不是四舍五入,所有的小數位都會被舍棄掉 char zifu1 = 'A'; // 這是一個字符型變數,里面是大寫字母A System.out.println(zifu1 + 1); // 66,也就是大寫字母A被當做65進行處理 // 計算機的底層會用一個數字(二進制)來代表字符A,就是65 // 一旦char型別進行了數學運算,那么字符就會按照一定的規則翻譯成為一個數字 byte num4 = 40; // 注意!右側的數值大小不能超過左側的型別范圍 byte num5 = 50; // byte + byte --> int + int --> int int result1 = num4 + num5; System.out.println(result1); // 90 short num6 = 60; // byte + short --> int + int --> int // int強制轉換為short:注意必須保證邏輯上真實大小本來就沒有超過short范圍,否則會發生資料溢位 short result2 = (short) (num4 + num6); System.out.println(result2); // 100 } }View Code
Demo03DataTypeChar.java
/* 數字和字符的對照關系表(編碼表): ASCII碼表:American Standard Code for Information Interchange,美國資訊交換標準代碼, Unicode碼表:萬國碼,也是數字和符號的對照關系,開頭0-127部分和ASCII完全一樣,但是從128開始包含有更多字符, 48 - '0' 65 - 'A' 97 - 'a' */ public class Demo03DataTypeChar { public static void main(String[] args) { char zifu1 = '1'; System.out.println(zifu1 + 0); // 49 char zifu2 = 'A'; // 其實底層保存的是65數字 char zifu3 = 'c'; // 左側是int型別,右邊是char型別, // char --> int,確實是從小到大 // 發生了自動型別轉換 int num = zifu3; System.out.println(num); // 99 char zifu4 = '中'; // 正確寫法 System.out.println(zifu4 + 0); // 20013 } }View Code
ACSII碼表


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/241199.html
標籤:Java
