包装类
java分为两大类型:基本数据类型和引用数据类型
基本数据类型仅仅表示数值
包装类:将基本数据类型包装成引用数据类型
byte short int long fload double char boolean void
Byte Short Integer Long Fload Double Character Boolean Void
其中Void要有返回值
public class PackingDemo {
public static void main(String[] args) {
int i=20;//装箱:将基本数据类型转换成引用类型
Integer in =new Integer(i);
System.out.println(in);
Integer in1=10;//自动装箱
System.out.println(in1);
//笔试题
//自动装箱是jdk1.5之后的内容
//Integer自动装箱底层调用valueof()方法:指定一个-128
//到127的范围,如果在这个范围就返回这个固定值,如果不是就创建一个对象
Integer in2=134;
Integer in3=134;
System.out.println(in2==in3);
//Byte的valueof是固定值,没有新的对象产生
//Short的valueOf和Integer类似
//Lang 的valueOf和Integer类似
//Float 没有范围,直接new一个新的对象
//Double没有范围,直接创建一个对象
///Character的valueof和Interger类似
//Boolean 如果是true就返回TRUE 如果是false就返回FALSE
}
}
public class PackingDemo02 {
public static void main(String[] args) {
// 自动拆箱
Integer in=new Integer(10);
int i=in;
System.out.println(i);
//或者
int i1=new Integer(10);
//底层调用的是charValue()方法
char c=new Character('a');
//通过字符串创建Integer,Integer构造方法
//里面不能有字母代码实现逻辑,首先判断是否合法
//包装类中除了Character其他都有将字符串转换成
//包装类的对象
//补充:包装类在进行计算时,会自动转换成基本类型(拆箱)
//字符串转换成包装类
Integer in1=new Integer("234");
//包装类的哈希码值是固定的
System.out.println(in1.hashCode());
//NaN和任何数都不相等,和自身也不相等(0.0/0)
//判断数字是否是NaN
System.out.println(Double.isNaN(0.0/0));
System.out.println(new Double(0.0/0).isNaN());
//正无穷(1.0/0)负无穷(-1.0/0)
}
}
public class PackingDemo03 {
public static void main(String[] args) {
//将字符串转换成基本的数据类型
int i=Integer.parseInt("123");
System.out.println(i++);
double d=Double.parseDouble("3.2122");
//除了true 都是false,true可以忽略大小写。
Boolean b=new Boolean("True");
}
}