更新記錄
20230630 | 新建隨筆 |
學習路線圖
基礎
- Linux 系統及命令
- 虛擬機使用:VirtualBox
- 網絡基礎
- 英文(English)
初階
- Java 8 語法
- Java 命令
- Java 編碼規範
- IDE,尤其是 IDEA(不缺錢可以支持正版,否則,社區版也夠用了)
- Web開發
- 設計模式(初階)
- MySQL(mybatis)
- Redis
- RabbitMQ、Kafka
- ElasticSearch(基礎)
- Spring Framework/Boot/Cloud
- 微服務
- 數據結構和算法
- Web開發(初階):Servlet
- SVN
- Git
- Docker
- 項目管理基礎:需求、任務、BUG
高階
- DevOps
- Jenkins
- Docker
- Kubernetes(K8S)
- ElasticSearch(高級)
- 大數據
- 分佈式系統
- 分佈式文件系統
- 雲計算、雲原生
- 人工智能輔助編程
進階路徑
- 梳理知識體系
- 看源碼:第一手資料
- 看官網:第一手資料
- 做公司的項目
- 參與開源項目
- 給自己做項目
- 接私活(單幹):存在風險,必要時,可以諮詢 律師(作者 沒幹過)
- 刷題:力扣
- 寫博文、寫書、寫論文
- 做主播:短視頻直播敲代碼
- 給自己玩具鴨講清楚技術點(費曼學習法)
說明,
每個人的個性不一樣,進階方式也不一樣,上面只是作者個人觀點,請根據自己的特徵來行動。
歡迎大家補充,提供更多意見。
前傳
計算機
臺式機
服務器
嵌入式設備
手機
操作系統
Windows XP/10
macOS
Linux
Ubuntu
CentOS
手機操作系統
Android
iOS
HarmonyOS
網絡
OSI七層模型、TCP/IP四層模型
IPv4
IPv6
Socket
TCP
UDP
HTTP、HTTPS
HTTP 2
RPC
gRPC
數據結構和算法
菜鳥教程:數據結構與算法
數據結構:
棧
隊列
數組
鏈表
樹
圖
堆
散列表
算法:
檢索
插入
刪除
更新
排序
更多算法 TODO
Java發展史
見 參考資料#2。
Sun 公司
1991年4月,Java之父 James Gosling 帶領綠色計劃(Green Project)項目啓動,Oak語言誕生——Java的前身;
1995年5月23日,Java語言誕生,在 SunWorld大會 上發佈 Java1.0,第一次提出 Write Once,Run Anywhere 的口號;
1996年1月23日,JDK1.0發佈;
1996年5月底,Sun於美國舊金山舉行了 首屆JavaOne大會;
1999年4月27日,HotSpot虛擬機誕生;
2006年11月13日,JavaOne大會上,Sun公司宣佈計劃要把Java開源;
2009年2月19日,工程代號爲Dolphin(海豚)的JDK 7發佈,這是其第一個里程碑版本;
Oracle 公司
2009年4月20日,Oracle宣佈正式以74億美元的價格收SUN公司,一代巨頭由此沒落;
2011年7月28日,JDK7發佈:G1收集器;
2014年3月18日,Oracle公司發佈JDK 8;
2017年9月21日,Oracle公司發表 JDK 9;
JDK 9之後,Java也以更加敏捷的交付方式如期而至,每年的3月和9月發佈一個版本,每6個月發佈一個版本,每三年一個LTS版本。 |
2018年3月,Oracle正式宣佈 Java EE 成爲歷史名稱,被Oracle掃地出門,並且更名爲 Jakarta EE;
2018年9月25日,JDK 11發佈,這也是一個LTS(long-term support)版本:垃圾回收 ZGC;
2021年9月14日,JDK17發佈,這也是在JDK 11之後的下一個LTS版本;
2023 年 3 月 21 日發佈 JDK 20(20230630最新版)。
Java官網
在線文檔:
https://docs.oracle.com/en/java/javase/index.html
注,安裝某個版本的JDK後,本地也會有文檔。
Oracle JDK 下載頁:
https://www.oracle.com/java/technologies/downloads/
Java 20、Java 17
Java 11、Java 8
--
注意,Java 8 的 license 在 2019年4月 發生了變更。
The Oracle JDK 8 license changed in April 2019 The Oracle Technology Network License Agreement for Oracle Java SE is substantially different from prior Oracle JDK 8 licenses. This license permits certain uses, such as personal use and development use, at no cost -- but other uses authorized under prior Oracle JDK licenses may no longer be available. Please review the terms carefully before downloading and using this product. FAQs are available here. |
早期版本JDK下載:
https://www.oracle.com/java/technologies/downloads/archive/
Java SE 8 Archive Downloads (JDK 8u202 and earlier)
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
劃重點:
These Java SE 8 update releases are provided under the Binary Code License (“BCL”). Java SE 8u211 and later updates are available, under the Java SE OTN License. |
JDK Release Notes
https://www.oracle.com/java/technologies/javase/jdk-relnotes-index.html
可以看到各個 大版本、小版本 的發佈信息。
OpenJDK
注,沒找到下載的地方,不過,在Ubuntu等操作系統中,可以通過命令安裝。
Adoptium
下載 OpenJDK 的地方。
--
新技術:GraalVM
https://www.oracle.com/java/graalvm/
JDK
JDK 包含 JRE,JRE 包含 JVM。
Java ME
Java SE
Java EE
HotSpot VM
GraalVM
其它VM
Java 語法
Java 8 之前
菜鳥教程:Java 教程
安裝JDK後,也可以找到本地文檔。
Java 8 新特性
菜鳥教程:Java 8 新特性
更多請看 JDK Release Notes
Java 9 新特性
菜鳥教程:Java 9 新特性
更多請看 JDK Release Notes
Java 17
園友 風的姿態 的博文:新項目決定用 JDK 17了
https://www.cnblogs.com/fengzheng/p/16993637.html
裏面有一些介紹。
密封類 sealed permits non-sealed yield 三引號 record vs lombok ZGC 控制 stop the world 時間不超過10毫秒 更多 |
更多請看 JDK Release Notes
Java 編碼規範
Google Java Style Guide - Google · GitHub
https://google.github.io/styleguide/javaguide.html
阿里巴巴 Java 開發手冊
Alibaba Java Coding Guidelines
https://github.com/alibaba/p3c
SonarQube
極好的一款代碼檢查工具,除了檢查 Java,還支持很多其它編程語言。
網址:
下載:
https://www.sonarsource.com/products/sonarqube/downloads
注,有社區版,可以使用 Docker容器 啓動。
注,不同版本支持的 Java版本 不同。
--
Java 命令
第一組命令:基本命令
javac
java
jar
javadoc
jdb
第二組命令:調優監控
jps
jstack
jmap
jhat
jstat
其它命令
jconsole
jvisualvm
keytool
集成開發工具(IDE)
IDE: Integrated Development Environment
Eclipse
下載:
https://www.eclipse.org/downloads/
IntelliJ IDEA
下載:
https://www.jetbrains.com/zh-cn/idea/download/
社區版:IntelliJ IDEA Community
GitHub Copilot
Your AI pair programmer.
網址:
https://github.com/features/copilot
注,作者還沒用過。
設計模式
菜鳥教程:設計模式
GOF(四人幫,全拼 Gang of Four)
書《Design Patterns - Elements of Reusable Object-Oriented Software(中文譯名:設計模式 - 可複用的面向對象軟件元素)》
四種類型
六大原則
Web開發
Servlet
Web服務器
Tomcat
代碼及項目管理
SVN
Git
Maven
Gradle
項目管理
開發框架
Spring Framework
Spring Boot
Spring Cloud
數據庫
SQL
MySQL
PostgreSQL
NoSQL
NewSQL
分庫分表
數據備份
分佈式數據庫
行式存儲
列式存儲
雲原生數據庫
OLTP
OLAP
高頻概念
ACID
CAP
BASE
緩存
本地緩存
分佈式緩存
Redis
消息隊列
RabbitMQ
Apache Kafka
搜索
Apache Lucene
Apache Solr
ElasticSearch
ClickHouse
分佈式文件系統
Distributed File System,DFS
HDFS
Ceph
大數據
ELK
Hadoop
HDFS
Spark
Apache Flink
軟件架構
單體架構
分佈式架構
微服務架構
服務網格架構
雲原生架構
DevOps
GitLab
Jenkins
Docker
Kubernetes
人工智能
deeplearning4j
軟件基金會
部分基金會:
自由軟件基金會(Free Software Foundation,簡稱 FSF) | 1985 年 |
Apache 軟件基金會(Apache Software Foundation,簡稱 ASF) | 1999 年 |
Linux 基金會(Linux Foundation,簡稱 LF) | 2000 年 |
雲原生計算基金會(Cloud Native Computing Foundation,簡稱 CNCF) | 2015 年 |
開源協議
GPL
GPLv2
BSD
---END---
注,作者水平有限,如有錯漏,歡迎不吝指正,將不甚感謝。
注,後續或會繼續更新(不保證)。
本文鏈接:
https://www.cnblogs.com/luo630/p/17515748.html
參考文檔
1、菜鳥教程
2、簡述Java發展歷史
https://zhuanlan.zhihu.com/p/465034540
by 星光
3、過兩年 JVM 可能就要被 GraalVM 替代了
https://www.cnblogs.com/fengzheng/p/16986535.html
posted @ 2022-12-16 09:29 by 風的姿態
4、新項目決定用 JDK 17了
https://www.cnblogs.com/fengzheng/p/16993637.html
posted @ 2022-12-20 10:09 by 風的姿態
5、這12款Idea插件,能讓你代碼飛起來!
https://www.51cto.com/article/717806.html
by 蘇三呀
2022-09-02 08:21:24
6、阮一峯:開源許可證基礎知識掃盲
https://www.oschina.net/news/90054/opensource-license-introduction
7、常用的分佈式文件系統
by 程序員儲物箱
https://zhuanlan.zhihu.com/p/402400917
編輯於 2021-08-23 23:21
8、世界最著名的 16 個開源軟件基金會,你認識哪幾個呢?
Docker中文社區
https://zhuanlan.zhihu.com/p/434702551
發佈於 2021-11-18 14:54
9、
ben發佈於博客園