Java开发可能需要知道的一些东西汇总
更新记录
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发布于博客园