继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习心得】论java的拆箱与装箱

慕码人3916992
关注TA
已关注
手记 98
粉丝 81
获赞 3602

神马叫拆箱,神马叫装箱呢?

我这里就简单写一写~~

话说百度能百度一堆

装箱与拆箱主要就是类型转化

装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型~~其实这也是我百度的~~23333333


装箱Integer类型(其他类型相同)

Integer i =1;

拆箱子

int m = i;

--------------------

两个对象之间的对比一般是用 equals ~~对比不同

不能直接双等于

比如说

Integer m = 0;

Integer n = 0;

m==n是完全错误的(正确的写法:m.equals(n))

~~~~但是呢(凡事都有个但是)

(如下是新手会犯的错误)

在一定范围内的数是可以用==来判断一旦超越某个数值就会出错

一般新手不会发现这个问题~~

这个问题的原因是:

如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。
-------------------------

如果是

Integer m = 0;

int n = 0;

m==n 这个是对的~~他会自动拆箱

-------------------------

解释如下:

当 "=="运算符的两个操作数都是包装器类型的引用,则是比较指向的是否是同一个对象

而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)。

另外,对于包装器类型,equals方法并不会进行类型转换。

打开App,阅读手记
15人推荐
发表评论
随时随地看视频慕课网APP

热门评论

看懂了,赞一个

装箱拆箱,通熟易懂

哈 哈

查看全部评论