第一部分:走近Java 第1章

Java技术体系

从广义上讲,运行于Java虚拟机上的语言及其相关的程序都属于Java技术体系中的一员。仅从传统意义上来看,Sun官方所定义的Java技术体系包括一下几个部分组成:

  1. Java程序设计语言
  2. 各种硬件平台上的Java虚拟机
  3. class文件格式
  4. Java API类库
  5. 来自商业机构和开源社区的第三方Java类库

我们可以把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境,在后面的内容中,为了讲解方便,有一些地方会以JDK来代替整个Java技术体系。另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。 _20180604101348

第二部分:自动内存管理机制 2~5章

第2章 Java内存区域与内存溢出异常

jvm

Java 虚拟机运行时数据区

  1. 程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。每个线程都有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。我们称这类内存区域为“线程私有”的内存。
  2. Java虚拟机栈(JVM stack):线程私有的数据区域,生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(stack frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应一个栈帧在虚拟机栈中入栈到出栈的过程。

第三部分:虚拟机执行子系统 6~9章

第四部分:程序编译与代码优化 10~11章

第五部分:高效并发 12~13章