- 各个基本数据类型比较
基本数据类型 | 位数 | 是否有符号 | 取值范围 | 默认值 | 备注 |
---|---|---|---|---|---|
byte | 8 | Y | -2^7 ~ 2^7-1 | 0 | 用于在大型数组中节约空间,主要代替整数 |
short | 16 | Y | -2^15 ~ 2^15-1 | 0 | 可以节约空间 |
int | 32 | Y | - 2^31 ~ 2^31 - 1 | 0 | 整型变量默认为 int 类型 |
long | 64 | Y | -2^63 ~ 2^63-1 | 0L | 主要用于在需要比较大整数的系统上 |
float | 32 | --- | --- | 0.0f | 单精度浮点数;在储存大型浮点数组时,可节约内存空间;不能用来表示精确的值,如货币 |
double | 64 | --- | --- | 0.0d | 不能用来表示精确的值,如货币 |
boolean | 1 | --- | false/true | false | 只作为一种标志来记录 true/false 情况 |
char | 16 | --- |
\u0000 ~ \uffff (即0~65535) |
\u0000 (即为0) |
可以存储任何字符 |
- 整数的不同进制
前缀 | 进制 |
---|---|
0b |
二进制 |
0 |
八进制 |
0x |
十六进制 |
- 包装类
以上8种基本类型都不是类,Java 提供了对应的类,称之为包装类。包装类可以认为是将基本数据类型转换成的一个引用类型。
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
- 基本数据类型与包装类之间的转换
- 基本数据类型 <-> 包装类
// int <-> Integer int speed1 = 100; Integer in = new Integer(speed1); int speed2 = in.intValue(); System.out.println(in + speed2);
// float <-> Float float f1 = 1.23f; Float f2 = new Float(f1); System.out.println(f2);
- 基本数据类型 <-> String
// int <-> String String s1 = "123"; int in = Integer.parseInt(s1); String s2 = Integer.toString(in + 100); System.out.println(in + s2);
// String <-> double String s1 = "1.23"; double d = Double.parseDouble(s1); String s2 = Double.toString(d); System.out.println(d + s2);