包裝類
對基本數(shù)據(jù)類型就行包裝的,把基本數(shù)據(jù)
類型包裝成一個對象
把基本數(shù)據(jù)類型變得更強大,以面向對象的思想來去使用這些類型
基本數(shù)據(jù)類型 | 包裝類 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
裝箱操作
把基礎類型
變成包裝類
-->裝箱操作
int a =10;
//把基礎類型變成包裝類-->裝箱操作
Integer num=new Integer(a);//第一種裝箱方式
Integer num2 = Integer.valueOf(20);//第二種裝箱方式
//Integer 內部覆蓋了toString
System.out.println(num);//所以打印出來的是10
System.out.println(num.MAX_VALUE);//打印出int類型的最大值
System.out.println(num.MIN_VALUE);//打印出int類型的最小值
System.out.println(num.TYPE);// 知道是由什么基本數(shù)據(jù)類型包裝過來的
MAX_VALUE和MIN_VALUE是一個常量
//public static final int MAX_VALUE = 0x7fffffff;
文檔的使用
文檔在手,天下我有
//---------------------
//jdk api 中文版 Ctrl+滾輪放大縮小 查閱文檔
int xq = 20;
Integer xq1 = new Integer(xq);
//可以把一個字符串轉成Integer類型 字符串當中必須是數(shù)字
Integer xq2 = new Integer("123");
//把整數(shù)轉成二進制
System.out.println(Integer.toBinaryString(38));
拆箱操作
把包裝類的對象,轉換成對應的基本數(shù)據(jù)類型的變量
Integer num1 = new Integer(12);//裝箱操作
System.out.println(num1);
System.out.println(num1.getClass());//對象有方法值
int num2 = num1.intValue();//拆箱的操作
System.out.println(num2);
自動裝箱
可以直接把一個基本數(shù)據(jù)類型的值,賦值給包裝類對象
Integer i = 20;// --->語法糖 自動裝箱 實際上會做 Integer i = new Integer(20);
System.out.println(i);
// 自動拆箱:可以直接把一個包裝類對象賦值給基本數(shù)據(jù)類型的變量
int i1 = i; // --->語法糖 自動拆箱 實際上會做 int i1 = i.intValue();
字符中與其它類型轉換
Stirng與基本數(shù)據(jù)類型,包裝類型之間的轉換問題
// 1.如何把一個字符串轉成包裝類型
// 字符串當中必須都是數(shù)字
Integer a = new Integer("123");
System.out.println(a);
Integer a2 = Integer.valueOf(100);
String str = a2.toString();// 把包裝類對象轉成字符串
// 2.基本數(shù)據(jù)類型轉成字符串
int a3 = 2;
String str2 = a3 + "";
// 3.把字符串轉成基本數(shù)據(jù)類型
String str3 = "300";
int s = Integer.parseInt(str3);
double i = Double.parseDouble(str3);
System.out.println(i);//300.0
//4.字符串轉boolean 除了true,其他結果都為false
Boolean b = new Boolean("a");
System.out.println(b);//false
基本數(shù)據(jù)類型與包裝類型區(qū)別
1.默認值
int 0
Integer null
2.包裝類當中提供了很多方法直接給我們使用
Integer.toBinaryString(5)
3.集合框架當中不能存放基本數(shù)據(jù)類型 ,只能存對象
什么時候使用基本數(shù)據(jù)類型 什么時候使用包裝類
在類當中,成員變量一般使用包裝類型
在方法當中,我們一般都是使用基本數(shù)據(jù)類型
方法中,基本數(shù)據(jù)類型存儲在棧當中,包裝類型存放在堆當中
包裝類valueof緩存設計
Integer i = new Integer(300);
Integer i2 = new Integer(300);
System.out.println(i==i2);//比較的是地址 不相等 每new一次 都會創(chuàng)建一個新地址
Integer i3 = Integer.valueOf(100);
Integer i4 = Integer.valueOf(100);
System.out.println(i3==i4);//包裝類的緩存設計 true
//range -128 to 127, 緩存范圍只有-128 到 127 超過這個范圍就不會使用緩存,直接創(chuàng)建新地址
Integer i5 = Integer.valueOf(300);
Integer i6 = Integer.valueOf(300);
System.out.println(i5==i6);//false
new Character('a');//[0 127] 緩存范圍
//Character.valueOf('c');
包裝類總結