Java基本数据类型与对应的包装类
byte
:1 字节,有符号整数类型,范围是 -128 到 127。
public class Demo {
public static void main(String[] args) {
byte byteVar = 127;
Byte byteObj = 127;
}
}
short
:2 字节,有符号整数类型,范围是 -32768 到 32767。
public class Demo {
public static void main(String[] args) {
short shortVar = 32767;
Short shortObj = 32767;}}
int
:4 字节,有符号整数类型,范围是 -2147483648 到 2147483647。
public class Demo {
public static void main(String[] args) {
int intVar = 2147483647;
Integer intObj = 2147483647;}}
long
:8 字节,有符号整数类型,范围是 -9223372036854775808 到 9223372036854775807。
public class Demo {
public static void main(String[] args) {
long longVar = 9223372036854775807L;
Long longObj = 9223372036854775807L;}}
float
:4 字节,单精度浮点数类型,范围是 3.40282347 x 10^38 到 1.40239846 x 10^-45。
public class Demo {
public static void main(String[] args) {
float floatVar = 3.14159f;
Float floatObj = 3.14159f;}}
double
:8 字节,双精度浮点数类型,范围是 1.79769313486231570 x 10^308 到 4.94065645841246544 x 10^-324。
public class Demo {
public static void main(String[] args) {
double doubleVar = 3.14159;
Double doubleObj = 3.14159;
}}
char
:2 字节,表示一个 Unicode 字符。
public class Demo {
public static void main(String[] args) {
char charVar = 'A';
Character charObj = 'A';}}
boolean
:1 位,表示 true 或 false。
public class Demo {
public static void main(String[] args) {
boolean booleanVar = true;
Boolean booleanObj = true;
}
}
每个基本数据类型都有对应的包装类。包装类都是final类,而且所有的包装类都实现了Serializable
接口。
还有一种特殊的包装类Optional
,用于表示一个值可能存在或不存在。这在处理缺少值的情况下非常有用。
示例:
import java.util.Optional;
public class Demo {
public static void main(String[] args) {
String str = "Hello, World!";
Optional<String> optional = Optional.of(str);
optional.ifPresent(System.out::println);
// Hello, World!
String nullStr = null;
Optional<String> nullOptional = Optional.ofNullable(nullStr);
String defaultStr = nullOptional.orElse("Default Value");
System.out.println(defaultStr);
// Default Value
}
}