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

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值