数据类型
在Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的内存空间地址。
①基本数据类型
整数类型:byte8、short16、int32、long64
数据和数据类型要区分开:
a.数据类型是一种分类
b.数据是一个具体的值
浮点类型:
float32 类型的浮点数在浮点类型数据的后面加f
double64
②对于数据值来说,本身值存在默认的类型的
1)整数数据类型: 默认 int类型
2)浮点类型的数据:默认 double类型
a.数值类型数据:基本数据类型中的最大类型 long double能够表示值的范围是有限的
b.浮点类型的数据:不能够精准的表示一个浮点数据的,因为存储结构复杂
发现long表示及double都表示不了更大的数据
Java还提供了
BigInteger:表示更大的数据
BigDecimal:表示一个精准的小数
NaN:非数字值的特殊值,不等于自己
③字符数据类型:char类型 字符数据,就是一个符号
④布尔型:boolean 值只有两个true和false,不能使用0 1表示
⑤引用类型String:String是 java中已经设计好的一个类,表示的值是字符串
数据类型转换
任何一个数据都是有类型的,数据类型转换分为:
①自动类型转换:小数据类型转大数据类型【存储空间的大小】
byte,short,char -->int -->long -->float -->double
数据类型过长 和 溢出
long float double:只要两个操作数中有一个是上面类型的,另一个就会被转换成相应类型,并且结果也是该类型
如果两个个操作数(包括byte,short,char,int),都将会转换为int类型,并且结果也是int(自动向上转型)
char类型向更高长度类型(例如整型)转换时,会转换为对应的ASCII码值,再做其他类型的自动转换
②强制类型转换:
double→float→long→int→short(char)→byte
a.大数据类型转小数据类型[存储空间大小]
b.相同存储空间不同类型表达值范围不一样[例如:char及short]
1)高转低会导致精度丢失,不同类型的强制转换,可能会导致精度的下降
2)容量大的类型转换为容量小的类型时,要加上强制转换符
3)char和short直接也不会发生自动类型提升(因为值范围不一样)