狠狠撸

狠狠撸Share a Scribd company logo
1
闯补惫补平台概论
學習目標
? 簡介Java版本遷移
? 認識Java SE、Java EE、Java ME
? 認識JDK規範與實作
? 瞭解JVM、JRE與JDK
? 下載、安裝JDK
2
Java不只是語言
? 從1995年至今
? 不僅是個程式語言,也代表解決問題的平臺
? 原廠、各個廠商、社群、開發者與使用者溝
通的成果
3
Java誕生
? 最早是Sun公司綠色專案(Green Project)中
撰寫Star7應用程式的程式語言
? 當時名稱不是Java,而是取名為Oak
? 許多為了節省資源而做的設計
? 全球資訊網(World Wide Web)興起,Java
Applet成為網頁互動技術代表
4
? 1995年5月23 日,Oak正式改名為Java
? Java Development Kits(當時JDK全名)1.0a2
版本正式對外
? 這一天公認為Java的誕生日
? 1996年Netscape Navigator 2.0正式支援Java,
Microsoft Explorer亦開始支援Java
5
6
從J2SE到Java SE
? Sun在1998/12/04年發佈Java 2 Platform,簡稱
J2SE 1.2
? Java開發者版本一開始是以Java Development
Kit名稱發表,簡稱JDK
? J2SE是平臺名稱,包含了JDK與Java程式語
言
7
8
? 2004/09/29發表的Java平臺標準版的版號不是
1.5,而直接跳到5.0,稱為J2SE 5.0
? 2006/12/11發表的Java平臺標準版,除了版號
之外,名稱也有了變化,稱為Java Platform,
Standard Edition 6,簡稱Java SE 6
? JDK6全名為Java SE Development Kit 6,也
就是不再像以前Java 2帶有"2"這個號碼
9
江山易主
? 2010年Oracle宣佈併購Sun,Java也正式成為
Oracle所屬
10
目前釋出週期
? 從Java SE 9開始,JDK採取以半年為週期,
持續發布新版本
? $FEATURE.$INTERIM.$UPDATE.$PATCH
11
? 就企業而言,需要留意的是長期支援版本(
Long-Term-Support)
? 每三年釋出LTS
? Java SE 8、Java SE 11是LTS,下個LTS預計
是Java SE 17
? LTS版本實際維護時間視JDK來源而定,可能
會是三到六年不等的時間
? Java SE 9、12、13、14等,只是短期支援版
本,釋出後六個月後就不再維護
12
? Sun公司在1999年6月美國舊金山的Java One
大會上,公佈了新的Java體系架構
– J2SE(Java 2 Platform, Standard Edition)
– J2EE(Java 2 Platform, Enterprise Edition)
– J2ME(Java 2 Platform, Micro Edition)
13
14
JCP與JSR
? Java不僅是程式語言,而是標準規範!
? Sun公司於1998年組成了JCP(Java
Community Process)
? 任何想加入Java的功能或特性,必須以JSR(
Java Specification Requests)正式文件的方
式提交
15
System.out.println("Hello, World");
? 若JSR成為最終文件,必須根據JSR實作出免
費且開放原始碼的參考實現,稱為RI(
Reference Implementation)
? 提供TCK(Technology Compatibility Kit)
作為技術相容測試工具箱
16
? 在JSR規範的標準之下,各廠商可以各自實
作
? Java SE 14的主要規範是在JSR 389文件之中
17
jcp.org/en/jsr/detail?id=389
Oracle JDK與OpenJDK
? Sun JDK實現,就是JDK的參考實作(
Reference Implementation)
? 有興趣的廠商或組織可以根據JSR自行實現
產品
? 只有通過TCK 相容性測試的實作,才可以使
用Java這個商標
18
? 2006年的JavaOne大會上,Sun宣告其參考實
作將開放原始碼
? 從JDK7 b10 開始有了OpenJDK,並於2009
年4月15日正式發佈 OpenJDK
? Oracle接管Sun之後發佈的JDK7正式版本,指
定了OpenJDK7為官方參考實作
19
Oracle JDK7與OpenJDK7
? Sun JDK當時採JRL
– 原始碼可用於個人研究使用,禁止任何商業用途
? OpenJDK7採GPL2 with the Classpath
Exception
– 允許商業上的使用
– 必須拿掉許多在兩個授權間有衝突的程式碼
– 不包括一些部署(Deployment)工具(像是Java
Web Start等 )以及軟體套件(像是Java DB)等
20
? 原始的OpenJDK7是不完整的,無法通過JCK
相容測試
? 如果執行java -version,會顯示openjdk
version字樣,而不是java version字樣
? Red Hat於2007年發起了IcedTea計畫
21
Open JDK7與OpenJDK6
? OpenJDK6並不是Sun JDK6的分支,而是將
OpenJDK7中JDK7的特性拿掉
? 實際上是OpenJDK7的分支
22
使用哪個版本?
? Sun BCL
– 從Sun下載的JDK用於桌面個人電腦時,是免費
的(no-fee)
? Oracle BCL
– 從Oracle下載的JDK,只能用於一般用途(
general purpose)
23
? Oracle JDK License
– 除了開發、測試、原型、應用程式展示外,不可
用於任何資料處理、商業、產品、內部企業使用
等目的
? Oracle JDK使用者,必須取得商用授權
24
? OpenJDK
– 基於GPL2 with the Classpath Exception
– 不能使用Oracle提供的臭蟲、安全性修補等服務
– 修補原始碼會回饋至OpenJDK的原始碼庫
– 可以自行取得原始碼進行建構
25
? 預先建構好的OpenJDK LTS
– AdoptOpenJDK
– Amazon Corretto
? Azul Zulu為OpenJDK提供了付費服務
? 考量與作業系統整合度時,Red Hat提供內含
OpenJDK的建構版本
26
? 就企業而言,需要留意的是LTS
– Java SE 8與Java SE 11
? Java SE 8釋出於2014年
? Java SE 9以後開始支援模組化
27
建議的學習路徑
28
? 深入瞭解JVM/JRE/JDK
? 理解封裝、繼承、多型
? 掌握常用Java SE API架構
? 學習容器觀念
? 研究開放原始碼專案
? 學習模式與重構
? 熟悉相關開發工具
29
JVM/JRE/JDK
30
什麼是JVM?
? Java Virtual Machne(JVM)
31
32
33
? 編譯一次,到處到處執行
JRE與JDK
? Java Runtime Environment
? 包括了Java SE API與JVM
34
? Java Development Kit
? 包括了Java程式語言、工具程式與JRE,
JRE則包括了部署技術、Java SE API與JVM
? 新版本的Oracle JDK或OpenJDK,都不再提
供獨立的JRE安裝或下載
35
下載、安裝JDK
? Oracle JDK
– www.oracle.com/java/technologies/javase-
downloads.htm
36
37
38
39
OpenJDK
? jdk.java.net/14/
40
認識JDK安裝內容
41

More Related Content

What's hot (20)

Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
颁贬11:执行绪与并行础笔滨
颁贬11:执行绪与并行础笔滨颁贬11:执行绪与并行础笔滨
颁贬11:执行绪与并行础笔滨
Justin Lin
?
颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫
颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫
颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫
Justin Lin
?
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
?
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
?
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin
?
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
?
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Justin Lin
?
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
?
Introduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoCIntroduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoC
Funnelll
?
Java Class Loader
Java Class LoaderJava Class Loader
Java Class Loader
Bhanu Gopularam
?
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
?
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
?
Spring boot
Spring bootSpring boot
Spring boot
Pradeep Shanmugam
?
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)
Prashanth Kumar
?
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
Helder da Rocha
?
4?. Class Loader
4?. Class Loader4?. Class Loader
4?. Class Loader
? ??
?
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
颁贬11:执行绪与并行础笔滨
颁贬11:执行绪与并行础笔滨颁贬11:执行绪与并行础笔滨
颁贬11:执行绪与并行础笔滨
Justin Lin
?
颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫
颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫
颁贬09:颁辞濒濒别肠迟颈辞苍与惭补辫
Justin Lin
?
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
?
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
?
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Justin Lin
?
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
Introduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoCIntroduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoC
Funnelll
?
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
?
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
?
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)
Prashanth Kumar
?
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
Helder da Rocha
?
4?. Class Loader
4?. Class Loader4?. Class Loader
4?. Class Loader
? ??
?

Similar to 颁贬1:闯补惫补平台概论 (13)

闯补惫补平台概论
闯补惫补平台概论闯补惫补平台概论
闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論
Justin Lin
?
1, java intro
1, java intro1, java intro
1, java intro
ted-xu
?
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?
第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置
yinmei1983
?
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
Ray Lin
?
Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)
Kris Mok
?
2. java introduction
2. java introduction2. java introduction
2. java introduction
netdbncku
?
必备的 Java 参考资源列表
必备的 Java 参考资源列表必备的 Java 参考资源列表
必备的 Java 参考资源列表
wensheng wei
?
[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)
[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)
[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)
ArBing Xie
?
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
?
闯补惫补平台概论
闯补惫补平台概论闯补惫补平台概论
闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論
Justin Lin
?
1, java intro
1, java intro1, java intro
1, java intro
ted-xu
?
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?
第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置
yinmei1983
?
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
Ray Lin
?
Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)
Kris Mok
?
2. java introduction
2. java introduction2. java introduction
2. java introduction
netdbncku
?
必备的 Java 参考资源列表
必备的 Java 参考资源列表必备的 Java 参考资源列表
必备的 Java 参考资源列表
wensheng wei
?
[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)
[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)
[圣思园][Java SE]001 java se 第一讲(java se入门、jdk的下载与安装、第一个java程序、java程序的编译与执行)
ArBing Xie
?
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
?

More from Justin Lin (19)

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
?
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
?
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin
?
13.并行、平行与非同步
13.并行、平行与非同步13.并行、平行与非同步
13.并行、平行与非同步
Justin Lin
?
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
?
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin
?
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin
?
9. 資料結構
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin
?
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
?
7. 例外處理
7. 例外處理7. 例外處理
7. 例外處理
Justin Lin
?
6. 類別的繼承
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
Justin Lin
?
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
Justin Lin
?
4. 流程語法與函式
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
Justin Lin
?
3.型态与运算子
3.型态与运算子3.型态与运算子
3.型态与运算子
Justin Lin
?
1. Python起步走
1. Python起步走1. Python起步走
1. Python起步走
Justin Lin
?
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
?
Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄
Justin Lin
?
颁贬19:深入模组化
颁贬19:深入模组化颁贬19:深入模组化
颁贬19:深入模组化
Justin Lin
?
Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
?
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
?
13.并行、平行与非同步
13.并行、平行与非同步13.并行、平行与非同步
13.并行、平行与非同步
Justin Lin
?
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
?
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin
?
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin
?
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
?
6. 類別的繼承
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
Justin Lin
?
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
Justin Lin
?
4. 流程語法與函式
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
Justin Lin
?
3.型态与运算子
3.型态与运算子3.型态与运算子
3.型态与运算子
Justin Lin
?
1. Python起步走
1. Python起步走1. Python起步走
1. Python起步走
Justin Lin
?
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
?
Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄
Justin Lin
?
颁贬19:深入模组化
颁贬19:深入模组化颁贬19:深入模组化
颁贬19:深入模组化
Justin Lin
?

颁贬1:闯补惫补平台概论