黑马程序员技术交流社区

标题: 基本数据类型和包装类有什么区别啊??? [打印本页]

作者: 赵鸿富    时间: 2013-3-14 09:58
标题: 基本数据类型和包装类有什么区别啊???
本帖最后由 赵鸿富 于 2013-3-14 15:46 编辑

首先什么是包装类?它和基本数据类型有什么区别啊?
作者: 马甲大王    时间: 2013-3-14 10:22
包装类创建的是对象,拥有方法和字段.对象的调用都是通过引用对象的地址 ,引用存在于栈内存中;

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


变量的值存储在栈里,而对象存储在堆里,相比而言,堆栈更高效,这也是java保留基本类型的原因。包装类创建的对象,可以使用api提供的一些有用的方法。更为强大。
作者: 谢洋    时间: 2013-3-14 10:24
毕老师的视频说得很清楚,还设计了类似BufferedReader那样的一个包装类:MyBufferedReader.如果你笔记做得好的话,你马上就可以得到答案
作者: 牛合超    时间: 2013-3-14 10:28
这个问题,,这么说吧,,用基本数据类型声明的不能当对象使用,所以,他就提供了包装类,,这样就可以当对象用了,,

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

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

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

   
      
作者: 赵亚威    时间: 2013-3-14 12:09
初期并没有包装类 只有基本数据类型 就是值传递 但在对数据库的操作中老是会发生问题 比如 0和null之间在强制类型转换时 也会发生这样或那样的问题 所以为了对数据库中的数据准确简单的操作 就对基本数据类型提供了相对应的包装类 即Java的封装特性 这样就可以通过反射来调用你所操作的字节码文件 而且对于字节码文件有好多的方法 这样既能满足需求 又能简化操作 而且也能解决以前的问题 说实话 包装类我们可以看成是一个沟通的桥梁。还有int在以前的版本中无法转成Object  有了包装类 就可以自动的把int 转化成Object 不过虚拟机还是要先转化成Integer的
作者: 汪平乐    时间: 2013-3-14 13:00
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;
} ,基本类型用来变量声明....


作者: 陈丽莉    时间: 2013-3-14 13:32
还有不明白的地方,请继续追问;没有的话请将帖子分类改成【已解决】~




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