您的位置:首页 > 编程语言 > Java开发

基本类型与基本类型的包装类型,即生瑜何生亮?——40岁偷练java之内功心法(2)

2009-06-24 07:23 351 查看
java 是完全面向对象的吗?

有人说不是。因为javak中有8种基本数据类型。

java 是完全面向对象的吗?

有人说是。因为,java中的8种基本类型也都有分别对应的包装类型(注:包装类型其实就是咱们平时所说的类类型,只不过为了区分人家是大拿,咱是老百姓,人家头上得写点什么东西以显示与咱们小老百姓的不同)。比如基本类型int有包装类型Integer与之相对,基本类型byte类型有包装类型Byte类型与之相对,当然还有short与Short,char与Character, long与Long,float与Float,double与Double,boolean与Boolean。我把这几个都写出来的原因不是为了耽误大家时间,而是为了方便大家再温习一遍java中的基本数据类型,一定要懂我的心哈。

顺便再提醒一句,基本类型与对应的包装类型形式上一个最重要区别是“大小写”。基本类型是全小写,对应的包装类型是首字母大写。形式上的别一个区别是,chat和int对应的包装类型拼写不同(其它几个拼写都一样)。有人说,如果还是记不住咋办?这个简单。任选一面砖墙,在上面用泥巴画一圈,圈里写上“you get it ?”,然后用头使劲撞一下,然后做如下判断:“am i get it?”,如果答案是否定的,用脑袋goto "you get it?",直到明白了为止。实践证明这个方法操作起来比较可行,效果还是蛮不错的。

当然,这个区别再重要,也只是形式上的。有人说你再不讲点实质的我们就睡着了。java中倒底为什么即有基本类型,还有与之对应的包装类型呢?

所有问这个问题的同志,都是好同志。当然,不问这个问题而自然明白其道理的,那就是天才的好同志。不管您明不明白,关于这个问题我唠叨几句。

1.java为什么要有基本数据类型?

答案:基本数据类型可以放入寄存器,而包装类型不能放入寄存器。为啥呢?谁问这个问题谁先去撞下墙...。64位机的一个寄存器有几个bit?包装类一个对象又要用多少bit呢?是的,对象所占用的不是几个bit的问题,而是几个几十个或几千byte的问题,谁家有那么多寄存器呢?所以包装类型类型不能放在寄存器,只能放在内存。而基本数据类型占的空间很小,是可以话在寄存器中的,所以基本数据类型的存取、运算,那比包装类型快的就不是一星半点了。为了兼顾运算的效率,java当中当然要有基本数据类型。

2.基本类型为什么还要对应包装类型?

答案:因为有时候java中的某些操作只能使用对象,而基本类型不是类类型,不能实例化成对象,所以在某些操作中不能用,因此java就创造出了基本类型的包装类型。举个例子吧,Collection API中的操作对象就必须是对象而不能是基本数据类型。

3.包装类与普通的类类型还有啥区别呢?

答案:包装类都是最终类,即定义前面是有final限定词地,而普通类则不一定是最终类。

看在我辛苦的份上,少骂多顶。看贴不顶,收获是不大地。

学编程如果不懂分析设计与建模,那永远是苦力。《大象-thinking in UML》是迄今为止最好最好最好最好的讲分析设计与建模的好书。http://www.china-pub.com/129881
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: