<commit_before>---
layout:     post
title:      "深入理解Java虚拟机:读书笔记(三)"
subtitle:   "程序编译与代码优化"
date:       2017-12-18 22:00:00
author:     "<NAME>"
header-img: "img/java-virtual-machine.jpeg"
header-mask: 0.5
catalog:    true
tags:
    - Java
---

> 这是我在阅读周志明版的《深入理解 Java 虚拟机》并进行知识复盘的时候整理出的知识大纲式的文档，第三部分主要关于程序编译与代码优化。至于书中最后一部分内容——Java 并发的内容我不打算精读，主要是并发十分复杂和重要，不是两个章节可以说清楚的，所以我打算在另外的专门讲 Java 并发的书籍中学习这部分内容。

### Before Reading

1. 本篇文章对应原书 10~11 章的内容。
2. 建议通读过原书的对应内容后再使用这份知识大纲。
3. 大部分内容为原书的摘抄，少部分是我自己的归纳。

### (一) 早期（编译期）优化

- **Java 中 3 类编译过程：**

  - 前端编译器：把 *.java 文件转变成 *.class 文件；例如 javac
  - 后端编译器/JIT 编译器（Just In Time Compiler）：把字节码转变成机器码；例如 HotSpot 的 C1/C2
  - AOT 编译器（Ahead Of Time Compiler）：直接把 *.java 文件编译成机器码；例如 Excelsior JET

- **javac 编译过程：**
<commit_msg>java virtual machine 3<commit_after>---
layout:     post
title:      "深入理解Java虚拟机(三)"
subtitle:   "程序编译与代码优化"
date:       2017-12-18 22:00:00
author:     "<NAME>"
header-img: "img/java-virtual-machine.jpeg"
header-mask: 0.5
catalog:    true
tags:
    - Java
---

> 这是我在阅读周志明版的《深入理解 Java 虚拟机》并进行知识复盘的时候整理出的知识大纲式的文档，第三部分主要关于程序编译与代码优化。至于书中最后一部分内容——Java 并发的内容我不打算精读，主要是并发十分复杂和重要，不是两个章节可以说清楚的，所以我打算在另外的专门讲 Java 并发的书籍中学习这部分内容。

### Before Reading

1. 本篇文章对应原书 10~11 章的内容。
2. 建议通读过原书的对应内容后再使用这份知识大纲。
3. 大部分内容为原书的摘抄，少部分是我自己的归纳。

### (一) 早期（编译期）优化

- **Java 中 3 类编译过程：**

  - 前端编译器：把 *.java 文件转变成 *.class 文件；例如 javac
  - 后端编译器/JIT 编译器（Just In Time Compiler）：把字节码转变成机器码；例如 HotSpot 的 C1/C2
  - AOT 编译器（Ahead Of Time Compiler）：直接把 *.java 文件编译成机器码；例如 Excelsior JET

- **javac 编译过程：**

{'fraction_non_alphanumeric': 0.13589076723016905, 'fraction_numerical': 0.03446033810143043, 'mean_word_length': 4.1644295302013425, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5037748', 'n_tokens_mistral': 1070, 'n_tokens_neox': 1188, 'n_words': 137}