三、JavaSE语言基础之数据类型
数据类型的分类
按照数据的复杂程度可分为引用数据类型与基本数据类型
引用数据类型的数据是对象(多值数据/复杂数据),引用数据类型的数据的名字叫做引用/引用名;
基本数据类型的数据是常量值(单值数据),基本数据类型的数据的名字叫变量/变量名;
基本数据类型按照数据性质可分为以下类型
整数类型:没有小数点的数字;
浮点类型:有小数点的数字;
字符类型:所有符号(必须写在单引号中,有且只有一个字符);
布尔类型:只有两种结果且结果相反(true、false);
基本数据类型按照空间大小可分为以下八种类型
byte(字节):占1个字节,java描述数据的基本单位;
short(短整型):占2个字节;
int(整型):占4个字节;整数常量默认是int;
long(长整型):占8个字节;long常量后面加l/L;
float(单精度):占4个字节;float常量后面加f/F,有效位6-8位;
double(双精度):占8个字节;浮点常量默认是double类型;
char(字符型):占2个字节;(必须写在单引号中,有且只有一个字符,char与int间可根据编码集相互转换);
boolean(布尔型):占1个字节,只有两个取值:true/false;
数据类型精度表:
byte < short < int(char) <long < float < double
自动类型转换与强制类型转换
需要类型转换的原因:变量所赋值的类型必须和变量所定义类型保持一致;
不同数据类型间可以相互转换,转换方式分为自动类型转换与强制类型转换两种;
自动类型转换的两种情况
情况一:把低精度数据赋值给高精度数据类型的变量;
情况二:给byte、short、char类型的变量赋int常量值(编译器会自动判断,装的下就装(在范围内),装不下(不在范围内)就报错);
强制类型转换
高精度向低精度进行数据类型转换时,使用强制类型转换;
语法格式:
低精度变量=(低精度变量的类型)高精度数据;
如:
long numberLong=10L;
int numberInt=(int)numberLong;
注意:强制类型转换可能会出现精度丢失的情况;