基本

JDK

Java开发工具包(Java Development Kit)
只要开发Java应用都需要下载JDK

JRE

Java SE运行时环境(Java SE Runtime Environment)
提供了Java应用运行时所需要的环境

javac.exe

编译器
由于计算机本身不能直接执行高级语言,底层实际只能执行二进制序列,因此需要编译器来进行第一步的翻译,
将高级java源码翻译成字节码文件(.java 文件翻译成 .class 文件)
注意:字节码文件里的内容不是二进制序列!
这里举个例子,A想要和C进行沟通,但是A只会中文,C只会西班牙语,两人无法直接沟通,此时来了个B和D,B会中文和英文,D会英文和西班牙语,因此当A和C进行沟通时,B会先将A说的中文翻译成英文,再由D将英文翻译成西班牙语。这里的B充当编译器的作用做第一步的翻译,D充当解释器的作用做最终的翻译

java.exe

解释器
启动JVM,处理编译好后的字节码文件,将字节码翻译成对应平台的机器指令,一边解释一边执行

Jdk、jre、jvm之间的关系

基础概念 - 图1

跨平台

定义:同一份字节码文件即使在不同的硬件上,执行行为及结果都是一样的。
不同CPU的品牌及型号所能识别的机器指令不同,同样的二进制码在不同的硬件上可能导致不同的结果,因此我们如果直接将字节码文件翻译成固定的机器指令给各种不同的设备使用,肯定是无法统一执行的行为的,所以得想办法将机器指令改成适用该硬件的内容。

java之所以能实现跨平台,是由jvm实现的,每台电脑需要根据自己的硬件类型将对应平台的jvm下载到本地(下载的jdk包括了jvm),当我们运行一个java程序时,jvm将字节码翻译成当前设备所能识别的机器指令,这样就能保证执行的行为在所有设备上一致了。
这也是别人说的“一次编译,到处使用”的意思。

JAVA 分类

JAVA SE

英文全称:Java Platform, Standard Edition (java平台标准版)
JAVA SE是java的基础知识。
类似于语文中最基础的认知组词造句学习阶段,为后面的学习打下基础
JAVA SE包含了运行Java应用所包含的基础环境、核心类库以及基于桌面应用的基础类库
利用JAVA SE可以写出类似安装在操作系统上的桌面应用,如Office

JAVA EE(最重要最核心的部分)

英文全称:Java Platform, Enterprise Edition (java平台企业版)
JAVA EE是基于JAVA SE的基础之上进行构建的,用于构建企业级应用。
类似于语文中学完了组词造句的基础之后,利用基础知识开始学习写文章的阶段
JAVA EE可以构建的企业级应用是指为商业组织、大型企业而创建的应用系统,如电信的‘计费系统’,银行的‘网银系统’等。

JAVA ME

英文全称:Java Platform, Micro Edition (java平台微型版)
为嵌入式消费电子设备提供的Java解决方案
由于安卓的普及,基于JAVA ME的塞班已经很少使用了,JAVA ME已经 走向淘汰

jdk目录结构

image.png

bin

binary
存放jdk的各种工具命令

conf

config
存放jdk相关配置文件

include

存放一些平台的头文件

jmods

存放jdk各种模块

legal

存放各模块的授权文档

lib

libary
jdk工具的一些补充jar包和源代码