目录
包装类: http://t.csdn.cn/XGFEu
▮包装类之间的比较
因为包装类是一个类,对象之间的关系不再是简单的关系运算。所以要清楚如何去比较包装类对象之间的关系
•代码实例
public static void main(String[] args) { Integer a = 200; Integer b = 200; Integer c = 199; Integer d = 201; //是否相等 System.out.println(a == b); System.out.println(a.equals(b)); //谁大谁小 if(a > c) { System.out.println("a > c"); } if(a < d) { System.out.println("a < d"); } if(a.compareTo(c)>0) { System.out.println("a > c"); } if(a.compareTo(d)<0) { System.out.println("a < d"); } }
▪特殊的“==”
范围在[-128,127]以内的Integer对象,竟然可以用“==”比较对象的value。
这只是一个假象,实际比较的依旧是对象所在的地址
▮包装类与字符串
包装类里,不仅有着包装类与基本数据类型之间相互转换的方法,还有String类型与包装类。基本数据类型之间的相互转换的方法。
•代码实例
public static void main(String[] args) { //字符串 -> 包装类 Double a = Double.valueOf("12.4");//valueOf()不仅可以实现基本数据类型转换成包装类 Integer b = Integer.valueOf("12"); //还可以实现字符串转换成包装类 //字符串 -> 基本数据类型 double x = Double.parseDouble("12.4");//parse翻译为:v,解析 int y = Integer.parseInt("12"); //包装类 -> 字符串,基本数据类型 -> 字符串 String str1 = Double.toString(a);//都是使用toStirng()方法 String str2 = Double.toString(12); }
▮打印进制
Integer包里有打印进制的方法,但其它包装类里就不太清楚了。
•代码实例
public static void main(String[] args) { //十进制 -> 二进制 String str1 = Integer.toBinaryString(1234); //十进制 -> 八进制 String str2 = Integer.toOctalString(1234); //十进制 -> 十六进制 String str3 = Integer.toHexString(1234); //二,八,十六进制 -> 十进制 int a = Integer.parseInt("10011010010",2);//两个参数(String 进制,int 进制类型) System.out.println(str1+" "+str2+" " + str3 + " " + a); }
▮常用常量
包装类提供了一些常用常量
public static void main(String[] args) { //Boolean public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); //所有包装类,这里以Integer为例 public static final int MIN_VALUE = 0x80000000; public static final int MAX_VALUE = 0x7fffffff; //Float和Double中的特殊值,如正负无穷,非数值 public static final double POSITIVE_INFINITY = 1.0 / 0.0; //正无穷 public static final double NEGATIVE_INFINITY = -1.0 / 0.0; //负无穷 public static final double NaN = 0.0d / 0.0; //非数值 }
▮输出其它基本类型
拆箱不仅可以拆成包装类对应的基本类型,还能拆成其它基本类型
•代码实例
public static void main(String[] args) { Integer a = 97; byte sub1 = a.byteValue(); short sub2 = a.shortValue(); long sub3 = a.longValue(); float sub4 = a.floatValue(); double sub5 = a.byteValue(); //不知为何,没有提供转为char的方法,不过我们可以先转成int再转成char char sub6 = (char)a.intValue(); }