Java数据类型
数据类型:通过定义不同类型的变量,可以在内存中存储整数,浮点数,字符等
变量:存储值,在创建变量时,需要在内存中申请空间,存放定义声明的唯一类型数据
Java的两大数据类型:
1.基本数据类型(内置数据类型)
2.引用数据类型
基本数据类型
Java中提供了八种基本数据类型,包括四种整数型,两种浮点型,一种布尔型以及一种字符型
整数型
byte:8位,占存1字节,范围[-128, 127],默认值为0
short:16位,占存2字节,范围[-2^15, 2^15 - 1],默认值为0
int:32位,占存4字节,范围[-2^31, 2^31 - 1],默认值为0,整型变量默认为 int 类型
long:64位,占存8字节,范围[-2^63, 2^63 -1],默认值为0L,例:long x=100000L;
浮点型
float:32位,单精度,默认值0.0f,例:float y=123.4;
double:64位,双精度,默认值0.0d,浮点型变量默认为 double 类型
浮点数都不能用来表示精确的值
布尔型
boolean:1位,仅有两个值(true,false),默认值false,作为一种标志记录 true/false
字符型
char:单一 16 位 Unicode 字符,能存储任何字符,范围[0,65,535],即\u0000~\uffff
可以包含任何Unicode字符,例:char c='\u0001';
引用数据类型
1.对象、数组都是引用数据类型
2.所有引用类型的默认值都是null
3.一个引用变量可以用来引用任何与之兼容的类型
引用变量:指向对象的变量是引用变量
这些变量在声明时被指定为一个特定的类型,变量一旦声明后,类型就不能被改变了
Java常量:常量在程序运行时是不能被修改的
当使用常量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制
String:字符串数据类型,能存储任何字符,例:String s="\u0001";
数据类型转换
整型、实型(常量)、字符型数据可以混合运算
运算中,不同类型的数据先转化为同一类型,然后进行运算
转换从低级到高级
低 ------------------------------------------------------> 高
byte—> short—> char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
1.不能对boolean类型进行类型转换
2.不能把对象类型转换成不相关类的对象
3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换
4. 转换过程中可能导致溢出或损失精度
自动类型转换
必须满足转换前的数据类型的位数要低于转换后的数据类型
强制类型转换
1.条件是转换的数据类型必须是兼容的
2. 格式:(type)value type是要强制类型转换后的数据类型