Java入門-Day4:資料型別

更新於 發佈於 閱讀時間約 7 分鐘

內建型別

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());
}

avatar-img
15會員
111內容數
日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Michael楊 的其他內容
此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
這篇文章主要講解Kotlin的例外處理。內容包括例外處理的目的、`try-catch` 和 `finally` 的用法、常見的異常類型,以及如何定義和觸發自定義的異常訊息。
本章節的目的是介紹 Kotlin 中的物件導向概念。這包括了類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型以及反射等概念。每一個概念都會透過範例程式碼來解釋其功能和用法。
此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
本章節旨在教導讀者如何在 Kotlin 中引入套件。將會涵蓋如何引用第三方套件,如何引用自定義模組,以及如何創建和引用自定義套件。此外,還會列出一些常用的套件,以供讀者參考。
這篇文章主要講解Kotlin的例外處理。內容包括例外處理的目的、`try-catch` 和 `finally` 的用法、常見的異常類型,以及如何定義和觸發自定義的異常訊息。
本章節的目的是介紹 Kotlin 中的物件導向概念。這包括了類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型以及反射等概念。每一個概念都會透過範例程式碼來解釋其功能和用法。
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
一切從"物件(Object)"開始 1.建立新物件 2.編輯物件內容 3.在物件中新增區塊
Thumbnail
針對 JavaScript 中的原始型別和隱性轉型進行了詳細的探討
Thumbnail
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
上一篇文章分享了 TypeScript 的定義、前端角色定位,如果你不是很確定「TypeScript 是什麼?」、「TypeScript 作為 JavaScript 的超集,在網頁開發扮演怎麼樣的角色?」這兩個問題的答案,建議可以回到上一篇先了解一下。
Thumbnail
在剛開始寫 JavaScript 可能大多數的人不會特別意識到 JavaScript 的型別系統有什麼特別之處,我是在看完 Youtube 上 CS50 的課程,才理解到在不同的程式語言中,會因為語言的特性而有不同的系統,JavaScript 就是偏向比較特別的那一種。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
一切從"物件(Object)"開始 1.建立新物件 2.編輯物件內容 3.在物件中新增區塊
Thumbnail
針對 JavaScript 中的原始型別和隱性轉型進行了詳細的探討
Thumbnail
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
上一篇文章分享了 TypeScript 的定義、前端角色定位,如果你不是很確定「TypeScript 是什麼?」、「TypeScript 作為 JavaScript 的超集,在網頁開發扮演怎麼樣的角色?」這兩個問題的答案,建議可以回到上一篇先了解一下。
Thumbnail
在剛開始寫 JavaScript 可能大多數的人不會特別意識到 JavaScript 的型別系統有什麼特別之處,我是在看完 Youtube 上 CS50 的課程,才理解到在不同的程式語言中,會因為語言的特性而有不同的系統,JavaScript 就是偏向比較特別的那一種。