了解Java

  • 一、Java的起源
  • 二、Java的演变
  • 三、Java 的体系
  • 四、Java的特点
  • 五、Java的跨平台原理
  • 六、JDK、JRE、JVM、GC


一、Java的起源

诞生时间:上世纪90年代,1992年开发出来,1995年正式流行。

主要发明人:詹姆斯.高斯林(James Gosling)

java 的作者 java的发明者是谁_JVM

公司:美国SUN公司(后被Oracle公司收购)
历史:1991年,Sun公司成立以詹姆斯.高斯林领导的“Grenn”项目小组,为家用消费电子产品开发一个分布式代码系统, 这样可以把E-mail发给电冰箱、 电视机等家用电器, 对它们进行控制, 和它们进行信息交流。

1992年,由于C++太复杂, 安全性差, Green小组基于C++开发一种新的语言叫“Oak”,这个名字取自高斯林想名字时,看到窗外的一棵橡树。

1994年,团队决定将Java技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava。

同年,Oak改名为Java。在申请注册商标时,商标搜索显示,Oak已被一家显卡制造商注册,因此团队找到了一个新名字。这个名字是在很多成员常去的本地咖啡馆中杜撰出来的,于是, Java这个名字就这样传开了 。

java 的作者 java的发明者是谁_java 的作者_02

1994年底,James Gosling参加了在硅谷召开的“技术、教育和设计大会”。他报着试一试的心情向与会者演示了Java的功能。
他点击了网页上的一个静止的分子结构图标,一条命令通过互联网送到了几百英里外的网站,下载了一段Java小程序,在本地工作站上开始执行。在几秒钟时间里,原本静止的网页,一个分子图像以三维动画的方式转了起来
“哇!”James Gosling听到了全场观众的赞叹声。
不久后,硅谷最大的报纸《圣荷西信使报》在头版刊登了一篇专文,“为什么Sun认为一杯热咖啡能让你鼓足精神”。 从文章见报开始,负责Java市场人员的电话响个不停。不久,全美的主要报刊杂志都刊登了Java的报道。
Java出名了!

二、Java的演变

1996年,JDK1.0,核心技术有Java虚拟机、Applet、AWT等。
1997年2月,JDK1.1,添加了: Java Bean、远程方法调用(RMI)、JAR文件格式、数字签名、AWT增强(代理事件模型、支持剪贴板、打印等)、对象序列化、反射和内省、内部类等技术。
1998 年 12 月 8 日,JDK1.2——第二代 Java 平台的企业版 J2EE 发布。
1999 年 6 月,Sun 公司把 Java 体系分为三个方向:J2SE、J2EE、J2ME
Java 2 平台的发布,是 Java 发展过程中最重要的一个里程碑,标志着 Java 的应用开始普及。 JKD1.2 的代表性技术有:Swing、2D API(图像绘制)、拖拽功能、音频加强、Java IDL、安全增强(安全策略)、JIT,在 API 文档中,添加了 strictfp关键字和 Collections 集合
2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布。
2002 年 2 月 26 日,J2SE1.4 发布。与 J2SE1.3 相比
2004 年 9 月 30 日,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。
2005 年 6 月,在 Java One 大会上,Sun 公司发布了 Java SE 6。
2011 年 7 月 28 日,收购 Sun 公司的 Oracle 公司发布了 Java SE 7。
2014 年 3 月 18 日,Oracle 公司发布 Java SE8,这次版本升级为 Java 带来了全新的 Lambda 表达式、流式编程等大量新特性,这些新特性使得 Java 变得更加强大.
2017 年 9 月 22 日,Oracle 公司发布 Java SE 9.
2018 年 3 月 21 日,Java SE 10 发布.
2018 年 9 月 26 日,Java SE 11 发布。这是 Java 大版本周期变化后的第一个长期支持版本.
2019 年 3 月 20 日,Java SE 12发布。
2019 年 9 月 23 日,Java SE 13发布。

三、Java 的体系

体系

方向

Java ME(Micro,微型版)

致力于消费产品和嵌入式设备的解决方案,应用于移动、无线及有限资源的环境。

Java SE(Standard, 标准版)

各应用平台的基础,桌面开发和低端商务应用的解决方案。应用于桌面环境。

Java EE(Enterprise, 企业版)

以企业为环境而开发应用程序的解决方案,应用于基于 Java 的应用服务器。

四、Java的特点

  1. 简单易学,Java上手速度快,几乎大部分程序员在刚开始时都是选用Java入门,Java也被成为“编程界的英语”。
  2. 面向对象,Java是一种纯面向对象的编程语言,所以Java具备面向对象的三大特性:封装性,继承性,多态性
  3. 跨平台性(平台无关性),“一次编译,到处运行”,Java最具独特性的特点,也是Java与其他语言的最大区别.
  4. 健壮性,Java语言是一种强类型语言,即在编译和运行时进行大量的类型检查,防止不匹配的数据类型的发生。
    Java提供自动垃圾收集来进行内存管理,防止了内存分配的错误
    Java语言设计了异常处理机制,可以反馈出可能出现但未被处理的异常,帮助程序员正确地进行选择以防止系统的崩溃。
  5. 安全性 官方解释是这儿样的
  6. java 的作者 java的发明者是谁_java 的作者_03

  7. 详情可以访问官网
    https://docs.oracle.com/en/java/javase/16/security/java-security-overview1.html#GUID-2EF91196-D468-4D0F-8FDC-DA2BEA165D10)
  8. 支持网络编程
  9. 支持多线程

五、Java的跨平台原理

Java是可以跨平台的编程语言,那我们首先得知道什么是平台,我们把CPU处理器与操作系统的整体叫平台,也可以说“平台= CPU+OS”。

了解了平台,接下来语言根据执行方式的不同分类:

第一是编译执行,如说到的C,它把源程序由特定平台的编译器一次性编译为平台相关的机器码,它的优点是执行速度快,缺点是无法跨平台;

第二是解释执行,如JavaScript,HTML等它使用特定的解释器,把代码一行行解释为机器码,类似于同声翻译,它的优点是可以跨平台,缺点是执行速度慢,暴露源程序;

第三种是从Java开始引入的“中间码+虚拟机”的方式,它既整合了编译语言与解释语言的优点,同时如虚拟机又可以解决如垃圾回收,安全性检查等这些传统语言头疼的问题,所以其后微软的.NET平台也使用的这种方式。

java 的作者 java的发明者是谁_跨平台_04


我们知道使用C语言的源程序,需要经过相应操作系统的编译器编译之后,才能在平台上运行,所以在C语言中,编译器与平台相关。

举个例子,经过VC编译后的.exe文件能在Linux平台上运行吗?答案肯定是否定的。使用特定编译器编译的程序只能在对应的平台运行,这里也可以说编译器是与平台相关的,编译后的文件也是与平台相关的。我们说的语言跨平台是编译后的文件跨平台,而不是源程序跨平台,如果是源程序,任何一门语言都是跨平台的语言了。

Java和C不一样的是,Java将源程序编译为中间语言,再由解释器二次编译,解释执行。

java 的作者 java的发明者是谁_JVM_05

接下来我们再比较下两种方式的差异:
第一,C语言是编译执行的,编译器与平台相关,编译生成的可执行文件与平台相关;
第二,Java是解释执行的,编译为中间码的编译器与平台无关,编译生成的中间码也与平台无关(一次编译,到处运行),中间码再由解释器解释执行,解释器是与平台相关的,也就是不同的平台需要不同的解释器.

六、JDK、JRE、JVM、GC

JDK:(Java Development Kits) Java开发工具集
JRE:(Java Runime Environment)Java运行时环境
JVM:(Java Virtual Machine) Java虚拟机
GC:(Garbage Collection)垃圾回收器

JVM、GC是Java技术的两种核心机制

JVM是整个java实现跨平台的最核心的部分,它屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”,对于不同的运行平台,有不同 的 JVM。

JVM将堆内存分为Eden区、新生代区、老生代区。创建的对象会放在Eden区,如果Eden区满,则发生GC,新生代区利用可达性算法接收可达对象,然后将Eden区清空。

JDK、JRE、JVM是逐层递减的包含关系,JDK包含JRE,JRE包含JVM

java 的作者 java的发明者是谁_JVM_06