2024-07-02|閱讀時間 ‧ 約 28 分鐘

Java入門-Day4:資料型別

內建型別

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: 只能取truefalse兩個值。

引用型別

引用型別包括類(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沒有內建的元組型別,但可以使用PairAbstractMap.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)提供了多種集合型別,包括ListSetMap

  • List:有序集合,可以包含重複元素。
    • 常用實現:ArrayListLinkedList
  • Set:無序集合,不允許重複元素。
    • 常用實現:HashSetTreeSet
  • Map:鍵值對集合,每個鍵唯一對應一個值。
    • 常用實現:HashMapTreeMap
// 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());
}

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.