Java 中的数据类型可以分为基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)两种。
基本数据类型(Primitive Data Types):
-
整数类型:
byte
: 8 位,范围为 -128 到 127。byte byteValue = 100;
short
: 16 位,范围为 -32768 到 32767。short shortValue = 1000;
int
: 32 位,范围为 -2^31 到 2^31-1。int intValue = 100000;
long
: 64 位,范围为 -2^63 到 2^63-1。long longValue = 1000000000L; // 注意:long类型的数字后面需要加上 'L' 或 'l' 表示是长整型
-
浮点数类型:
float
: 32 位,范围约为 3.4e-038 到 3.4e+038。float floatValue = 3.14f; // 注意:float类型的数字后面需要加上 'f' 或 'F' 表示是单精度浮点数
double
: 64 位,范围约为 1.7e-308 到 1.7e+308。double doubleValue = 3.1415926;
-
字符类型:
char
: 16 位 Unicode 字符,范围为 '\u0000' 到 '\uffff'。char charValue = 'A';
-
布尔类型:
boolean
: 用于表示 true 或 false。boolean booleanValue = true;
这些基本数据类型用于存储简单的数据值,它们都是直接存储在内存中的,因此也被称为值类型(Value Types)。
引用数据类型(Reference Data Types):
-
类(Class):
- 类是一种引用数据类型,用于表示对象的模板。它们可以包含属性和方法。
- 例如,你可以定义一个名为
Person
的类,用于表示人员的属性和行为。Person person = new Person("John", 30);
-
接口(Interface):
- 接口是一种引用数据类型,它定义了一组方法的签名,但没有提供方法的实现。
- 例如,
Comparable
接口定义了compareTo()
方法,用于比较两个对象的大小。// 定义一个类实现 Comparable 接口 public class Person implements Comparable<Person> { private String name; private int age; // 构造方法、getter和setter方法等省略 // 实现 compareTo() 方法 @Override public int compareTo(Person otherPerson) { // 比较年龄 if (this.age < otherPerson.age) { return -1; // 返回负整数表示当前对象小于参数对象 } else if (this.age > otherPerson.age) { return 1; // 返回正整数表示当前对象大于参数对象 } else { return 0; // 返回零表示当前对象等于参数对象 } } }
-
数组(Array):
- 数组是一种引用数据类型,用于存储同一类型的多个元素。
- 例如,你可以定义一个整数数组
int[] numbers
来存储一组整数。int[] array = {1, 2, 3, 4, 5};
-
枚举(Enum):
- 枚举是一种引用数据类型,用于定义一组命名的常量。
- 例如,你可以定义一个枚举类型
Weekday
来表示一周的每一天。enum week{Su, Mo, Tu, We, Th, Fr, Sa};
-
字符串(String):
- 字符串是一种引用数据类型,用于表示文本数据。
- 例如,你可以定义一个字符串
String message = "Hello, World!"
来存储一段文本。String stringValue = "Hello, World!";
引用数据类型存储的是对象的引用或地址,而不是对象的实际值。当你创建一个对象时,实际的数据存储在堆内存中,而栈内存中存储的是对象的引用。