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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王程 中级黑马   /  2012-8-11 15:20  /  1452 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java中既有基本数据类型,也有基本数据类型的包装类,而且包装类也能进行运算,那么为什么不去除基本数据类型,只剩下包装类不是就可以了吗,而且每个包装类都是一个对象,不是更符合“万物皆对象”这句话吗?

4 个回复

倒序浏览
包装类创建的是对象,基本类型创建的是变量,变量的值存储在堆栈里,而对象存储在堆里,相比而言,堆栈更高效,这也是java保留基本类型的原因。包装类创建的对象,可以使用api提供的一些有用的方法,更为强大。因为基本数据类型相关的方法没地方写 ,所以要找个类来写这些方法最好的选择就是为每一种数据类型设置一个映射类来存放这些方法。另外一个区别是,包装类是引用传递 而基本类型是值传递。
jdk1.5以后都可以自动拆装箱了
int i=new Integer(5);//自动拆箱
Integer j=6;//自动装箱

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 回答的很好!

查看全部评分

回复 使用道具 举报
因为设定他们时 考虑的不仅仅是能不能达到效果,还要考虑 是否节省内存 ,是否高效。
毫无疑问,基本数据类型 存在于栈内存用完就释放无需等 垃圾回收机制 的不定时操作,更加优化内存,
而且栈内存中的速度也比存放对象的堆内存要快
回复 使用道具 举报
java中数据类型分为基本数据类型和引用数据类型基本数据就是:int,float,boolean等等,8种,引用数据类型包括:类,数组,接口所以基本数据类型的包装类属于引用数据类型。
而且基本数据类型占用空间少,节约内存,int类型的只要4个字节,但是new一个Integer的对象肯定不止4个字节的。而且基本数据类型值存储在堆栈里,基本数据类型的包装类创建的对象存储在堆里,相比而言,堆栈更高效。包装类是引用传递 而基本类型是值传递。

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 新人鼓励!

查看全部评分

回复 使用道具 举报
java中设置了基本数据类型,也设置了基本数据类型的包装类,除了基本数据类型更节约空间和更高效外,我认为,还有一个原因是为了让以前学别的程序的程序员能够更好的过度到java中,因为java中的基本数据类型跟以前的语言的数据类型是相似的,同时又提供了基本数据类型的包装类,这样真正体现了java的真正的面向对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马