一、简介
Java 是一种高级的、面向对象的、可跨平台的程序设计语言
1.1计算机编程语言介绍
计算机语言很多种,如:C、C++、Java、PHP、kotlin、python、Scala等。
第一代语言:指令以二进制代码形式存在
第二代语言:汇编语言。使用助记符表示一条机器指令。
第三代语言:
C、Pascal、Fortran面向过程的语言
C++面向过程/面向对象
Java跨平台的纯面向对象的语言
.net跨平台的语言
1.2Java语言概述
安卓是谷歌 IOS是苹果
Java开发效率相对于C、C++较高 但C、C++执行效率较高
Python开发效率更快,但执行效率比Java还低
Java是SUN公司推出的一门高级编程语言,后面Oracle公司收购SUN。
后台开发:Java,PHP,Python。GO,Node.js
1.3Java 根据技术类别可划分为以下几类:
- JavaSE(Standard Edition,标准版):支持面向桌面级应用的 Java 平台,提供完整的 Java 核心 API。
- JavaEE(Enterprise Edition,企业版):支持使用多层架构的企业应用的 Java 平台,除了提供 Java SE API 外,还对其做了大量有针对性的扩充,并提供了相关的部署支持。
- JavaME(Micro Edition):支持 Java 程序运行在移动终端上的平台,对 Java API 有所精简,并加入了移动终端的针对性支持。
- Java Card:支持 Java 小程序(Applets)运行在小内存设备(如智能卡)上的平台。
二、关系
2.1 JDK、JRE、JVM 分别是什么关系?
🦅 **JDK**
JDK 即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:
- 用于编译 Java 程序的 javac 命令。
- 用于启动 JVM 运行 Java 程序的 Java 命令。
- 用于生成文档的 Javadoc 命令。
- 用于打包的 jar 命令等等。
> 简单说,就是 JDK 包含 JRE 包含 JVM。
🦅 **JRE**
JRE 即为 Java 运行环境,提供了运行 Java 应用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 Java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
> 简单说,就是 JRE 包含 JVM。
🦅 **JVM**
JVM 即为 Java 虚拟机,提供了字节码文件(`.class`)的运行环境支持。
🦅 **为什么 Java 被称作是“平台无关的编程语言”?**
Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。
- Java 源文件( `.java` )被编译成能被 Java 虚拟机执行的字节码文件( `.class` )。
- Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。