数据类型
Java的数据类型分为两大类:
基本数据类型:包括 整数、浮点数、字符、布尔。
引用数据类型:包括 类、数组、接口、对象、String。
数据类型的转换
1.1 自动转换
自动转换:将取值范围小的类型自动提升为 取值类型大的范围。一个 int 类型变量和一个byte 类型变量进行加法运算,结果会是什么数据类型?
int i = 1;
byte b = 2;
运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。
byte 类型内存中占有1个字节,在和int 类型运算时会提升为int类型,自动补充3个字节,因此计算机后的结果还是int 类型。
转换规则
范围小的类型向范围大的类型提升,byte 、short 、 char 运算时直接提升为int。
byte、 short、 char --> int --> long --> float -->double
1.2 强制转换强制类型转换:将取值范围大的类型 强制转换成 取值范围小的类型。将 1.5 赋值到 int 类型变量会发生什么?产生编译失败,肯定无法赋值。
int i = 1.5;//错误
double 类型内存8个字节, int 类型内存4个字节。 1.5 是 double 类型,取值范围大于 int 。可以理解
为 double是8 升的水壶, int 是4升的水壶,不能把大水壶中的水直接放进小水壶去。
想要赋值成功,只有通过强制类型转换,将double类型强制转换成int类型才能赋值。
转换格式
数据类型 变量名 = (数据类型) 被转数据值;
例子:将1.5赋值到int类型
//double类型数据强制转换成int类型,直接去掉小数点
int i = (int)1.5;
例子:当一个 short 类型与 1 相加
//short类型变量,内存中2个字节
short s = 1;
/*出现编译失败 s和1做运算的时候,1是int类型,s会被提升为int类型
s+1后的结果是int类型,将结果在赋值会short类型时发生错误
short内存2个字节,int类型4个字节, 必须将int强制转成short才能完成赋值 */
s = s + 1;//编译失败
s = (short)(s+1);//编译成功
注意
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉2个字节,可能造成数据丢失。
转义字符
如果需要在程序中输出一个单引号字符,该如何完成?package demo;
public class TestChar{
public static void main(String[] args){
char c = ''';//出错
}
}
为了解
决这一问题,Java采用了转义字符来表示单引号和一些特殊符号。