1. Java发展史
1.1 计算机编程语言分类
-
机器语言:电子机器能够直接识别的语言,无需经过翻译,计算机内部就有相应的电路来完成它;从使用的角度来看,机器语言是最低级的语言。
机器语言。指令以二进制代码形式存在。
-
汇编语言:面向机器的程序设计语言,符号语言;人工操作起来较简易的方式来设计程序的语言,通过不同的符号代替机器指令,特定的汇编语言与特定的机器语言指令集是一一对应的。
汇编语言。使用助记符表示一条机器指令。
-
高级语言 :更容易被人们所理解的高级程序语言,符合人类思维模式的程序设计语言,如:C、Java,JavaScript、Python、Go等。
从上面这个简单的加法计算,可以看出越到高级语言,越接近人的思维,人使用起来就越方便。
高级语言的出现,尤其是面向对象语言的出现,相当于人类的工业社会,高级语言极其易用,编程门槛和难度大大降低,大量的人员进入软件开发行业,为软件爆发性的增长提供了充足的人力资源。目前以及可预见的将来,计算机语言仍然处于"第三代高级语言"阶段。
1.2 Java语言概述

-
是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。
-
Java一开始富有吸引力是因为Java程序可以 在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。
-
随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
-
后台开发:Java、PHP、Python、Go、Node.js
1.3 Java诞生发展及核心

版本
版本 | 工程代号 | 发行日期 |
---|---|---|
JDK Beta | 1995年 | |
JDK 1.0 | Oak(橡树)适用于互联网 | 1996年1月 |
JDK 1.1 | 1997年2月 | |
J2SE 1.2 | Playground(运动场) | 1998年12月 |
J2SE 1.3 | Kestrel(美洲红隼) | 2000年5月 |
J2SE 1.4 | Merlin(灰背隼) | 2002年2月 |
Java SE 5 (1.5) | Tiger(老虎)(里程碑式的版本,更名为JDK5.0) | 2004年9月 |
Java SE 6 (1.6) | Mustang(野马)(2009年Oracle公司74亿美元收购SUN) | 2006年12月 |
Java SE 7 (1.7) | Dolphin(海豚) | 2011年7月 |
Java SE 8 (1.8) (LTS) | Spider(蜘蛛) | 2014年3月 |
Java SE 9 | 2017年9月 | |
Java SE 10 | 2018年3月 | |
Java SE 11 (LTS) | 2018年9月 | |
Java SE 12 | 2019年3月 | |
Java SE 13 | 2019年9月 | |
Java SE 14 | 2020年3月 | |
Java SE 15 | 2020年9月 | |
Java SE 16 | 2021年3月 | |
Java SE 17 (LTS) | 2021年9月 | |
Java SE 18 | 2022年3月 |
1.4 Java技术体系平台
-
JavaSE :**(Java Platform Standard Edition)**标准版本,也称之为( J2SE),具备了基本的库,用于在pc端进行开发,Java 标准平台,所有的 Java 项目都需要 JavaSE 的支持,包括 Java EE 和 Java ME ,提供了完整的Java核心API。
-
JavaEE:企业版本,也称之为( J2EE),Java 的企业平台,用于开发和部署可移植、健壮、可拓展和安全稳定的服务器端Java应用程序,具备了开发网站的功能,用于开发网站。
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 :Servlet 、Jsp等,主要针对于Web应用程序开发
-
JavaME:最小版本,也称之为( J2ME),在移动端开发使用,嵌入式设备上使用。
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,用于开发移动设备、嵌入式设备(比如手机、PDA、电视机顶盒和打印机)等。
1.5 Java语言的特点
-
特点一:
-
面向对象
-
两个基本概念:类、对象
-
三大特性:封装、继承、多态
-
-
特点二:
-
健壮性
-
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
-
-
特点三:
-
跨平台性 (可移植性,详见2.3)
-
通过Java语言编写的应用程序在不同的系统平台上都可以运行。"Write once , Run "Anywhere"
-
2. JDK、JRE、JVM
2.1 基本概述
-
JVM(Java Virtual Machine):JVM(Java虚拟机)是一个可执行Java字节码的虚拟机进程,用于解析编译后的字节码文件。 JVM屏蔽了与操作系统平台相关的信息,可以把字节码解释成具体平台上的机器指令执行,这也是Java的能够
"一次编译,到处运行"
的原因。- JVM的核心任务是解释字节码文件,它不能运行字节码文件。因为JVM执行class还需要JRE下的lib类库的支持,尤其是rt.jar,这一点非常重要。
-
JRE(Java Runtime Environment):JRE(Java运行环境),它包含JVM的标准实现及Java核心类库。需要注意的是 : JRE是Java的运行环境,不是开发环境。JRE不包含任何开发工具,如:编译器、调试器等,因为JRE是面向Java程序(jar包)的,程序只需要运行不需要编译、调试等功能。
- 在Java的世界中,JRE的地位相当于是一台PC机器中的Windows操作系统。 Windows操作系统可以运行.exe格式化的应用程序,对应的,JRE操作系统用于运行.jar格式的应用程序. B/S (我的世界)
-
JDK (Java Development Kit):JDK是java开发工具包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。JDK是面向程序员的。JDK安装目录中是包含JRE的,而JRE中是包含JVM的,所以电脑安装完JDK后就具备了开发Java源文件、编译class字节码文件、运行jar程序的功能
2.2 三者关系


-
Jre = JVM + 运行时需要的类库
-
Jdk = Jre + Java程序开发工具(例如javac编译工具等)
2.3 Java可移植性
-
什么是可移植性
高级语言开发流程:(c/c++ 编程时情况)
编写代码===》编译代码===》运行程序,换种说法:
源码文件 --> 编译成机器能够识别的语言 --> 机器执行
问题?硬件怎么交流?===》操作系统的作用 ===》根据操作系统编写代码 ===》编写的代码不具备跨平台行
java是如何解决跨平台运行的问题呢?
对于不同的平台,有不同的虚拟机。只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
Java虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,到处运行"
例如:Java程序可以在Windows操作系统上运行,在不做任何修改的情况下,也可以在Linux操作系统下运行。
2.4 安装JDK


-
配置环境变量:
每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目录下都可以执行java的工具呢? 根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到path 环境变量中,让系统帮我们去找运行执行的程序。
-
配置方法:
我的电脑--属性--高级系统设置--环境变量
1.新建环境变量

2.输入jdk安装目录

JAVA_HOME
C:\zulu11.60.19-ca-jdk11.0.17-win_x64
-
修改配置方式,为以后工作环境做好铺垫
path
%JAVA_HOME%\bin