JavaOne 2013 大會宣示:Java 8 為革命性版本,「Java 回來了」。Mark Reinhold 稱 Lambda 為「自 Java 誕生以來編程模型最大單一升級,甚至超越泛型」。本文梳理 Java 8 核心創新、平台統一戰略及生態發展。
// 传统匿名内部类 Collections.removeAll(people, new Predicate() { public boolean test(Person p) { return p.getAge() > 18; } }); // Lambda 简写 Collections.removeAll(people, p -> p.getAge() > 18);
Lambda 不僅語法簡潔,更利用 invokedynamic 生成高效字節碼。
// 串行
int maxWeight = people.stream()
.filter(p -> p.getGender() == MALE)
.mapToInt(Person::getWeight)
.max();
// 并行:仅一行改动
int maxWeight = people.parallelStream()
.filter(p -> p.getGender() == MALE)
.mapToInt(Person::getWeight)
.max();
底層基於 Fork/Join 框架,開發者無需關心任務分解細節。
invokedynamic,性能大幅超越 RhinoJava 8 統一 SE、ME、Embedded 平台:
關注開發效率、企業需求、HTML5:
模組化系統、泛型具體化、JNI 2.0、GPU 支持、內存高效數據結構。
Java 8 以 Lambda 為核心重塑編程體驗,以平台統一回應碎片化挑戰,標誌著 Java 生態進入新階段。