一、Integer是什么
因为Java是一种面向对象的语言,很多情况下需要对对象进行操作,而基本数据类型无法被实例化,包装类就是因此而诞生的,以便能够把基本数据类型包装成对象类型。而既然是包装类的话,那么就可以被实例化下面是集中实例化包装类的方式:
采用自动装箱的方式实例化Integer类型的变量i
Integer i = 10
/*上面是自动装箱的写法,在Java5及以上的版本中,
编译器会自动将基本数据类型的值(如int)转换为对应的包装类对象(如Integer)。
因此,这行代码实际上会被编译器转换为Integer i=Integer.valueOf(10)*/
Integer i = Integer.valueOf(10)
使用构造方法实例化包装类
Integer i = new Integer(10);
使用自动装箱实例化和构造方法实例化的区别:
每次调用Integer i = new Integer(10);都会创建一个新的对象,不论是否已经有相同值的对象,会占用内存。用自动装箱的方法实例化,这个静态方法会在内部创建一个缓存池(堆中),如果请求的值在缓存范围之内,则会返回缓存池中的值,而不会创建一个新的对象。
从性能方面分析,更推荐使用自动装箱的方法进行实例。
二、Integer的作用(具体实例)
Integer num = 10;
int a = num.intValue();//将包装类对象转化为基本数据类型
int b = Integer.parseInt("123");//将字符串转为int
int c = Integer.max(21,56);//比较两个整型数的大小
可以具体的感受到,int和Integer的区别,Integer相当于一个类,内部封装了一些方法可以被调用。
三、包装类的应用
使用包装类进行对象操作
Boolean b1 = true;
Boolean b2 = false;
// 判断两个Boolean对象是否相等
if (b1.equals(b2)) {
System.out.println("b1 和 b2 相等");
} else {
System.out.println("b1 和 b2 不相等");
}
// 判断Boolean对象的boolean值
if (b1.booleanValue()) {
System.out.println("b1 的值为 true");
} else {
System.out.println("b1 的值为 false");
}