JAVA 疯狂讲义 学习笔记

编译型语言 && 解释型语言

# 编译型 [ C C++ Swift ]
  - 编译: 使用专门的编译器,针对特定的操作系统 将高级语言源代码 一次性翻译成 该平台可使用的机器码[机器指令 操作数]
  - 编译生成的可执行程序 可以脱离开发环境 运行效率高
  - 翻译对象为特定平台 SO 可执行程序 不可进行跨平台操作  需要重新编译
  - 链接操作: 组装两个以上的目标代码模块 生成最终的可执行程序 【代码复用】

# 解释型 [JavaScript Ruby Python]
  - 使用专门的解释器 对源程序 逐行解释成特定平台的机器码 且 立即执行
  - BAD: 运行效率低 不可脱离解释器独立运行
  - GOOD: 跨平台容易 提供特定平台的解释器即可

# Java 先编译 后解释
  - Java源文件 *.java ---[javac编译]--->  *.class ---[java解释执行]---> 机器码
  -  *.class:与平台无关的字节码

----------------------------------------------------

JVM JRE JDK

# JVM [Java Virtual Machine] java虚拟机
  - 作用:解释执行字节码文件 [使相同的字节码 通过转换器 在不同的平台上运行]
  - 特点:向编译器提供相同的编程接口。编译器只需要面向虚拟机,生成虚拟机理解得代码即可
           不同平台提供不同的JVM
  - 抽象计算机功能:具有指令集 使用不同的存储区域。 负责执行指令 以及管理数据、内存and寄存器

# JDK [Java SE Developmet Kit] Java标准版开发包
  - 内容:提供编译、运行java程序锁需要的各种工具和资源
          包含java编译器、java运行时环境以及常用java类库

# JRE [Java Runtime Environment] java运行时环境
  - JRE 包含 JVM 还包含其他环境支持
  - 运行java程序不仅需要虚拟机,还需要其它加载器、字节码校验器
  - 只运行程序 --> 可以只安装JRE 无需安装java

猜你喜欢

转载自blog.csdn.net/weixin_42358484/article/details/88709822