基本数据类型
基本数据类型
byte
an 8-bit signed two's complement integer
- 占 1 个字节(8 位)
- 有符号
- 取值范围是 -128 到 127(
到 )
java
byte b = 100;
short
a 16-bit signed two's complement integer
- 占 2 个字节(16 位)
- 有符号
- 取值范围是 -32768 到 32767(
到 )。
java
short s = 1000;
int
a 32-bit signed two's complement integer
- 占 4 个字节(32 位)
- 有符号
- 取值范围是
到 。
java
// 十进制
int i = 26;
// 十六进制
int i = 0x1a;
// 二进制
int i = 0b11010;
long
a 64-bit signed two's complement integer
- 占 8 个字节(64 位)
- 有符号
- 取值范围是
到 。
java
long l = 1000L;
TIP
小写字母 l
和数字 1
会比较难区分,所以建议使用大写字母 L
float
a single-precision 32-bit IEEE 754 floating point
- 占 4 个字节(32 位)
- 单精度
- 不应当用于精确值
如果需要表示精确值,如货币,使用 java.math.BigDecimal
类
java
float f = 3.14f;
float f1 = 3.14e2f;
double
a double-precision 64-bit IEEE 754 floating point
- 占 8 个字节(64 位)
- 双精度
- 不应当用于精确值
java
double d = 3.14d;
// 默认为双精度,可省略 d
double d1 = 3.14;
double d2 = 3.14e2;
boolean
two possible values:
true
andfalse
java
boolean b = true;
char
a single 16-bit Unicode character
- 单个 16 位 Unicode 字符
- 取值范围是
\u0000
到\uffff
( )
java
char c = 'A';
字符串
- 由 java.lang.String 提供支持
- 非基本数据类型
使用双引号括起来的字符串会自动创建一个新的 String
对象。
java
String text = "Hello World!";
默认值
- 未初始化的字段会被编译器设置为合理的默认值
- 不推荐依赖这样的默认值。
- 编译器不会对未初始化的局部变量赋值
类型 | 默认值(字段) |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
boolean | false |
char | '\u0000' |
String | null |
TIP
null
是一个特殊的字面量,可以用作任何应用类型的值,可以赋值给除了基本类型变量外的任何变量。
数字字面量使用 _
java
int i = 1_000_000;
long l1 = 1_000_000_000L;
long l2 = 0x7fff_ffff_ffff_ffffL;