在Java中,String
不被视为基本数据类型(primitive data type),而是一个引用类型(reference type)。尽管它在使用上非常常见和重要,但它的本质是一个对象,而不是基本数据类型。
1. 整数类型
1.1 byte
- 大小:8位(1字节)
- 取值范围:-128 到 127
- 默认值:0
- 用途:用于节省内存,在大型数组中使用;也可用于代替较小的数值(如年龄、标识符等)。
byte a = 100;
byte b = -50;
1.2 short
- 大小:16位(2字节)
- 取值范围:-32,768 到 32,767
- 默认值:0
- 用途:比
byte
更大一些的范围,同样用于节省内存。
short a = 10000;
short b = -20000;
1.3 int
- 大小:32位(4字节)
- 取值范围:-2,147,483,648 到 2,147,483,647
- 默认值:0
- 用途:最常用的整数类型,适用于大多数整数运算。
int a = 100000;
int b = -200000;
1.4 long
- 大小:64位(8字节)
- 取值范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
- 默认值:0L
- 用途:用于需要更大范围的整数值,尤其是科学计算和金融应用。
long a = 100000L;
long b = -200000L;
2. 浮点类型
2.1 float
- 大小:32位(4字节)
- 取值范围:约±3.40282347E+38F(6-7位有效数字)
- 默认值:0.0f
- 用途:用于需要节省内存的大范围小数值,不推荐用于精确值(如货币)。
float a = 234.5f;
2.2 double
- 大小:64位(8字节)
- 取值范围:约±1.79769313486231570E+308(15位有效数字)
- 默认值:0.0d
- 用途:最常用的浮点数类型,适用于大多数小数运算。
double a = 123.4;
3. 字符类型
char
- 大小:16位(2字节)
- 取值范围:0 到 65,535(表示单个16位Unicode字符)
- 默认值:'\u0000'
- 用途:用于存储字符(如字母、数字、符号)。
char a = 'A';
char b = '\u0041'; // Unicode表示的字符'A'
4. 布尔类型
boolean
- 大小:虚拟机规范未定义具体大小
- 取值范围:true 和 false
- 默认值:false
- 用途:用于表示真或假。
boolean a = true;
boolean b = false;
总结
数据类型 | 大小 | 取值范围 | 默认值 |
---|---|---|---|
byte | 8位 | -128 到 127 | 0 |
short | 16位 | -32,768 到 32,767 | 0 |
int | 32位 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64位 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
float | 32位 | 约±3.40282347E+38F(6-7位有效数字) | 0.0f |
double | 64位 | 约±1.79769313486231570E+308(15位有效数字) | 0.0d |
char | 16位 | 0 到 65,535 | '\u0000' |
boolean | 虚拟机未定义 | true 和 false | false |