Java開發可能需要知道的一些東西彙總

更新記錄

20230630 新建隨筆
   

 

學習路線圖

基礎

  1. Linux 系統及命令
  2. 虛擬機使用:VirtualBox
  3. 網絡基礎
  4. 英文(English)
  5.  

 

初階

  1. Java 8 語法
  2. Java 命令
  3. Java 編碼規範
  4. IDE,尤其是 IDEA(不缺錢可以支持正版,否則,社區版也夠用了)
  5. Web開發
  6. 設計模式(初階)
  7. MySQL(mybatis)
  8. Redis
  9. RabbitMQ、Kafka
  10. ElasticSearch(基礎)
  11. Spring Framework/Boot/Cloud
  12. 微服務
  13. 數據結構和算法
  14. Web開發(初階):Servlet
  15. SVN
  16. Git
  17. Docker
  18. 項目管理基礎:需求、任務、BUG
  19.  

 

高階

  1. DevOps
  2. Jenkins
  3. Docker
  4. Kubernetes(K8S)
  5. ElasticSearch(高級)
  6. 大數據
  7. 分佈式系統
  8. 分佈式文件系統
  9. 雲計算、雲原生
  10. 人工智能輔助編程
  11.  

 

進階路徑

  1. 梳理知識體系
  2. 看源碼:第一手資料
  3. 看官網:第一手資料
  4. 做公司的項目
  5. 參與開源項目
  6. 給自己做項目
  7. 接私活(單幹):存在風險,必要時,可以諮詢 律師(作者 沒幹過)
  8. 刷題:力扣
  9. 寫博文、寫書、寫論文
  10. 做主播:短視頻直播敲代碼
  11. 給自己玩具鴨講清楚技術點(費曼學習法)
  12.  

 

說明,

每個人的個性不一樣,進階方式也不一樣,上面只是作者個人觀點,請根據自己的特徵來行動

歡迎大家補充,提供更多意見

 

前傳

計算機

臺式機

服務器

嵌入式設備

手機

 

操作系統

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://www.oracle.com/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

https://openjdk.org/

注,沒找到下載的地方,不過,在Ubuntu等操作系統中,可以通過命令安裝。

 

Adoptium

https://adoptium.net/

下載 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

下載:

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、菜鳥教程

https://www.runoob.com

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發佈於博客園

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章