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能解决的吗?所以包装类型不能放在寄存器中。正因如此,基本数据类型的存取、运算比包装类型快的就不是一星半点了。所以为了兼顾运算的效率,java当中当然要有基本数据类型。
2.基本类型为什么还要对应包装类型?
答案:因为有时候java中的某些操作只能使用对象,而基本类型不是类类型,不能实例化成对象,所以在某些操作中不能用,因此java就创造出了基本类型的包装类型。比如,Collection API中的操作对象,就必须是对象,而不能是基本数据类型。
3.包装类与普通的类类型有没有其它区别呢?
答案:区别还多少还是有地。包装类都是最终类,即定义前面是有final限定词地,而普通类则不一定是最终类。当然,最主要的还是我前面所说的——人家大拿与咱小老百姓是不同地。
看在我辛苦的份上,少骂多顶。看贴不顶,收获是不大地。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21696748/viewspace-607356/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21696748/viewspace-607356/