JDK之包装器类源码的分析
在平时的工作中,基本类型及其包装器类型用得很多,很多时候,不知道是用基本类型还是包装器类型,如boolean和Boolean,今天就来分析下包装器类型的JDK代码,并比较包装器和基本类型。
Integer中parseInt和valueOf都可以返回一个字符串类型的数字,但是parseInt返回的是十进制数字,而valueOf返回的是一个Integer的对象,利用valueOf返回的对象可以条用Integer中的方法,而parseInt则不行,他返回的是纯粹的数字。Integer中还有这样的方法*Value,*代表long、double等,标示返回*类型的Integer值,其JDK的实现是强制类型转换。compareTo方法与其他类中的无太大差别,这里比较的是对象,其实,在Integer中很多方法实际上都没有多大用,如这个compareTo,我可以直接定义基本类型,然后通过-号直接进行比较即可了。在Double这个包装器类型,也提供了很多类似于Integer中在很多基本类型之间转换的方法。可以讲double转换成int类型或者float类型,使用的方式也是强制类型转换。不过Double中提供了这样一个方法,isNaN,无参的isNaN表示只要是非数字类型,则返回True,有参的表示如果是指定的isNaN才会返回true,其实现都是使用有参的isNaN来实现的。至于long和float,其实和Double都差不多,不再进行详细的分析。Boolean中提供了Boolean和String的类型转换,其实现使用的是判断,类中的方法很简单,功能也不多,都是些常用的,一看就懂。
基本类型直接存储数值,而包装器类型存储的是对象。使用包装器后,可以获取相关对象,并进行操作,而基本类型则不行, 没有相关方法可以操作。基本类型默认的值是根据基本类型的类别确定的,而包装器默认值为null。在平时的工作中,使用基本类型就差不多足够了,不过要进行一系列操作的话,建议还是使用包装器,因为那样要简单很多。包装器提供很多操作方法,可以对相关变量进行一些列的操作。