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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋斗的青春 金牌黑马   /  2012-11-2 08:05  /  5286 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JAVA中数字包装器类是什么意思,原始数据是指什么,拆箱和装箱是什么意思?

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

4 个回复

正序浏览
Java是一种面向对象语言,java中的类把方法与数据连接在一起,并构成了自包含式的处理单元.但在Java中不能定义基本类型(primitive type),为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本类型都提供了包装类,这样,我们便可以把这些基本类型转化为对象来处理了.这些包装类有:Boolean,Byte,Short,Character,Integer,Long,Float,Void等.
值得说明的是,java是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了.所有的包装类(Wrapper Class)都有共同的方法,他们是:
(1)带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);
(2)带有字符串参数并创建包装类对象的构造函数.如new Integer("-45.36");
(3)生成字符串表示法的toString()方法,如obj.toString().
(4)对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);
(5)生成哈稀表代码的hashCode方法,如obj.hasCode();
(6)将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);
(7)可生成对象基本值的typeValue方法,如obj.intValue();
在一定的场合,运用Java包装类来解决问题,能大大提高编程效率。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

回复 使用道具 举报
举个例子吧:
Integer x,y;
x=17;
y=25;
System.out.println(x+y);
为什么当x和y分别被赋予整型值17和25时,编译器会对这些整形值进行装箱操作,装的是什么箱啊,而在println()语句中,x,y被拆箱这是什么意思呢?


17本是一个int型的常量,
Integer x=17;//这一步,就自动把int型17的装入Integer型的x,这叫自动装箱
System.out.println(x);//这里的println只能打印int型,而x是Integer型,而实际上x又被拆封箱成int型并显示,这叫自动拆箱

y同理

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

回复 使用道具 举报
查到的一段资料:
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class);
没有自动拆装箱之前(显得比较繁琐):
int i = 10;                    
Integer it = new Integer(100);                    
//将int类型转换为Integer类型                    
it = new Integer(i);                    
//将Integer类型的对象转换为int类型                    
i = it.intValue();
JDK自从1.5(5.0)版本以后(简化),引入了自动拆装箱的语法,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,
这将大大方便程序员的代码书写。
//int类型会自动转换为Integer类型                  
int i = 10;                    
Integer it = i;                  
//Integer类型会自动转换为int类型                    
i = it;

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

回复 使用道具 举报
Byte                byte
Short        short
Integet   int
Long        long
Boolean        boolean
Float        float
Double        double
Character                char
左边包装类,右边基本数据类型。
拆箱:就是将包装类,拆成一个基本数据类型。
装箱:就是将基本数据类型,包装成一个类。

将基本数据类型包装成包装数据类型的原因是:好处更多!
就拿Integer来说,它又Integer.MAX_VALUE字段,而int是表现不出来的。
有toString类型。比用int+""专业。
有将数字字符转化成数字的方法。parseInt
最最重要的一点是:在web开发中,Integer默认值为null,int默认值为0.
如果用它们分别表示一个学生的成绩的话,显然Integer要好一些。
如果用int来表示。0到底代表考试成绩为0呢,还是没来参加考试呢,而Integer
可以用null来表示未参加考试,0代表成绩为0.
(摘自张孝祥老师的java面试宝典)

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马