之前的文章,可能完全出於筆記,或者記錄而言,並沒有帶着分享的心得去寫,有一些內容筆記知識點寫的不夠全面,希望讀者可以多給點建議,這次我也總結下基本數據類型及其包裝類這一刻的內容,查閱了網上資料,大家可以瞭解下,翻翻看。
一 基本數據類型的系統描述:
- 總述:Java基本數據類型分爲兩大類:boolean類型和數值類型。數值類型可分爲整數類型和浮點類型,而其中字符類型可單獨對待。所以Java只包含8種基本數據類型。
1 boolean 數值只有true和false,不能用0代替。其他數值類型不能轉換成boolean。包裝類–Boolean
2 byte -內存8位,無符號位時最大存儲255,表數範圍:-128~127。包裝類–Byte
3 short -內存16位,無符號位時最大存儲65536,表數範圍:-32768~32767。包裝類–Short
4 int -內存32位,無符號位時最大存儲2的32次方減1,表數範圍:負的2的31次方到正的2的31次方減1。包裝類–Integer。
5 long -內存64位,無符號位時最大存儲2的64次方減1,表數範圍:負的2的63次方到正的2的63次方減1。包裝類–Long。
6 float -內存32位,數據範圍在3.4e-45~1.4e38,直接賦值時必須在數字後加上f或F。包裝類–Float。
7 double -內存64位,數據範圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加。包裝類–Double。
8 char:-16位,存儲Unicode字符集,用單引號賦值。可以參與加減乘除運算的,也可以比較大小的!!包裝類–Character。
二 包裝類
1. 包裝類把基本類型數據轉換爲對象
每個基本類型在java.lang包中都有一個相應的包裝類
2. 包裝類有何作用
2.1 提供了一系列實用的方法
java提供相應的包裝類的目的:爲了方便操作基本數據類型值,將其封裝成了對象,在對象中定義了屬性和行爲,豐富了該數據的操作,面向對象
包裝類共性:
和String類型相互轉換
a)基本類型 轉換 String:
1)用String類中的靜態方法valuOf(基本類型數值)
b.String 轉換 基本類型:
1).使用包裝類中的靜態方法 xxx parseXxx(“xxx類型的字符串”):
Byte.parseByte()
Short.parseShort()
Integer.parseInt() 字符串轉成int整數
Long.parseLong()
Float.parseFloat()
Double.parseDouble()
Boolean.parseBoolean()
只有Character沒有parse方法,不需要
2)如果字符串被Integer進行了封裝。
可以用另一個非靜態的方法,intValue():
Integer i = new Integer("123");
i.intValue();
- 進制轉換:
1.十進制 轉換 其他進制:
String toBinaryString(int i); 轉換成二進制
toOctalString(int i); 轉換成八進制
toHexString(int i); 轉換成十六進制
toString(int i, int radix); 轉換成指定進制
2.其他進制 轉換 十進制:
int parseInt(String s, int radix);
(Integer valueOf(String s, int radix); 返回的值不能運算,還是字符串。)
- 數字對象的運算
//數字對象的運算:
Integer a = new Integer("3");
Integer b = new Integer(3);
Integer c = new Integer(1);
System.out.println(a==b); //false
System.out.println(a.equals(b)); //true , 比較數值是否相同
System.out.println(c.compareTo(a)); //比較
JDK1.5自動裝箱拆箱:
l自動裝箱
Integer a = 5
編譯器編譯爲:
Integer a = Integer.valueOf(5);
自動拆箱
int i = a;
編譯爲:
int i = a.intValue();
a = a+1;
編譯爲:
a = Integer.valueOf(a.intValue()+1);
自動拆箱要當心 null 值
a+1 –> a.intValue()+1
如果a是null,程序出錯Integer的緩存機制
Integer 類中,存在[-128,127]範圍的緩存對象,如果指定範圍內的值,直接訪問緩存對象,如果指定範圍外的值,創建新對象2.2集合不允許存放基本數據類型數據,存放數字時,要用包裝類型
自動裝包與拆包:自動裝包/拆包大大方便了基本類型數據和它們包裝類地使用。
自動裝包:基本類型自動轉爲包裝類.(int >> Integer)
自動拆包:包裝類自動轉爲基本類型.(Integer >> int)
3.String 基本數據類型 包裝類 三者的轉換
/**
* 【面試題】——"34 9 -7 67 25"要求對這個字符串中的數值進行從小到大的排序,
* 生成一個數值有序的字符串。
* 思路:
* 1. 把其中的數拿出來,——對字符串進行切割。
* 2. 對數進行排序
* 3. 再追加成字符串。
*步驟:1.將字符串切割成字符串數組。split。
* 2.定義一個int數組,將字符串數組中的元素轉成整數存儲 到int數組中
* 3.對int數組排序
* 4.將int數組排序後轉成字符串數組
* @author asus
*
*/
public class Test3 {
public static void main(String[] args) {
String s ="34 9 -7 67 25";
//用空格對原字符串進行切割,轉成字符串數組
String[] s1 =s.split(" ");
int[] arr = new int[s1.length];
//將字符串數組轉成int類型數組
for (int i = 0; i < s1.length; i++) {
arr[i] = Integer.parseInt(s1[i]);
}
//對int類型的數組進行排序
for (int i = 0; i < s1.length-1; i++) {
for(int j=0;j<s1.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1] =temp;
}
}
}
//定義字符串緩衝區,並將int類型數組轉換成字符串類型的數組
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
if(i!=arr.length-1)
sb.append(arr[i]+" ");
else
sb.append(arr[i]);
}
System.out.println(sb);
}
}