锁与并发 随着多核计算的兴起,适合多核计算的多线程开发模式得到了越来越普遍的应用。Java虚拟机对多线程开发有很好的支持,其中一个重要的元素就是对“锁”的实现和优化。 本章将重点介绍Java虚拟机内部对“锁”的实现、优化及应用软件对“锁”的优化方法。 本章涉及的主要知识点有: 理解线程安全的重要性。 “锁”在虚拟机内的基本实现方式。 应用层对“锁”进行优化的一般方法和思路。 无锁计算的方法和原理。 理解Java虚拟机内存模型。
Java内存模型 与串行程序相比,并发程序还必须额外处理一个问题,那就是多线程间数据访问的一致性。对于串行程序来说,如果线程修改了变量A,在修改之后的任意时间读取变量A的值必定是修改后的新值。但对于并发程序,如果在一个线程中修改了全局变量A,在另外一个线程中一定可以读取这个新值吗?答案是:不一定!一旦出现多个线程访问某个变量的值不一致的情况,系统就有可能发生一些莫名其妙的问题,因此在进行多线程程序设计时,必须考虑这种情况。Java内存模型(JMM)就是用来解释并规范这种情况的,将这种看似随机的状态变为可控,从而屏蔽多线程可能引发的种种问题。本节主要介绍Java内存模型的含义,以及它的基本原则和特性。
编译和优化 Java语言为了提高效率,做出了很多编译和优化方面的努力。 本文主要解决Java的编译器和编译流程。主要内容如下: Java编译器 Java编译流程 JSR-269嵌入式注解处理器API Java泛型语法糖实现原理
JVM字节码执行引擎 执行引擎是Java虚拟机最核心的组成部分之一。字节码执行是Java虚拟机的重点,就如同汇编语言对于计算机一样重要,字节码对于Java虚拟机来说是执行的根本。当Java源码被编译成Class文件后,虚拟机就会将Class文件内的方法字节码载入系统并加以执行。 本文将详细介绍虚拟机的指令系统、执行机制及相关配置参数。 本文涉及的主要知识点有:
JVM之类加载机制 我们了解到Class文件是虚拟机的入口,那么虚拟机是怎样加载这些Class文件的呢?Class文件被载入虚拟机后,又会做哪些额外的处理?类加载的具体步骤是怎么样的?这些都是本文要讨论的重点。
JVM之类加载机制 我们了解到Class文件是虚拟机的入口,那么虚拟机是怎样加载这些Class文件的呢?Class文件被载入虚拟机后,又会做哪些额外的处理?类加载的具体步骤是怎么样的?这些都是本文要讨论的重点。
JVM之Class文件结构 对于Java虚拟机来说,Class文件是虚拟机的一个重要接口。无论使用何种语言进行软件开发,只要能将源文件编译为正确的Class文件,那么这种语言就可以在Java虚拟机上执行。可以说,Class文件就是Java虚拟机的基石。
GC调优(工具篇)