java基礎02

基本數據類型封裝類
byte Byte
short Short
int Integer
long Long
float Float
double Double
char character
boolean Boolean
int 轉 String
String s=String.valueOf(i);
String s=Integer.toString(i);
String s=""+i;
String 轉 int
String s;
int i=Integer.parseInt(s);
int i=Integer.valueOf(s).intValue();
Double Float Long 和Integer方法差不多;Character沒有parse*方法
進制轉換
十進制轉爲十進制 toString();
十進制轉換爲二進制 toBinaryString();
十進制轉換爲八進制 toOctalString();
十進制轉換爲十六進制 toHexString();
十進制轉換爲任意進制 toString(int,redix);
其他進制轉換爲十進制
2 Integet.parseInt("1010",2); //10
8 Integet.parseInt("12",8); //10
16 Integet.parseInt("10",16); //10
自動裝箱拆箱問題
int i1=3; Integer i2=3; //new Integer(3); 自動裝箱,簡化書寫Integer i3=new Integer(3);
//基本類型在堆棧上創建,對象類型在堆上創建,對象的引用在堆棧上創建;在堆棧上分配內存的調用效率要比在堆上分配內存的效率高出許多。
syso(i1=i2); //true i2進行自動拆箱操作,將對象類型變爲基本類型
syso(i2=i3); //false 不同對象引用地址值不同
syso(i1=i3); //true i3進行自動拆箱操作,將對象類型變爲基本類型
syso(i2.equals(i3)); //true equals比較的是對象的內容
int i4=i1+i2; //i2進行自動拆箱,將i2變爲基本類型

Integer a=new Integer(127); Integer b=new Integer(127);
syso(a==b); //false new的對象引用的地址值不同
syso(a.equals(b)); //true equals比較是不是同種類型並且值相同不相同   

Integer x=127; Integer y=127;
syso(x=y);syso(x.equals(y));
//自動裝箱,如果裝箱的是一個字節,那麼該數據會被共享不會重新開闢空間,所以a,b所引用的地址值相同
自動裝箱產生相同對象: 
        Integer     (-128,128)
        Short       (-128,128)
        Character   c<128
        Long        (-128,128)
        Boolean 傳入的值是什麼值就是什麼值,不會創建對象,因爲Boolean.valueOf(boolean b)方法中已經創建了兩個對象。
        其他封裝類型會直接調用valueOf()new對象
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章