旺旺老师的教学电子书,《旺旺老师JavaSE教程》。理想目标是: 让新手当技术类书籍来学习它,让老手当消遣类散文来阅读它。想让所有人,在快乐中学习,在快乐中成长,在快乐中工作。
主题:旺旺老师软件工程师实训教程--JAVASE 第六章:包与JAVA常用类假如有两变量: int a = 10; Integer b = new Integer(10);他们的内存表示如下图所示:
大家看到,基本数据类型变量只在栈中分配一块内存,而包装类在栈和堆中各占一块。
JAVA语言是面向对象的语言,但它不是所有的设计思想都符合面向对象的,这里大家要知道java不符合面向对象的两个地方:一个是JAVA保留了8个基本数据类型,他们不是对象,更没有属性和方法;另一个就是JAVA中存在着main方法。
包装类可以完成基本数据类型所有的功能,如数数据存储,并且他们是类,拥有属性和方法,也就是有自己的新功能,那有些同学就会想,既然有更强大的包装类,SUN为什么还要保留那八个不是对象的基本数据类型呢?这设计到效率与需求的问题。
上课经常给学生讲这个例子,比如你家有爷爷奶奶父母你五口人,现在需要每人配备一部手机。市面上的手机有两种:便宜的只能通话的手机,昂贵的功能齐全的智能手机。一般的话我们会根据需求来购买,爷爷奶奶没什么要求买个普通的就行,您要上网要拍照要视频要显摆那就买个智能手机吧;其实如果您家太有钱的话给每人一部智能手机也没问题。
JAVA中也是一样,上面我们知道,包装类分配两块内存空间,存放具体数值的数据在堆中,而堆内存的分配比较占用系统资源,而且使用完毕后需要垃圾回收车回收,而我们平时在程序中要大量使用如数字这些变量,他们只做简单的存储,完全没必要使用包装类,那这样不如保留基本数据类型,它在完成功能的同时又不会占用过多的资源, SUN也是基于这样的考虑保留了JAVA中的基本数据类型。
6.2.2自动拆箱与装箱
我们把数据由基本数据类型转换为对应包装类叫做装箱,把数据由包装类转化为基本数据类型叫拆箱。在JDK1.5前在java中实现装箱与拆箱的代码如下:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库06包与Java常用类_旺旺老师JavaSE(测试版后期会更新)(7)在线全文阅读。
相关推荐: