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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵鸿富 于 2013-3-14 15:46 编辑

首先什么是包装类?它和基本数据类型有什么区别啊?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

6 个回复

倒序浏览
包装类创建的是对象,拥有方法和字段.对象的调用都是通过引用对象的地址 ,引用存在于栈内存中;

基本类型直接存储在堆内存中,直接存数值 .另外一个区别是,包装类是引用传递 而基本类型是值传递 ;


变量的值存储在栈里,而对象存储在堆里,相比而言,堆栈更高效,这也是java保留基本类型的原因。包装类创建的对象,可以使用api提供的一些有用的方法。更为强大。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
毕老师的视频说得很清楚,还设计了类似BufferedReader那样的一个包装类:MyBufferedReader.如果你笔记做得好的话,你马上就可以得到答案
回复 使用道具 举报
这个问题,,这么说吧,,用基本数据类型声明的不能当对象使用,所以,他就提供了包装类,,这样就可以当对象用了,,

当然,每个基本数据类型都有一个相对应的包装类,比较特殊的是int 包装类是Integer,,其他对应的都是首字母大写,比如,byte

对应的就是Byte。。。double 对应Doubloe

例: int num1=10;
       Integer num=Integer.valueOf(num1);

   
      

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
初期并没有包装类 只有基本数据类型 就是值传递 但在对数据库的操作中老是会发生问题 比如 0和null之间在强制类型转换时 也会发生这样或那样的问题 所以为了对数据库中的数据准确简单的操作 就对基本数据类型提供了相对应的包装类 即Java的封装特性 这样就可以通过反射来调用你所操作的字节码文件 而且对于字节码文件有好多的方法 这样既能满足需求 又能简化操作 而且也能解决以前的问题 说实话 包装类我们可以看成是一个沟通的桥梁。还有int在以前的版本中无法转成Object  有了包装类 就可以自动的把int 转化成Object 不过虚拟机还是要先转化成Integer的

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
java中所以处理的东西几乎都是对象(万物皆对象),但基本(Primitive)数据类型不是对象,即我们使用的int、double、boolean等定义的变量,在使用java中,有时需要将基本数据类型转换为对象。例如使用Map对象要操作put()方法时,需要传入的参数是对象而不是基本数据类型,这时可以使用打包类型(Wrapper Types)将基本数据类型包装为对象。如使用以下语句才能将int包装为一个Integer对象:Integer integer = new Integer(10);
但有点小区别,int x= 10;在java中是一个变量声明,不是一个语句,
如:while(true)
{
    int x = 10;
} ,基本类型用来变量声明....

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
还有不明白的地方,请继续追问;没有的话请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马