java 自动装箱(面试题)基本知识总结即简例

自动装箱

类型包装器:在一个对象内部封装一个基本类型的类。

类型包装器产生原因:首先 使用基本数据类型而不是对象来处理是出于性能方面的考虑。但是 基本数据类型不属于对象体系的一部分,也不能继承object类。

           但有时还需要对象表示。不能通过引用一个基本类型传递给一个方法。 而且 java中使用的许多标准的数据结构都是操作对象的 这意味着数据结构不能储存基本类型的类  为了处理这些情况 java提供了 类型包装器(type_ wrapper)

 包装器有:

Character char的包装器

Boolean 封装布尔值的包装器

数字包装器 都继承与抽象类number

所有的包装器都重写了 tostring()方法

装箱(boxing:将一个值封装进一个对象的过程。

比如: Integer iob=new Integer(100);

拆箱(unboxing)从一个类型包装器中提取值的过程。

比如:int i=iob.intValue();//在自动jdk1.5之后出现自动装箱淘汰。

自动装箱(outoboxing)

java 会为你自动构造一个对象

Integer iob=100;//没有new来显示建立。

自动拆箱(autounboxing

int i=iob;

自动装箱和自动拆箱会自动运行

可以运行在方法里

           static int m(Integer v)

           return v;                     //auto-unbox  to int;

和表达式

Integer iob;

iob=100;

++iob;     //autoboxing  iob被拆箱 值递增 然后结果被重新装箱

自动装箱允许在一个表达式里混用不同类型的数字型对象一旦被拆箱  就会用标准的类型提示和转换

 Integer iob=100;

           Double dob=98.6

Dob=dob+iob;         //dob=198.6

 

 

 自动装拆箱有助于防止错误

Integer iob=100;

  int I =iob.byteValue           //I=-24;

通过调用byteValue()手动拆箱 使存储在iob中的值1000被截取,得到垃圾数据-

自动装拆箱可以防止这一类错误

 

警告 java可以自动装拆箱所以一些人只使用

对象,而将基本数据类型全盘抛弃 

完全是对自动装拆箱的误用 合理使用才会增加效率。自动装箱会额外增加系统负担 基本类型不会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值