java八种基本数据类型详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 自动拆箱 包装类——>基本数据类型 (原理是调用了xxxValue方法)
• 自动装箱 基本数据类型——>包装类 (原理是调用了valueOf方法)
2018/12/27
阳凡凡
3.6、关于valueOf()方法源码研究
通过按住Ctrl键,鼠标点击该方法即可查看源码,以Integer类的 valueOf(int i)的源码为例
2018/12/27 阳凡凡
2.1直接量
• 整数型的直接量默认为int类型 • 浮点型的直接量默认为double类型
代码举例如下:
2018/12/27
阳凡凡
2.2类型转换
• 自动转换:低类型的向高类型的转换
如下图:顺着箭头的方向是可以自动转换的;
• 强制转换:高类型的向底类型转换
但可能会数据溢出或者精度丢失
(2)特殊的:byte、short、char三种数据类型参与 运算时,先一律转化为int类型;
2018/12/27
阳凡凡
2.3.强制转换
高等级转为低等级的时候,必须强制转换,但实际工作 中不推荐使用强制转换,可能会失精度或数据溢出;
补充说明:不是只有强制转换的时候会出现数据,例如下 面这种情况
2018/12/27
java八种基本数据类型的字节数:分别为1、2、4、8个字 节;1字节(byte、boolean)、 2字节(short、char)、4字 节(int、float)、8字节(long、double);
整数的默认类型为int,浮点数的默认类型为double; 八种基本数据类型的包装类:除了char的是Character、 int类型的是Integer,其他都是首字母大写关于值的范 围问题,需要注意char类型是无符号的,不能为负,所 以是0开始的;
java八种基本数据类型及包装类详解
详解一:八种基本数据类型基本常识 详解二:直接量与类型转换 详解三:对应包装类及使用 详解四:相关面试题
2018/12/27
阳凡凡
1.1基本常识表
2018/12/27
阳凡凡
对于上面有一些需要注意的点
java八种基本数据类型分为四类八种,四类分别为整型、 浮点型、布尔型、字符型;八种分别为byte、short、 int、long、float、double、boolean、char;
阳凡凡
3.1八种基本数据类型包装类基本知识
java是一门面向对象的语言,但是8中基本数据类型 不具备面向对象的特征,所以实际使用中很不便所以 为java八种基本数据类型提供了对应的包装类。
2018/12/27
阳凡凡
3.2、常用方法一:静态方法 valueOf()
• 参数为基本数据类型,返回包装类对象; • 参数为String字符串(Character类没有以String为 参数的该方 法),返回包装类对象;
2018/12/27
阳凡凡
以上现象在实际中可以出现这三种问题:
1. 定义变量时出现的类型转换
2018/12/27
阳凡凡
以上为几种正常的情况,但是有一种特殊的情况,就是int 型直接量可以直接赋给byte、short、char类型变量,只要不超 出变量类型的取值范围
2018/12/27
阳凡凡
2.数据运算时的类型转换 (1)运算时,运算结果会向较大的类型转换
• 因为是非静态方法,所以不能像上面两个方法用类名调用了; • 数字类的包装类(八种包装类中父类是Number的的六个类) 才有该方法; • 作用:将当前包装类对象转换为对应的基本数据类型;
2018/12/27
阳凡凡
3.5、自动拆箱与装箱
简介:jdk1.5之后的新特性。该特性是编译器认可的,是在 编译器自动将基本数据类型和包装类相互转换,节省了麻烦。
关于源码的理解:Integer类的valueOf(int i)方 法首先会判断i是否在-128~127之间,如果在的话,就返 回的对象是Integer类中静态数组cache中的对象,如果 不是在这之间,就会重写创建一个新的对象。
2018/12/27
阳凡凡
通过查看其它类的该方法的源码之后,可以得到该表:
2018/12/27
Байду номын сангаас
阳凡凡
详解四、相关面试题
4.1、类型转换
2018/12/27
阳凡凡
4.2、+=的情况
2018/12/27
阳凡凡
4.3、自动装箱
包装类和基本数据类型比较时,只要值相等就相等
2018/12/27
阳凡凡
4.4、char类型存储汉字
char类型能不能存储一个汉字?为什么? 解析:能,char类型采用的是Unicode编码,Unicode编码 包含汉字,所以char类型自然是可以存储一个汉字的
2018/12/27
阳凡凡
3.3、常用方法二:静态方法parseXXX(String str)
• Character类没有该方法; • 作用:将字符串装换为对应的基本数据类型(注意此 处和上面的valueOf方法返回值的不同);
2018/12/27
阳凡凡
3.4、常用方法二:非静态方法XXXValue()
4.5、浮点数精度问题
2018/12/27
阳凡凡
Thanks
2018/12/27 阳凡凡
• 自动装箱 基本数据类型——>包装类 (原理是调用了valueOf方法)
2018/12/27
阳凡凡
3.6、关于valueOf()方法源码研究
通过按住Ctrl键,鼠标点击该方法即可查看源码,以Integer类的 valueOf(int i)的源码为例
2018/12/27 阳凡凡
2.1直接量
• 整数型的直接量默认为int类型 • 浮点型的直接量默认为double类型
代码举例如下:
2018/12/27
阳凡凡
2.2类型转换
• 自动转换:低类型的向高类型的转换
如下图:顺着箭头的方向是可以自动转换的;
• 强制转换:高类型的向底类型转换
但可能会数据溢出或者精度丢失
(2)特殊的:byte、short、char三种数据类型参与 运算时,先一律转化为int类型;
2018/12/27
阳凡凡
2.3.强制转换
高等级转为低等级的时候,必须强制转换,但实际工作 中不推荐使用强制转换,可能会失精度或数据溢出;
补充说明:不是只有强制转换的时候会出现数据,例如下 面这种情况
2018/12/27
java八种基本数据类型的字节数:分别为1、2、4、8个字 节;1字节(byte、boolean)、 2字节(short、char)、4字 节(int、float)、8字节(long、double);
整数的默认类型为int,浮点数的默认类型为double; 八种基本数据类型的包装类:除了char的是Character、 int类型的是Integer,其他都是首字母大写关于值的范 围问题,需要注意char类型是无符号的,不能为负,所 以是0开始的;
java八种基本数据类型及包装类详解
详解一:八种基本数据类型基本常识 详解二:直接量与类型转换 详解三:对应包装类及使用 详解四:相关面试题
2018/12/27
阳凡凡
1.1基本常识表
2018/12/27
阳凡凡
对于上面有一些需要注意的点
java八种基本数据类型分为四类八种,四类分别为整型、 浮点型、布尔型、字符型;八种分别为byte、short、 int、long、float、double、boolean、char;
阳凡凡
3.1八种基本数据类型包装类基本知识
java是一门面向对象的语言,但是8中基本数据类型 不具备面向对象的特征,所以实际使用中很不便所以 为java八种基本数据类型提供了对应的包装类。
2018/12/27
阳凡凡
3.2、常用方法一:静态方法 valueOf()
• 参数为基本数据类型,返回包装类对象; • 参数为String字符串(Character类没有以String为 参数的该方 法),返回包装类对象;
2018/12/27
阳凡凡
以上现象在实际中可以出现这三种问题:
1. 定义变量时出现的类型转换
2018/12/27
阳凡凡
以上为几种正常的情况,但是有一种特殊的情况,就是int 型直接量可以直接赋给byte、short、char类型变量,只要不超 出变量类型的取值范围
2018/12/27
阳凡凡
2.数据运算时的类型转换 (1)运算时,运算结果会向较大的类型转换
• 因为是非静态方法,所以不能像上面两个方法用类名调用了; • 数字类的包装类(八种包装类中父类是Number的的六个类) 才有该方法; • 作用:将当前包装类对象转换为对应的基本数据类型;
2018/12/27
阳凡凡
3.5、自动拆箱与装箱
简介:jdk1.5之后的新特性。该特性是编译器认可的,是在 编译器自动将基本数据类型和包装类相互转换,节省了麻烦。
关于源码的理解:Integer类的valueOf(int i)方 法首先会判断i是否在-128~127之间,如果在的话,就返 回的对象是Integer类中静态数组cache中的对象,如果 不是在这之间,就会重写创建一个新的对象。
2018/12/27
阳凡凡
通过查看其它类的该方法的源码之后,可以得到该表:
2018/12/27
Байду номын сангаас
阳凡凡
详解四、相关面试题
4.1、类型转换
2018/12/27
阳凡凡
4.2、+=的情况
2018/12/27
阳凡凡
4.3、自动装箱
包装类和基本数据类型比较时,只要值相等就相等
2018/12/27
阳凡凡
4.4、char类型存储汉字
char类型能不能存储一个汉字?为什么? 解析:能,char类型采用的是Unicode编码,Unicode编码 包含汉字,所以char类型自然是可以存储一个汉字的
2018/12/27
阳凡凡
3.3、常用方法二:静态方法parseXXX(String str)
• Character类没有该方法; • 作用:将字符串装换为对应的基本数据类型(注意此 处和上面的valueOf方法返回值的不同);
2018/12/27
阳凡凡
3.4、常用方法二:非静态方法XXXValue()
4.5、浮点数精度问题
2018/12/27
阳凡凡
Thanks
2018/12/27 阳凡凡