- 数据类型的分类
- 需要掌握的基本数据类型的取值范围
- 数据转换的规则
- 整数型
- 1.输出不同的进制
- 2.整形字面量
- 3.整形数据转换
- 浮点型
- 1.默认的浮点型
- 2.浮点型转换为整形
- 字符型
- 1.字符型的表示
- 2.整数赋给字符型
- 布尔型
- 1.布尔类型的值以及常用范围
- 2.布尔类型不能发生转换
- 混合运算
- 1.byte,char,short混合运算时先各自转化为int型
- 2.常见错误
- 3.int与int的结果还是int
第一种: 基本数据类型
1.整数型:byte,short,int,long(1字节,2字节,4字节,8字节)
2.浮点型:float,double(4字节,8字节)
3.布尔型:boolean(1字节)
4.字符型:char(2字节)
第二种:引用数据类型(除基本类型外全是)
比如我们后面要学的字符串String类,以及对象等都是引用数据类型。
byte的取值:[-128-127]
short的取值:[-32168-32767]
int的取值:[-2147483648-2147483647]
char的取值:[0-65535]
这里先抛出结论。后文中每一点都会一一讲解。
1.除Boolean不能转换,其余均可
2.没有超过byte,short,char的取值范围,可以直接赋值
3.小容量向大容量转换为自动转换
4.大容量转换为小容量成为强制转换,要加强转符
5.byte,short,char在混合运算时,会自动转换为int
6.多种数据类型混合运算时,会先各自转换为最大的参与,第五条中的三个数据类型除外。
0开头:输出八进制
0X开头:输出十六进制
0b开头:输出二进制
int a=10; System.out.println(a);//十进制 10 int b=010;//0开头八进制 8 System.out.println(b); int c =0x10;//0x开头十六进制 16 System.out.println(c); int d =0b10;//0b开头二进制 2 System.out.println(d);2.整形字面量
*注意:在任何情况下,整数型字面量都被当做“int”,若想通过long处理,要再字面量后加上L或l
long g = 2147483647;//该数值被当做了int是int的最大值,可以通过 long h =2147483628//编译报错,超过了int的最大值 //解决 long h =2147483628L; System.out.println(h); //小容量给大容量,自动类型转换3.整形数据转换
强制类型转换符:(转换后的类型)+你想转换的变量
int e = 100;
System.out.println(e);//100
//此处有类型转换,e是int型
//b是long类型,int占4字节,long占8字节,小容量转换成了大容量,称为自动类型转换
long f = e;
System.out.println(f);//100
long x = 100L;
int y = x;//编译错误,long转换为int可能会有损失
//大容量转换为小容量,若想编译通过,则需要使用强制类型转换符(类型),但是运行时可能会损失精度
int y = (int)x;//正确
byte n = (byte)300;//300被当做int,要编译通过要强制类型转换符
System.out.println(n);//输出44,损失了部分精度
byte m = 1;//大容量无法直接转为小容量,但编译通过,没有超过byte的取值范围,可以通过,short与char同理。
浮点型
1.默认的浮点型
注意:java 中浮点型数据默认被当做double,若想作为float,需在后面添加F或f
double pi =3.14;//没有数据转换 System.out.println(pi); //float x=3.14;//报错 float x = 3.14f;//强制类型转换也可以!2.浮点型转换为整形
浮点型转换为整形可能会产生精度的误差!
//下面程序错误,double大容量无法直接赋值给小容量int int y=10.0/5; //修改 int y =(int)10.0/5; System.out.println(y);//2字符型 1.字符型的表示
java中用’ '单引号括起来的就是字符型,注意,单引号中只能带有一个字符,例如’ab’就是错误的
char a ='中';//char中可以储存一个汉字 System.out.println(a);//中 char b ='a'; System.out.println(b); char c ='0'; System.out.println(c);2.整数赋给字符型
char x = 97; System.out.println(x);//当一个整数赋值给char时,会自动转换为字符,输出a char x1 = (char)65536;//65536超出了char的最大值,要强转布尔型 1.布尔类型的值以及常用范围
1.在java中,boolean只有两个值true和false
2.在实际应用中,常用于逻辑判断(后面会讲)
boolean xingbie =1;//报错,int无法转换为Boolean
//正确
boolean x = true;
System.out.println(x);//true
int y = (int)x;//报错,不兼容的类型,无法转换!
char z = (char)x;//报错,不兼容的类型,无法转换!
混合运算
1.byte,char,short混合运算时先各自转化为int型
char c1='a'; byte b=1; System.out.println(c1+b);//98,运算结果为int型2.常见错误
这里的b和c1同上文的代码
short c =c1+b;报错,编译器不知道运算结果是多少,只知道是int型,所以即使没超过short的范围,为了确保程序运行。也会报错。 //修改: short c =(short)(c1+b); System.out.println(c);//983.int与int的结果还是int
System.out.println(10/3);//3



