Java 为每个原始类型提供了包装类型:
原始类型: boolean,char,byte,short,int,long,float,double
包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double
数据类型分类:
A:基本数据类型(数值型,字符型,布尔型)
B:引用数据类型(类,接口,数组,枚举,注解)
基本数据类型:4类8种
A:整数 | |||
数据类型名称 | 数据类型 | 占用空间 | 取值范围 |
字节型 | byte | 8位(1个字节) | -27 ~ 27-1 |
短整型 | short | 16位(2个字节) | -215 ~ 215-1 |
整型 | int | 32位(4个字节) | -231 ~ 231-1 |
长整形 | long | 64位(8个字节) | -263 ~ 263-1 |
/*
变量在表达式中进行运算时,也可能发生自动类型转换
这就是表达式数据类型的自动提生
*/
public class Test {
public static void main(String[] args) {
int a=2147000000;
short s1= 1;
//下面是错误的 s1会自动提升int类型
s1=s1+1;
//下面是正确的 用int类型进行接收
int s2;
s2 = s1 +1;
//下面是正确的 或者进行强制转化
s1=(short) (s1+1);
byte b1=1;
//下面是错误的 b1会自动提升int类型
b1=b1+1;
//下面是正确的 用int类型接收或者进行强制类型转化
int b2;
b2=b1+1;
//下面浮点类型的运算是正确
double d1=1.22;
d1=d1+2;
float f1=1.77F;
f1=f1 + 2;
System.out.println(d1);
System.out.println(f1);
}
}
===============================================================
B:浮点数 | |||
数据类型名称 | 数据类型 | 占用空间 | 取值范围 |
单精度浮点数 | float | 32位(4个字节) | 1.4E-45 ~ 3.4E+38 , -3.4E+38 ~ -1.4E-45 |
双精度浮点数 | double | 64位(8个字节) | 4.9E-324 ~ 1.7E+308 , -1.7E+308 ~ -4.9E-324 |
===============================================================
public class Test {
public static void main(String[] args) {
//下面浮点类型的运算是正确
double d1=1.22;
d1=d1+2;
float f1=1.77F;
f1=f1 + 2;
f1=1.3; //这是错误的,不加F ,D ,默认是双精度,赋值错误
f1=(float)1.3; //正确
f1=1.3f; //正确
System.out.println(d1);
System.out.println(f1);
}
}
c:字符 | |||
数据类型名称 | 数据类型 | 占用空间 | 取值范围 |
字符类型 | char | 16位(2个字节) | 0~65535 |
===============================================================
D:布尔 | ||
数据类型名称 | 数据类型 | |
布尔类型 | boolean |
===============================================================
注意:整数默认是int类型, 浮点数默认是double类型
定义long类型数据时:要加L或者l,建议加 L
定义float类型数据时:要加F或f,建议加F