详解一、八种基本数据类型常识
1.1、基本常识表
java八种基本数据类型分为四类八种,四类分别为整型、浮点型、布尔型、字符型;八种分别为byte、short、int、long、float、double、boolean、char;对于上图有以下几点需要注意:
java八种基本数据类型的字节数:分别为1、2、4、8个字节;1字节(byte、boolean)、 2字节(short、char)、4字节(int、float)、8字节(long、double);
整数的默认类型为int,浮点数的默认类型为double;
java是一门面向对象的语言,但是8中基本数据类型不具备面向对象的特征,所以实际使用中很不便所以为java八种基本数据类型提供了对应的包装类;
八种基本数据类型的包装类:除了char的是Character、int类型的是Integer,其他都是首字母大写;
对应包装类的直接父类:前6个由于是数,直接父类为Number,而后两个的直接父类就是Object类;
关于值的范围问题,需要注意char类型是无符号的,不能为负,所以是0开始的;
详解二、直接量与类型转换
2.1、直接量
- 整数型的直接量默认为int类型
- 浮点型的直接量默认为double类型
@Test
public void d() {
int a = 100;//这个100就是直接量
a = a + 100;//但是这个a+100不是直接量
double b = 3.14;
}
2.2、类型转换
1.自动转换:低类型的向高类型的转换
如下图:顺着箭头的方向是可以自动转换的;
2.强制转换:高类型的向低类型转换,但可能会数据溢出或者精度丢失
以上为几种正常的情况,但是有一种特殊的情况,就是int型直接量可以直接赋给byte、short、char类型变量,只要不超出变量类型的取值范围
数据运算时的类型转换
1)运算时,运算结果会向较大的类型转换
2)特殊的:byte、short、char三种数据类型参与运算时,先一律转化为int类型;
强制转换
高等级转为低等级的时候,必须强制转换,但实际工作中不推荐使用强制转换,可能会失精度或数据溢出;
补充说明:不是只有强制转换的时候会出现数据,例如下面这种情况
详解三、对应包装类及使用
3.1、常用方法一:静态方法 valueOf()
- 参数为基本数据类型,返回包装类对象;
- 参数为String字符串(Character类没有以String为 参数的该方法),返回包装类对象;