Java开发可能需要知道的一些东西汇总

发布时间 2023-06-30 16:46:38作者: 快乐的凡人721

更新记录

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发布于博客园