Java提供了多種內建型別,用於表示不同種類的數據。主要分為基本型別(primitive types)和引用型別(reference types)。
Java的基本型別有八種:
byte
: 8位,範圍從 -128 到 127。short
: 16位,範圍從 -32,768 到 32,767。int
: 32位,範圍從 -2^31 到 2^31-1。long
: 64位,範圍從 -2^63 到 2^63-1。float
: 32位,單精度,約6-7位有效數字。double
: 64位,雙精度,約15-16位有效數字。char
: 16位,表示單個Unicode字元。boolean
: 只能取true
或false
兩個值。引用型別包括類(class)、接口(interface)、陣列(array)和枚舉(enum)。
String
: 用於表示字符串。Person
, Employee
等。// 整數型別
byte b = 100;
short s = 10000;
int i = 100000;
long l = 100000L;
// 浮點型別
float f = 3.14f;
double d = 3.141592653;
// 字元型別
char c = 'A';
// 布林型別
boolean flag = true;
// 字串型別
String str = "Hello, World!";
// 輸出所有型別的值
System.out.println("byte value: " + b);
System.out.println("short value: " + s);
System.out.println("int value: " + i);
System.out.println("long value: " + l);
System.out.println("float value: " + f);
System.out.println("double value: " + d);
System.out.println("char value: " + c);
System.out.println("boolean value: " + flag);
System.out.println("String value: " + str);
隱式轉換(自動轉換)是指編譯器自動將一種型別轉換為另一種型別,不需要顯式指定。例如,從較小範圍的數值型別轉換到較大範圍的數值型別。
int i = 100;
long l = i; // int 自動轉換為 long
顯式轉換(強制轉換)是指需要在程式碼中明確指定型別轉換。使用括號進行強制轉換。
long l = 100L;
int i = (int) l; // long 顯式轉換為 int
自訂型別是指使用class
關鍵字定義的類型,可以包含屬性和方法。
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void display() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
Person person = new Person("John", 30);
person.display(); // 輸出:Name: John, Age: 30
Java沒有內建的元組型別,但可以使用Pair
或AbstractMap.SimpleEntry
類來模擬元組。
import javafx.util.Pair;
Pair<String, Integer> pair = new Pair<>("John", 30);
System.out.println("Name: " + pair.getKey() + ", Age: " + pair.getValue());
Java的集合框架(Java Collections Framework)提供了多種集合型別,包括List
、Set
和Map
。
ArrayList
、LinkedList
。HashSet
、TreeSet
。HashMap
、TreeMap
。// List 示例
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
System.out.println(list);
// Set 示例
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
System.out.println(set);
// Map 示例
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
System.out.println(map);
陣列是固定大小的同類型元素的集合。
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
字典型別在Java中由Map
接口及其實現類提供。常用的字典型別是HashMap
。
Map<String, String> dictionary = new HashMap<>();
dictionary.put("apple", "a fruit");
dictionary.put("table", "a piece of furniture");
for (Map.Entry<String, String> entry : dictionary.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}