A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hello_Boys 中级黑马   /  2014-12-17 09:13  /  1291 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

包装类中的装箱和拆箱怎样理解?

评分

参与人数 1黑马币 +2 收起 理由
杨佳名 + 2

查看全部评分

7 个回复

倒序浏览
本帖最后由 张周飞 于 2014-12-17 09:41 编辑

1:拆箱是把“引用”类型  转换成    “值”类型;
    装箱就是把基础类型封装成一个类。比如把int封装成Integer,这时你就不能把他当成一个数了,而是一个类了,对他的操作就需要用它的方法了。
2:装箱是把“值”类型     转换成    “引用类型;
     拆箱就是把类转换成基础类型。比如你算个加法什么的是不能用类的,就得把它转换成基本类型,jdk5以后已经可以自动转换了貌似。基本类型你应该懂的吧,就那八种
      有时某些方法的参数要求使用“引用”类型,而你想把“值”类型的变量通过这个参数传入,就需要使用这个操作。
      我知道和C#.NET里的概念是一样的

一个是包装类,一个是数据类型,这是面向对象思想的产物,一切皆对象,所以数据也可以是对象,这就产生了java中自动装箱和拆卸功能,装箱就是将数据类型定义的变量转换为包装类,拆箱将类转换为数据类型定义的数据,。。。。。。,希望可以有助于你的理解

int是基本数据类型,integer是包装类,属于引用类型,可以创建对象
:在集合中定义的泛型  只能是对象!!包装类 就是可以创建对象 ,基本数据类型不可以!!!

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2 赞一个!

查看全部评分

回复 使用道具 举报 1 0
就是类型转换嘛,想那么难干什么
回复 使用道具 举报
其实这个我也不太明白,学习了,感谢
回复 使用道具 举报
我个人是这样理解的
包装类以Integer为例,数据类型以int为例
编程语言以前不是面向对象的,数据的类型有int等等
编程语言发展到拥有面向对象的特性后,将数据类型也演进成了对象 int->integer
个人笼统的认为,Integer比int高级,Integer有很多方法来操作,而int没有
回复 使用道具 举报
看评论学习了
回复 使用道具 举报
装箱就是把一个基本数据类型封装成类,拆箱就是把这个类用自己带的方法把基本数据类型的值在给你,只不过这些都是自动完成的,不需要你手动去操作
回复 使用道具 举报
duluhua 中级黑马 2014-12-18 20:21:10
8#
我的理解是,数据类型间的转换。
1.数据类型分为基本数据类型和引用数据类型。
2.而基本数据类型一般都有其对应的应用数据类型。比如
   基本数据类型    int   对应的是引用数据类型是 Integer
   基本数据类型    long  对应的引用数据类型是   Long
  。。。。。。
3.装箱应该就是把基本数据类型转为引用数据类型,比如把int转为Integer
拆箱的话,应该是相反的过程,如把Integer转为int
4.在Java中实现了拆箱和装箱的自动转换,比如  你可以写Integer i = 1;  因为1是int基本数据类型,而i是Integer引用数据类型,Integer i= 1;就自动把int转为Integer了。
5.主要是基本数据类型和引用数据类型的应用场景是不一样的。基本数据类型就是单一的一个值,而引用数据类型就是一个对象了,对于对象,我们 可以使用对象的方法和属性
6.感觉应该就是这些区别吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马