黑马程序员技术交流社区

标题: 怎么一大堆人把自动转型说成自动装箱? [打印本页]

作者: 谢洋    时间: 2013-3-5 02:54
标题: 怎么一大堆人把自动转型说成自动装箱?
装箱就是转型吗?转型就是转装箱?
如:byte b= 1+1;这里发生的是装箱?还是转型?
再如:int数据装箱成Integer对象,不是把int数据装到里面去?
int与Interger根本都没发生继承关系,根本就不是同一个类型的,怎么转型?
作者: lzw123451    时间: 2013-3-5 03:18
byte b= 1+1;这里发生的是是转型。
int是基本数据类型,Integer对象是对象,把基本数据类型变成相应的对象就是自动装箱。
int不是类,肯定不能和Integer发生什么继承关系。

作者: 谢达    时间: 2013-3-5 09:00
byte b= 1+1;个人认为这里既不涉及转型也不涉及装箱,这就是个简单的赋值吧
int i=1;
byte b1 = (byte) (i+1);//这里就涉及到数据类型转换,但不是转型
转型和装箱不是一个意思,转型的类型之间是有父子关系的
Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。所以把int类型封装成Integer对象才是装箱,

作者: 沈文杰    时间: 2013-3-5 10:51
自动装箱:将基本数据类型包装在与之对应的java类中(四类八种)
其字节码相同,int 是Integer的一个实例对象

byte Byte
short short   
int Integer        整形
long Long

float Float        浮点型
double Double

boolean Boolean    布尔型

char Character     字符型

强制类型转换:向上或者向下转型,属于多态

例子:
Integer i = 3;//自动装箱不需要手动写成Integer i = (Integer)3;
Object obj = (Object)"abc";//类型强转(类型提升,属于多态),手动完成
               
System.out.println(i);//自动拆箱
System.out.println(obj);

谢谢你上次帮我回答的问题哈,我懂了
作者: 杨杨    时间: 2013-3-5 11:53
跟楼主学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2