概述
装箱与拆箱操作
基本数据类型的包装类都是为了基本数据类型转为对象提供的,这样对于基本类型与包装类之间就有了如下操作关系:
- 数据装箱:将基本数据类型保存到包装类之中,一般可以利用构造方法完成。
- Integer类:public Integer(int value);
- Double类:public Double(double value);
- Boolean类: public Boolean(boolean value);
- 数据拆箱:从包装类中获取基本数据类型:
- 数值型包装类已经由Number类定义了拆箱的方法了
- Boolean型:public booleanValue();
范例:以int和Integer为例:
class
JavaDemo
{
public static void main(String[] args)
{
Integer obj = new Integer(10); //装箱
int num = obj.intValue(); //拆箱
System.out.println(num);
}
}
结果:
范例:以double与Double为例
class
JavaDemo
{
public static void main(String[] args)
{
Double obj = new Double(10.1); //装箱
double num = obj.doubleValue(); //拆箱
System.out.println(num);
}
}
结果:
范例:以boolean与Boolean为例
class
JavaDemo
{
public static void main(String[] args)
{
Boolean obj = new Boolean(true); //装箱
Boolean num = obj.booleanValue(); //拆箱
System.out.println(num);
}
}
结果
从JDK1.9之后,对于所有包装类之中提供的构造方法就变为了过期处理,不建议用户再继续使用了,这是因为从JDK1.5之后为了方便处理提供了自动的装箱与拆箱操作,所以这种手工的模式基本没人用了。
范例:观察自动装箱与拆箱
class
JavaDemo
{
public static void main(String[] args)
{
Integer obj = 10;//自动装箱,此时不再关心构造方法
int num = obj; //自动拆箱
obj ++; //包装类对象可以直接参与数据运算
System.out.println(obj);
}
}
结果:
除了提供有自动的数学运算支持之外,使用自动装箱最大的好处是可以实现 Object的接收基本数据类型的操作。
范例:Object接收小数
class
JavaDemo
{
public static void main(String[] args)
{
Object obj = 192.2; //double自动装箱为Double,向上转型为Object
double num = (Double) obj;//向下转型为包装类,再自动拆箱
System.out.println(num);
}
}
结果:
JDK1.5以后提供的自动支持功能,到了JDK1.9之后为了工具此概念,所以将包装类的构造方法都设置为过期定义。
但是对于包装类需要注意:关于相等判断上。
范例:
class
JavaDemo
{
public static void main(String[] args)
{
Integer x = 99;
Integer y = 99;
System.out.println(x == y); //结果为true
}
}
class
JavaDemo
{
public static void main(String[] args)
{
Integer x = 128;
Integer y = 128;
System.out.println(x == y); //结果为false
System.out.println(x.equals(y)); //结果为true
}
}
以后进行包装相等判断的时候一定要使用equals()完成,而包装类本身也需要考虑占位的长度,如果超过了一位的内容,那么就需要使用equals(), 如果不超过就可以使用==来判断。
最后
以上就是隐形钢笔为你收集整理的装箱与拆箱操作的全部内容,希望文章能够帮你解决装箱与拆箱操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复