文章目录
整形
浮点型
字符型
布尔型boolean
自动类型提升
强制类型转换
注意
整形
bit是计算机中的最小存储单位。
byte是计算机中的基本存储单元。
1MB=1024KB——1KB=1024B(byte)
public class JavaTest { public static void main(String[] args) { byte b1 = 18; byte b2 = -128; //b2 = 128;超出范围,编译失败。 //声明long类型的变量,必须以L(l)结尾。 short s1 = 128; int i1 = 1234; long l1 = 999999L; } }
浮点型
float尾数可以精确到7位有效数字。
double是float的两倍,通常用它。
public class JavaTest { public static void main(String[] args) { double d1 = 12.4; //声明float型需要在结尾加上F(f)。 float f1 = 12.4f; } }
字符型
char(1字符=2字节)
public class JavaTest { public static void main(String[] args) { //定义char型变量,用一对英文单引号('')包住一个字符。 char c1 = 'a'; //char c2 = 'ab';编译不通过。 char c3 = '中'; char c4 = '1'; //也可以使用转义字符 char c5 = '\n'; //也可以使用Unicode值 char c6 = '\u0043'; } }
常用转义字符
布尔型boolean
boolean bl1 = true; boolean bl2 = false;
自动类型提升
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型,需要用容量大的数据类型变量来接收。(容量大小是说表示数的范围大小,而不是所占存储空间大小,比如long比float容量小)
byte,char,short–>int–>long–>float–>double
特别的,当byte,char,short数据类型的变量之间或自己做运算时,结果为用int型接收。
强制类型转换
格式:(目标类型)xxx
可能导致精度损失
自动类型提升顺序反过来
double d1 = 12.9; //精度损失1 int i1 = (int)d1; //截断操作,结果为12 //没有精度损失 long l1 = 123; short s1 = (short)l1; //结果为123 //精度损失2 int i2 = 128; byte b1 = (byte)i2; //结果为-128(byte(-128~127)最大为127,可以简单理解为超出就循环)
注意
①整形默认是int,浮点型默认是double。
②如果long型声明时,数值结尾不加L(l)(即默认为int型),若数值不超过int范围,则编译通过,若超过int范围,则编译失败。(long<–int,long可以放得下int,因为存储空间比较大)
③如果float型声明时,数值结尾不加F(f)(即默认为double型),编译失败。(float<–double,float放不下double)
④ string类型是引用数据类型,它可以和所有基本数据类型之间做连接(+)运算,结果均为string类型。