ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 40岁偷练java之内功心法(2)-基本类型与基本类型的包装类型,即生瑜何生亮?

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

原创 Linux操作系统 作者:OOMs 时间:2009-06-24 08:17:45 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-05-20

  • 博文量
    6
  • 访问量
    11282