JDK之包装器类源码的分析
2015-06-14 17:13
387 查看
在平时的工作中,基本类型及其包装器类型用得很多,很多时候,不知道是用基本类型还是包装器类型,如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。在平时的工作中,使用基本类型就差不多足够了,不过要进行一系列操作的话,建议还是使用包装器,因为那样要简单很多。包装器提供很多操作方法,可以对相关变量进行一些列的操作。
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。在平时的工作中,使用基本类型就差不多足够了,不过要进行一系列操作的话,建议还是使用包装器,因为那样要简单很多。包装器提供很多操作方法,可以对相关变量进行一些列的操作。
相关文章推荐
- struts.xml 配置、注释
- spring源码初步学习-容器(BeanFactory)基本实现
- Java后台发送Post请求,数据传输格式JSON
- 深入理解java垃圾回收机制----
- java 框架基础知识(2)----动态代理-->Spring AOP
- 走进Struts2(二) — Struts2的基石(拦截器)
- 关于springmvc怎么完成中文字符的接收问题
- 关于springmvc怎么自动把前台string类型日期字段转换成date类型
- Java输入/输出流
- 关于springmvc配置文件放在非默认位置
- Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- Java集合之Map
- Spring 框架的设计理念与设计模式分析
- java怎么接受键盘输入
- SpringMVC简明教程(二)——传参
- 详解Java反射机制
- Idea 编译报错 javacTask: 源发行版 1.6 需要目标发行版 1.6
- java笔记14 包
- java一维数组的冒泡排序
- 第一次Spring总结