JAVA中数据类型分为基本数据类型和引用数据类型。
基本数据类型
基本数据类型有四类和八种,四类中有整形,浮点型,字符型和布尔型,八种中有字符型,字节型,整型,长整型,短整型,单精浮点数,双精浮点数,和布尔型,下面对每一种进行介绍。
(1)字节型
字节型的关键字是byte,在内存中占一个字节,也就是八个比特位,那么也就可以得知字节型变量的取值范围是127~-128,另外,byte在任何系统下都占一个字节,字节型的包装类型是Byte,我们可以这样设置和打映byte变量:
byte b = 10;
System.Out.println(b);
(2) 整型
整型的关键字是int,在内存中占四个字节,32个比特位,整形变量取值范围是的-2^31~2^31-1,int的包装类型是Integer。
JAVA中变量在使用前必须要赋初值,否则在编译时会报错,因此我们在使用前会初始化变量,如果不知道赋多少,可以给0给变量。
还有一点值得注意,赋值时要在整型范围内,否则会造成栈溢出。
// 定义后,在使用前如果没有赋值,则编译期间会报错
int c;
System.Out.println(c);
c = 100;
// 在定义int性变量时,所赋值不能超过int的范围
int d = 12345678901234; // 编译时报错,初值超过了int的范围
(3)长整型
长整型的关键字long,在内存中占八个字节,64个比特位,长整型的取值范围是-2^61~2^61-1,long的包装类型是Long。
长整型和c有一点不同,那就是在赋值后要加L或l。
int a = 10;
long b = 10; // long定义的长整型变量
long c = 10L; // 为了区分int和long类型,一般建议:long类型变量的初始值之后加L或者l
long d = 10l; //
(4)短整型
短整型的关键字是short,占两个字节,16个比特位,短整型的取值范围-32768~32767,我们最好可以将它记下来,以便使用时可以注意赋值,防止栈溢出。
short的包装类是Short。
//定义并打映一个短整型
short a = 10;
System.Out.println(a);
(5)浮点型
浮点型分为单精度和双精度。
1.双精度浮点型:
如果不能正确设置变量类型,可能会导致数据的丢失,在编程中如果要进行小数计算,我们可以用double类型的变量来接收,double类型在内存中占8个字节,double变量有取值范围,但一般不关注。
double的包装类型是Double。
double类型的内存布局遵守IEEE745标准,尝试使用有限的内存空间表示无限的小数,所以必存在一定的误差,因此浮点数是一个近似值,不是精确值。
double a = 1.0;
double b = 2.0;
System.out.println(a / b); // 输出0.5
double num = 1.1;
System.out.println(num * num);
// 执行结果
1.2100000000000002
2.单精度浮点数
单精度浮点数的关键字是float,内存占4个字节。在JAVA中,浮点型默认是double的,所以如果直接使用float,编译器会报错,我们会在赋值后加f。
float的包装类型是Float;
float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);
(6)字符型
字符型的关键字是char,内存中占两个字节,字符变量的取值范围是0~65535。
字符型的关键字是Character。
JAVA中char的内存大于在c语言中的char内存,这是因为JAVA中的unicode编解码比ASCLL码大,所以才会造成此现象,让其可以存放更多字符种类,包括中文。
char c1 = 'A'; // 大写字母
char c2 = '1'; // 数字字符
System.out.println(c1);
System.out.println(c2);
// 注意:java中的字符可以存放整形
char c3 = '帅';
System.out.println(c3);
(7)布尔类型
布尔类型的关键字是boolean,在内存中存储没有明确规定,范围只有true和false。
JAVA中不存在boolean和int的相互转换,没有1=true,0=false。
boolean的包装类型是Boolean。
boolean b = true;
System.out.println(b);
b = false;
System.out.println(b);
boolean value = true;
System.out.println(value + 1);
// 代码编译会出现如下错误
Test.java:4: 错误: 二元运算符 '+' 的操作数类型错误
System.out.println(value + 1);