神马叫拆箱,神马叫装箱呢?
我这里就简单写一写~~
话说百度能百度一堆
装箱与拆箱主要就是类型转化
装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型~~其实这也是我百度的~~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方法并不会进行类型转换。
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123