java对象的包装_java中常见对象——基本包装类
為了對(duì)基本數(shù)據(jù)類(lèi)型進(jìn)行更多的操作,更方便的操作,Java就針對(duì)每一種基本數(shù)據(jù)類(lèi)型提供了對(duì)應(yīng)的類(lèi)類(lèi)型。包裝類(lèi)類(lèi)型:
byte ????????????????????????Byte
short????????????????????????Short
int????????????????????????????????Integer
long????????????????????????????????Long
float????????????????????????Float
double????????????????????????Double
char????????????????????????????????Character
boolean????????????????????????Boolean
用于基本數(shù)據(jù)類(lèi)型與字符串之間的轉(zhuǎn)換。
demo:
public class IntegerDemo {
public static void main(String[] args) {
// 不麻煩的就來(lái)了
// public static String toBinaryString(int i)
System.out.println(Integer.toBinaryString(100));
// public static String toOctalString(int i)
System.out.println(Integer.toOctalString(100));
// public static String toHexString(int i)
System.out.println(Integer.toHexString(100));
// public static final int MAX_VALUE
System.out.println(Integer.MAX_VALUE);
// public static final int MIN_VALUE
System.out.println(Integer.MIN_VALUE);
}
}
Integer的構(gòu)造方法:
public Integer(int value)
public Integer(String s)
注意:這個(gè)字符串必須是由數(shù)字字符組成
demo:
public class IntegerDemo {
public static void main(String[] args) {
// 方式1
int i = 100;
Integer ii = new Integer(i);
System.out.println("ii:" + ii);
// 方式2
String s = "100";
// NumberFormatException
// String s = "abc";
Integer iii = new Integer(s);
System.out.println("iii:" + iii);
}
}
int類(lèi)型和String類(lèi)型的相互轉(zhuǎn)換:
int -- String
String.valueOf(number)
String -- int
Integer.parseInt(s)
Demo:
public class IntegerDemo {
public static void main(String[] args) {
// int -- String
int number = 100;
// 方式1
String s1 = "" + number;
System.out.println("s1:" + s1);
// 方式2
String s2 = String.valueOf(number);
System.out.println("s2:" + s2);
// 方式3
// int -- Integer -- String
Integer i = new Integer(number);
String s3 = i.toString();
System.out.println("s3:" + s3);
// 方式4
// public static String toString(int i)
String s4 = Integer.toString(number);
System.out.println("s4:" + s4);
System.out.println("-----------------");
// String -- int
String s = "100";
// 方式1
// String -- Integer -- int
Integer ii = new Integer(s);
// public int intValue()
int x = ii.intValue();
System.out.println("x:" + x);
//方式2
//public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println("y:"+y);
}
}
Integer中進(jìn)制轉(zhuǎn)換的操作
常用的基本進(jìn)制轉(zhuǎn)換
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
十進(jìn)制到其他進(jìn)制
public static String toString(int i,int radix)
由這個(gè)我們也看到了進(jìn)制的范圍:2-36
為什么呢?0,...9,a...z
其他進(jìn)制到十進(jìn)制
public static int parseInt(String s,int radix)
demo:
public class IntegerDemo {
public static void main(String[] args) {
// 十進(jìn)制到二進(jìn)制,八進(jìn)制,十六進(jìn)制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------");
// 十進(jìn)制到其他進(jìn)制
System.out.println(Integer.toString(100, 10));
System.out.println(Integer.toString(100, 2));
System.out.println(Integer.toString(100, 8));
System.out.println(Integer.toString(100, 16));
System.out.println(Integer.toString(100, 5));
System.out.println(Integer.toString(100, 7));
System.out.println(Integer.toString(100, -7));
System.out.println(Integer.toString(100, 70));
System.out.println(Integer.toString(100, 1));
System.out.println(Integer.toString(100, 17));
System.out.println(Integer.toString(100, 32));
System.out.println(Integer.toString(100, 37));
System.out.println(Integer.toString(100, 36));
System.out.println("-------------------------");
//其他進(jìn)制到十進(jìn)制
System.out.println(Integer.parseInt("100", 10));
System.out.println(Integer.parseInt("100", 2));
System.out.println(Integer.parseInt("100", 8));
System.out.println(Integer.parseInt("100", 16));
System.out.println(Integer.parseInt("100", 23));
//NumberFormatException
//System.out.println(Integer.parseInt("123", 2));
}
}
JDK5的新特性——自動(dòng)裝箱/自動(dòng)拆箱:
自動(dòng)裝箱:把基本類(lèi)型轉(zhuǎn)換為包裝類(lèi)類(lèi)型
自動(dòng)拆箱:把包裝類(lèi)類(lèi)型轉(zhuǎn)換為基本類(lèi)型
注意一個(gè)小問(wèn)題:
在使用時(shí),Integer x = null;代碼就會(huì)出現(xiàn)NullPointerException。
建議先判斷是否為null,然后再使用。
demo:
public class IntegerDemo {
public static void main(String[] args) {
// 定義了一個(gè)int類(lèi)型的包裝類(lèi)類(lèi)型變量i
// Integer i = new Integer(100);
Integer ii = 100;
ii += 200;
System.out.println("ii:" + ii);
// 通過(guò)反編譯后的代碼
// Integer ii = Integer.valueOf(100); //自動(dòng)裝箱
// ii = Integer.valueOf(ii.intValue() + 200); //自動(dòng)拆箱,再自動(dòng)裝箱
// System.out.println((new StringBuilder("ii:")).append(ii).toString());
Integer iii = null;
// NullPointerException
if (iii != null) {
iii += 1000;
System.out.println(iii);
}
}
}
Integer的數(shù)據(jù)直接賦值,如果在-128到127之間,會(huì)直接從緩沖池里獲取數(shù)據(jù):
demo:
public class IntegerDemo {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));
// 通過(guò)查看源碼,我們就知道了,針對(duì)-128到127之間的數(shù)據(jù),做了一個(gè)數(shù)據(jù)緩沖池,如果數(shù)據(jù)是該范圍內(nèi)的,每次并不創(chuàng)建新的空間
// Integer ii = Integer.valueOf(127);
}
}
總結(jié)
以上是生活随笔為你收集整理的java对象的包装_java中常见对象——基本包装类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 文件 迭代_C迭代文件和目录
- 下一篇: java递归实现 堆的删除_java 递