基本類型和包裝類
阿新 • • 發佈:2019-02-14
pack 默認值 per 隱式 public 基本 ole pub string
包裝類的產生就是為了解決基本數據類型沒有屬性,方法,不能對象化交互的問題
基本數據類型和包裝類之間的對應關系如下:
基本類型——包裝類
byte——Byte
short——Short
int——Integer
long——Long
float——Float
double——Double
char——Character
booleam——Boolean
1. 包裝類與基本數據類型裝換的裝箱和拆箱
package wrap; public class WrapTestOne { public static void main(String[] args) { //裝箱:把基本數據類型轉換成包裝類//1. 自動裝箱 int t1 = 2; Integer t2 = t1; //把t1直接賦值給t2 //2. 手動裝箱 Integer t3 = new Integer(t1); //測試 System.out.println("int類型變量t1的值:"+t1); System.out.println("Integer類型對象t2的值:"+t2); System.out.println("Integer類型對象t3的值:"+t3); //拆箱:把包裝類轉換成基本數據類型//1. 自動拆箱 int t4 = t2; //2. 手動拆箱 int t5 = t2.intValue(); //把Integer對象t2轉換成int類型的值 System.out.println("Integer對象t2的值:"+t2); System.out.println("自動拆箱後,int類型變量t4的值:"+t4); System.out.println("手動拆箱後,int類型變量t5的值:"+t5); double t6 = t2.doubleValue(); //把t2轉換成double了類型的值System.out.println(t6); } }
2. 基本數據類型和字符串之間的轉換
package wrap; public class WrapTestTwo { public static void main(String[] args) { //基本數據類型轉換為字符串 int t1 = 2; String t2 = Integer.toString(t1); //使用toString方法,把int類型轉換為String //測試 System.out.println("int類型轉換為String類型對象t2="+t2); //字符串轉換為基本數據類型 int t3 = Integer.parseInt(t2); //使用Integer的parseInt方法,把字符串轉換成int類型 System.out.println("String類型轉換為int類型變量t3= "+t3); int t4 = Integer.valueOf(t2); //把String轉換成Integer類型後,自動拆箱操作變成int類型 System.out.println(t4); } }
3. 包裝類的默認值
String name; //包裝類和基本類型默認值都是null
int mouth; //默認值為0
Integer mouth1; //默認值為null
double weight; //默認值為0.0
Double weight1; //默認值為null
4. 包裝類的比較
package wrap; public class WrapperTest { public static void main(String[] args) { Integer one = new Integer(100); Integer two = new Integer(100); System.out.println(one == two); //false:等號兩邊放對象名,比較的是引用對象指向的不同的內存空間 Integer three = 100; //自動裝箱 System.out.println(three == 100); //比較時自動拆箱 100==100 true // Integer foure = 100; ====等於(-128————127之間隱式調用)===== Integer foure = Integer.valueOf(100); Integer foure = Integer.valueOf(100); System.out.println(three == foure); //隱式調用,因此指向的是內存的同一塊空間 Integer five = 200; System.out.println(five == 200); Integer six = 200; System.out.println(five == six); //false 超過隱式調用的區間了 } }
註意:float和double類型不具備常量池概念,也就是int中的隱式調用
基本類型和包裝類