【译】JVM Internals

原文 http://blog.jamesdbloom.com/JVMInternals.html#jvm_system_threads

这篇文章解释了JVM的内部架构。下面的这幅图表展示了一个Java SE 7标准下的典型JVM的关键组件们。


JVM内存模型

下面两个章节中会解释上图中的每个组件。第一个章节部分为线程相关的组件们,第二个章节为线程无关的组件们。

  • 线程相关
    • JVM系统线程(JVM System Threads)
    • 每个线程(Per Threads)
      • 程序计数器(program Counter)
      • 栈(Stack)
      • 本地栈(Native Stack)
      • Stack Restrictions
    • 栈帧(Frame)
      • 本地变量数组(Local Variable Array)
      • 操作数栈(Operand Stack)
      • 动态链接(Dynamic Linking)
  • 线程无关
    • 堆(Heap)
    • 内存管理(Memory Management)
    • 非堆内存(Non-Heap Memory)
    • JIT编译(Just In Time Compilation)
    • 方法区(Method Area)
    • class文件结构(Class File Structure)
    • 类加载器(Classloader)
    • 更快的类加载(Faster Class Loading)
    • 方法区在哪里(Where is Method Area)
    • 类加载器引用(Classloader Reference)
    • 运行时常量池(Run Time Constant Pool)
    • 异常表(Exception Table)
    • 符号表(Symbol Table)
    • 常量化字符串(字符串表)

线程相关

线程是程序里的一个执行单位,可以说是一个执行“原子”。JVM允许一个应用拥有多个线程同时执行。在HotSpot虚拟机中,Java线程和本地操作系统线程是一一对应的。在Java线程准备就绪后(thread-local存储,缓存分配,对象同步,栈同步,程序计数器同步),本地操作系统线程就会被创建。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容