廖雪峰 Java 教程(Java 20)

廖雪峰 Java 教程(Java 20)

Java简介

Java最早是由SUN公司(已被收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oakjava项目教程,在1995年以Java的名称正式发布,原因是Oak已经被人注册了,因此SUN注册了Java这个商标。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。

Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。当然,这是针对Java开发者而言。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。

随着Java的发展,SUN给Java又分出了三个不同版本:

这三者之间有啥关系呢?

  1. ┌───────────────────────────┐
  2. Java EE
  3. ┌────────────────────┐
  4. Java SE
  5. ┌─────────────┐
  6. Java ME
  7. └─────────────┘
  8. └────────────────────┘
  9. └───────────────────────────┘

简单来说,Java SE就是标准版,包含标准的JVM和标准库,而Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同。

Java ME就和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。

毫无疑问廖雪峰 Java 教程(Java 20),Java SE是整个Java平台的核心,而Java EE是进一步学习Web应用所必须的。我们熟悉的等框架都是Java EE开源生态系统的一部分。不幸的是,Java ME从来没有真正流行起来,反而是开发成为了移动平台的标准之一,因此,没有特殊需求,不建议学习Java ME。

因此我们推荐的Java学习路线图如下:

首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用;

如果继续学习Java EE,那么框架、数据库开发、分布式架构就是需要学习的;

如果要学习大数据开发,那么、Spark、Flink这些大数据平台就是需要学习的,他们都基于Java或Scala开发;

如果想要学习移动开发,那么就深入平台,掌握 App开发。

无论怎么选择,Java SE的核心技术是基础,这个教程的目的就是让你完全精通Java SE并掌握Java EE!

Java版本

从1995年发布1.0版本开始,到目前为止,最新的Java版本是Java 20:

时间版本

1995

1.0

1998

1.2

2000

1.3

2002

1.4

2004

1.5 / 5.0

2005

1.6 / 6.0

2011

1.7 / 7.0

2014

1.8 / 8.0

2017/9

1.9 / 9.0

2018/3

10

2018/9

11

2019/3

12

2019/9

13

2020/3

14

2020/9

15

2021/3

16

2021/9

17

2022/3

18

2022/9

19

2023/3

20

java项目教程

本教程使用的Java版本是最新版的Java 20。

名词解释

初学者学Java,经常听到JDK、JRE这些名词,它们到底是啥?

简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。

二者关系如下:

  1. ┌─ ┌──────────────────────────────────┐
  2. Compiler, debugger, etc.
  3. └──────────────────────────────────┘
  4. JDK ┌─ ┌──────────────────────────────────┐
  5. JRE JVM + Runtime Library
  6. └─ └─ └──────────────────────────────────┘
  7. ┌───────┐┌───────┐┌───────┐┌───────┐
  8. Windows││ Linux ││ macOS ││others
  9. └───────┘└───────┘└───────┘└───────┘

要学习Java开发,当然需要安装JDK了。

那JSR、JCP……又是啥?

为了保证Java语言的规范性,SUN公司搞了一个JSR规范,凡是想给Java平台加一个功能,比如说访问数据库的功能,大家要先创建一个JSR规范,定义好接口,这样廖雪峰 Java 教程(Java 20),各个数据库厂商都按照规范写出Java驱动程序,开发者就不用担心自己写的数据库代码在MySQL上能跑,却不能跑在上。

java项目教程

所以JSR是一系列的规范,从JVM的内存模型到Web程序接口java项目教程,全部都标准化了。而负责审核JSR的组织就是JCP。

一个JSR规范发布时,为了让大家有个参考,还要同时发布一个“参考实现”,以及一个“兼容性测试套件”:

比如有人提议要搞一个基于Java开发的消息服务器,这个提议很好啊,但是光有提议还不行,得贴出真正能跑的代码,这就是RI。如果有其他人也想开发这样一个消息服务器,如何保证这些消息服务器对开发者来说接口、功能都是相同的?所以还得提供TCK。

通常来说,RI只是一个“能跑”的正确的代码java项目教程,它不追求速度,所以,如果真正要选择一个Java的消息服务器,一般是没人用RI的,大家都会选择一个有竞争力的商用或开源产品。

参考:Java消息服务JMS的JSR:

java项目教程

读后有收获可以支付宝请作者喝咖啡:

java项目教程

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » 廖雪峰 Java 教程(Java 20)

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们