😃前言
- 在写这篇博客的两天前,我没有接触过任何和Java有关的东西
- 该博客权且算作个人学习笔记,基于互联网精神而分享
- 纰漏之处敬请斧正
😴各种名词解释
不知道你有没有听说过Java8、jdk1.8、Java SE、Java EE、J2SE、Spring、Spring Boot、Java1.1、JDK23、JDK17、Oracle JDK、Open JDK、JavaFX、JVM、JIT、Java ME、JMC、Graalvm for JDK、JFR、Amazon Corretto JDK、BellSoft liberica JDK…
😴晕了,Java咋一下了1.8一下子就21了
好哒,先分类😃,分成Java版本、Java内容、Java框架、JDK版本、JDK供应商(为什么这样分类…因为就是这样)
Java版本和JDK版本
你下载的是什么?
关于Java的下载,和C、Python一样,编程语言是不存在下载这么一个说法的,下载的是这个语言的开发工具包(开发工具包里有编译器或者解释器,还有其他debug工具和模块之类的)。
C语言下载MinGW-w64工具包(或者其他的MSVC、Cygwin)、Python语言下载官网的Python开发工具包(或者第三方的开发工具包)
在Oracle官网下载Java语言的JDK,就是Java开发工具包
这样就可以理解Java和JDK是什么关系了。
再举个例子,把编程语言想象成英语/日语/俄语,你要用英语创作的时候,你就要有笔、纸、词典、资料等等,这些工具。
下附每个Java版本号的JDK对应表(老版本有ME/SE/EE区分,表中不做区分)
关于Java ME、SE、EE的思考
另外还有Java ME、SE、EE。
1.简单说一下Java ME语言是微型的Java语言,它能实现的功能更少,它还包含了一些特殊的接口、功能(专门于移动/嵌入式设备)Java ME用得不多,主要是机顶盒等嵌入式的电子产品开发,但是它实际效果不如C/C++,不用在乎Java ME;
2.Java SE是Java语言标准版,就是正常的,满足于普通桌面应用开发;
3.Java EE是企业版Java语言,比标准版更大更全,但是由于Spring的兴起及其他原因,Java EE现在已经融入了各种企业框架中,比如Spring。
😤😤
那就又有人问,平常说的JDK是JavaSE的还是JavaEE的?不是说JDK是Java SE的实现吗?不不不,JDK是完整的Java的实现,JDK里面的javac编译器并不是只能编译Java SE的代码,Java EE也可以。Java EE比Java SE多出来的功能也是用SE去实现的,所以说JDK是基于SE的实现。
其实大可不必去区分这三个Java分支,它们之间的界限已经很模糊了,那已经是十年前的事情了。即便现在还有博主在说什么配置Java EE,他们配置的都不是啥Java EE,是开发企业级应用需要的环境(tomcat、severlet等等)。其实就只有一个Java。整一个JDK就完事了,JDK不区分什么ME SE EE。
一个JDK既可以开发普通应用也可以开发企业级应用。当然,无论是普通应用还是企业应用,都需要相应的环境,这个环境就因事而异,JDK可没办法打包。
JDK供应商
JDK是开发工具包,不同工具包之间有些许差异
本文的重点就是选择谁家的哪个版本的JDK
首先分为付费的和免费的
付费的
JDK名称 | 供应商 | 备注 |
---|---|---|
Oracle JDK | 甲骨文 | 具有Oracle专有技术 |
GraalVM Enterprises Edition | 甲骨文 | GraalVM特化版 |
Azul Zing | 阿祖尔 | 号称最强最便宜的JDK |
还有一些,不做那么多,也没必要 |
免费的
免费的都是基于Oracle OpenJDK的做出改进,各供应商也都有参与OpenJDK贡献
JDK名称 | 供应商 | 备注 |
---|---|---|
Amazon Corretto | 亚马逊 | 亚马逊云开发可以选择这个 |
Azul Zulu Community | 阿祖尔 | |
BellSoft Liberica JDK | 贝尔实验室 | |
BellSoft Liberica JDK(Full) | 贝尔实验室 | 带有FX功能 |
Eclipse Temurin(AdoptOpenJDK HotSpot) | Eclipse基金会 | |
GraalVM Community Edition | 甲骨文 | 比Oracle GraalVM好很多,接近同款付费版 |
IBM Semeru(AdoptOpenJDK OpenJ9) | 国际商业机器 | |
Oracle GraalVM | 甲骨文 | 基础版GraalVM |
Oracle OpenJDK | 甲骨文 | 更新频率非常高 |
SAP SapMachine | 思爱普 |
我推荐使用BellSoft Liberica JDK 17(Full),因为Spring官方推荐这个版本
人家已经帮我们选好了,还想那么多干什么呢?它又不是微软(强推硬推Win11)。靠谱,所以我径直选择了贝尔实验室的JDK17。🤩
Java内容
这部分不做过多阐述
有的时候还会听到JIT,JIT是JVM的内容,JVM也有许多家,不过默认是Hotspot,在特定产品情况下会用其他的JVM。
Java框架
框架就是别人写好了的好东西,你可以直接拿来用,就比如Spring。🤗
1.Spring 框架 (万能框架)
2.Spring MVC 框架
3.Spring Boot 框架 (简化版)
4.Netty (事件驱动网络通信)
5.Spring Cloud (微服务)
6.Shiro (安全方面)
7.Ehcache (缓存)
8.Quartz (任务调度)
9.Velocity
10.JUnit (单元测试)
11.Log4j
12.SSM
13.Eureka
14.Spring Security(安全)
小结
Java语言规定了一串文字(也就是代码)的功能
JDK是工具包,用工具包把你写的代码变成程序跑起来
框架是功能拓展,代码里面加入框架让开发更快更好
环境是环境(解释不出来)
刚折腾一天的小白,终于在Win11上,用Intellij IDEA + BellSoft Liberica JDK(Full)让终端输出了“Hello world”