数据类型 | 内存空间(8位等于1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | -2147483648~2147483647 |
long | 64位 | -9223372036854775808~9223372036854775807 |
int 型变量在内存中占4字节,也就是32位,在计算机中bit是由0和1来表示的,所以 int 型值5显示如下:
00000000 00000000 00000000 00000101
int 型是Java整形值的默认数据类型。当对多个尚未定义数据类型的整数做运算时,运算的结果将默认为 int 型。例如:
System.out.println(15+32); //输出47
等同于如下代码
int a = 15;
int b = 32;
int c = a + b;
System.out.println(c); //输出47
byte 型的定义方式与int相同
byte a;
byte b, c, d;
byte e = 20, f = -30;
short 型的定义方式与int相同
short a;
short b, c, d;
short e = 20, f = -30;
short g = 100/10;
由于 long 型的取值范围比 int 型大,且属于高精度数据类型,所以在赋值时要和 int 型作出区分,需要在整数后加 L 或者 l(小写L)。
long number;
long number, rum;
long number = 12345678l, rum = -12345678L;
long number = 12345678L * 7654321L;
数据类型 |
内存空间(8位等于1字节) |
取值范围 |
float |
32位 |
1.4E-45~3.4028235E38 |
double |
64位 |
4.9E-342~1.7976931348623157E308 |
在默认情况下小数都被看做 double 型,若想使用 float 型小数,则需要在小数后面添加 F 或 f。另外,可以使用后缀 D 或者 d 来明确表明这是一个 double 类型数据,但加不加 D 或 d并没有硬性规定。而定义 float 型变量时,如果不加 F 或 f,系统会认为是 double 类型数据。代码如下:
float f1 = 1.21f;
double d1 = 12.54d;
double d2 = 234.1232;
字符类型(char)用于存储单个字符,占用16位(2个字节)的内存空间。在定义字符型变量时,要以单引号表示,如 's' 表示一个字符。但是 "s" 则表示一个字符串,虽然只有一个字符,但由于使用的是双引号,它仍然表示字符串,而不是字符。
char x = 'a';
由于字符 a 在 Unicode 表中的排序位置是 97,因此允许将上面的语句写成:
char x = 97;
转义字符是一种特殊的字符变量,它以反斜杠 “\” 开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。
转义字符 | 含义 | 转义字符 | 含义 |
\ddd | 1~3位八进制数据所表示的字符,如\123 | \r | 回车 |
\uxxxx | 4位十六进制数据所表示的字符,如\u0052 | \n | 换行 |
\' | 单引号字符 | \b | 退格 |
\\ | 反斜杠字符 | \f | 换页 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
char c1 = '\\';
char c2 = '\u2605';
布尔类型又称逻辑类型,简称布尔类型,通过关键字 boolean 来定义布尔类型变量。布尔类型只有 true 和 false 两个值,分别代表布尔逻辑中的 “真” 和 “假”。布尔值不能与整数类型进行转换。
boolean b;
boolean b1, b2;
boolean b = true;