Java 是一种强类型语言,这意味着每个变量和表达式的类型在编译时就确定了。Java 提供了多种数据类型,包括基本数据类型和引用数据类型。
基本数据类型是 Java 中最简单的类型,不需要对象。它们包括:
整型
byte
:8 位,范围从 -128 到 127。byte b = 100;
short
:16 位,范围从 -32,768 到 32,767。short s = 10000;
int
:32 位,范围从 -2^31 到 2^31-1。int i = 100000;
long
:64 位,范围从 -2^63 到 2^63-1。long l = 10000000000L;
浮点型
float
:32 位,单精度。float f = 10.5f;
double
:64 位,双精度。double d = 10.5;
字符型
char
:16 位,无符号 Unicode 字符,范围从 '\u0000' 到 '\uffff'。char c = 'A';
布尔型
boolean
:只有两个值:true
和 false
。boolean flag = true;
引用数据类型包含类、接口和数组。它们指向对象,而不是存储值。
类
String str = "Hello, World!";
接口
List<String> list = new ArrayList<>();
数组
int[] arr = {1, 2, 3, 4, 5};
类型转换是将一种数据类型转换为另一种数据类型。Java 中的类型转换分为隐式转换和显式转换。
隐式类型转换是指在无需显式指定转换的情况下,编译器自动完成的类型转换。它通常发生在范围小的类型向范围大的类型转换时。
从 int
到 long
int i = 100;
long l = i; // 自动转换
从 float
到 double
float f = 10.5f;
double d = f; // 自动转换
显式类型转换是指通过使用强制转换运算符将一种数据类型转换为另一种数据类型。它通常发生在范围大的类型向范围小的类型转换时。
从 long
到 int
long l = 100000L;
int i = (int) l; // 强制转换
从 double
到 float
double d = 10.5;
float f = (float) d; // 强制转换
从 int
到 char
int i = 65;
char c = (char) i; // 强制转换,结果为 'A'
数据丢失:从范围大的类型转换到范围小的类型时,可能会导致数据丢失。
long l = 10000000000L;
int i = (int) l; // 数据丢失,结果为 1410065408
精度丢失:从浮点型转换为整型时,可能会导致精度丢失。
double d = 10.99;
int i = (int) d; // 精度丢失,结果为 10
类型不兼容:并非所有类型都可以相互转换,例如布尔类型不能转换为其他类型。
boolean flag = true;
// int i = (int) flag; // 编译错误
从基本数据类型到字符串
int i = 100;
String str = Integer.toString(i);
从字符串到基本数据类型
String str = "100";
int i = Integer.parseInt(str);
通过掌握这些类型和类型转换技巧,可以有效地进行数据处理和操作,编写出更加健壮和高效的 Java 程序。
原文链接:codingdict.net