Java - 歷史

歡迎,充滿朝氣的程式設計師們!今天,我們將要走進Java的迷人歷史當中,這是一段關於全球最流行的編程語言之一的故事。作為你親切友善的電腦科學老師,我非常高興能夠與你們分享這個故事。所以,拿起一杯咖啡(來一杯Java如何?)讓我們一起深入探討吧!

Java - History

Java的歷史

Java的誕生

從前,在1990年代初,Sun Microsystems公司的一群天才工程師,在詹姆斯·高斯林的帶領下,開始了一項使命。他們的目標是什麼?創造一種能夠驅動下一代智能家用電器的語言。他們當時並不知道,他們的創作將會改變編程世界的命運!

Java在1995年問世,但其概念的形成卻是在多年以前。該項目最初被稱為"Oak"(我們稍後會解釋名字的變更),旨在創造一種:

  1. 簡單
  2. 面向對象
  3. 堅固
  4. 安全
  5. 平台獨立

的語言。這些原則,被稱為Java的五大主要目標,從那以後一直指導著它的發展。

"一次編寫,到處運行"的哲學

Java最突破性的功能之一是它能在任何平台上無需重新編譯即可運行。這種"一次編寫,到處運行"(WORA)的哲學當時是革命性的。以下是一個簡單的例子來說明這個概念:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

這個簡單的程式將能在任何擁有Java虛擬機(JVM)的設備上運行,無論是Windows PC、Mac,甚至是智能冰箱(是的,現在這也是一種東西)!

Java的名稱歷史

現在,讓我們來解釋一下那個明顯的問題 - 為什麼它叫Java?嗯,這不是因為開發者都是咖啡癮君子(雖然這可能起了一定的作用)。

"Oak"這個名字已經被商標註冊了,所以團隊需要一個新名字。在一場腦力激蕩會議中,他們提出了"Java" - 受到許多團隊成員喜愛的Java咖啡的啟發。這個名字就這樣被採用了,於是Java便誕生了!

有趣的事實:Java的官方標誌是一杯熱氣騰騰的咖啡。這真是把你的靈感穿戴在袖子上!

Java版本歷史

自從Java的首次發布以來,它已經走過了一段漫長的旅程。讓我們來快速瀏覽一下它的主要版本:

JDK 1.0 (1996)

Java的第一个公开版本。它包括了Java Applet、AWT和核心庫。

J2SE 1.2 (1998)

引入了Swing GUI工具包和Collections框架。

import java.util.ArrayList;
import java.util.List;

public class CollectionsExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("is");
list.add("awesome");
System.out.println(list);
}
}

這段代碼演示了ArrayList類的使用,該類是此版本中引入的Collections框架的一部分。

J2SE 5.0 (2004)

一個重要版本,引入了泛型、列舉、可變參數和增強型for循環。

public class EnhancedForLoop {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
}
}

這個例子展示了增強型for循環,它使得對集合的迭代變得更加簡單。

Java SE 8 (2014)

引入了lambda表達式、Stream API和接口中的默認方法。

import java.util.Arrays;
import java.util.List;

public class LambdaExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n * 2));
}
}

這段代碼演示了lambda表達式的使用,它大大簡化了Java中的函數式編程。

Java SE 11 (2018)

Java 8之後的第一個長期支持(LTS)版本,引入了用於局部變量類型推斷的var關鍵字。

public class VarExample {
public static void main(String[] args) {
var message = "Hello, Java 11!";
System.out.println(message);
}
}

var關鍵字允許編譯器推斷變量的類型,從而使代碼更加簡潔。

Java SE 17 (2021)

截至我的知識截止日期為止的最新LTS版本,引入了封閉類和切換表達式的模式匹配。

public class SwitchPatternMatching {
public static void main(String[] args) {
Object obj = "Hello";
String result = switch (obj) {
case Integer i -> "It's an integer: " + i;
case String s -> "It's a string: " + s;
default -> "It's something else";
};
System.out.println(result);
}
}

這個例子演示了切換表達式中的模式匹配,這是一個處理不同類型對象的強大功能。

結論

就是這樣,各位!我們一起走過了Java的歷史,從它卑微的起點"Oak"到現在作為全球最廣泛使用的編程語言之一。

Java的演變證明了它的適應性和社區的奉獻精神。從驅動網絡應用程序到在全球數十億設備上運行,Java真正實現了其"一次編寫,到處運行"的哲學。

記住,每當你寫下一行Java代碼時,你就是這段豐富歷史的一部分。所以,繼續編程,繼續學習,誰知道呢?也許你就是那位將為Java的故事寫下新篇章的人!

快樂編程,未來的Java大師們!

Credits: Image by storyset