序号 | 数据类型 | 位数 | 占用存储空间 | 默认值 | 取值范围 |
1 | byte(位) | 8 | 1字节=8bit | 0 | -2^7-2^7-1 |
2 | short(短整数) | 16 | 2字节 | 0 | -2^15-2~15-1 |
3 | int(整数) | 32 | 4字节 | 0 | -2^31-2^31-1 |
4 | long(长整数) | 64 | 8字节 | 0 | -2^63-2^63-1 |
5 | float(单精度) | 32 | 4字节 | 0.0 | -2^31-2^31-1 |
6 | double(双精度) | 64 | 8字节 | 0.0 | -2^63-2^63-1 |
7 | char(字符) | 16 | 2字节 | ‘\u0000’ | 0-2^16-1 |
8 | boolean(布尔值) | 8 | 1bit | false | true\false |
注意:引用数据类型的大小统一为4字节,记录的是其引用对象的地址。
package chap1_基础语法;
/**
* 八大基本数据类型
* 除了基本类型,其余默认值都是null
*/
public class Test01 {
public static void main(String[] args) {
//整形
byte num1 = 127;
short num2 = 32767;
int num3 = 2147483647;
long num4 = 9223372036854775807L; //long类型要在数后面加L
//浮点型
float num5 = 3.14F; //float类型要在数后面加F
double num6 = 3.141592653589793238462643D;//后缀D或d,以明确其为double类型
//字符型
char name = 'a'; //占2个字节
// String str ="让优秀成为一种习惯"; //String不是关键字,类
//布尔型
boolean flag = true;
}
}
2.6.1整形
Java语言整形常量的四种表示形式:
- 二进制数,要求以0b或0B开头,如0b01110011
- 八进制数,要求以0开头,如015
- 十进制数,如99、-500、0
- 十六进制数,要求以0x或0X开头,如0X15
Java语言的整形常数默认为int型,声明long型常量在后面加“L”。
2.6.2浮点型
- float类型,尾数可以精确到7位有效数字(单精度)
- double类型,尾数可以精确到16位有效数字(双精度)——精度约是float类型的两倍。
- float类型的数值有一个后缀F或f,没有后缀F/f的浮点数值默认为double类型。(且编译错误)
- 也可以在浮点数值后添加后缀D或d,以明确其为double类型。
2.6.3字符型
- char类型用来表示在Unicode编码中的字符。Unicode编码被设计用来处理各种语言的文字,占2个字节,可允许有2^16=65536个字符。
- Unicode具有从0~65536之间的编码,它们通常用从\u0000到\uFFFF之间的十六进制来表示(前缀为u表示Unicode)。
常用的转义字符及其含义和Unicode值如下表所示:
转义字符 | 含义 | Unicode值 |
---|---|---|
\b | 退格(Back Space) | \u0008 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\t | 制表符(Tab) | \u0009 |
\“ | 双引号 | \u0022 |
\‘ | 单引号 | \u0027 |
\\ | 反斜杠 | \u00fc |
注意:String类,其实是字符序列(char sequence),本质是char字符组成的数组。
2.6.4布尔型
不可以使用0或非0的整数替代true和false,这点和C语言不同。