`

Java运行时内存模型(转)

阅读更多
Java在运行时,可以根据声明周期大致把内存分为两部分:与JVM声明周期一致的内存,与线程生命周期一致的内存。根据Java虚拟机规范第二版,Java在运行时内存可以分为以下6个部分:

    PC计数器
    栈
    堆
    方法区
    运行时常量池
    本地方法栈

PC计数器

每个线程都有自己的PC计数器。在不是本地方法的时候,PC计数器始终记着下一条需要执行的指令。在执行本地方法的时候,PC计数器里面是undefined。



每个线程对应着一个栈。栈(stack)是用来存储帧(frame)的,栈只对帧进行pop和push的操作,每个方法对应一个帧。



堆(heap)的生命周期和JVM是一致的,所有的线程都可以共享堆。当堆里面的东西没有被引用时,垃圾回收器就会回收他们。

方法区

方法区也是和JVM的生命周期一致,逻辑上是堆的一部分。里面存着每个class的数据,包括常量池,字段,方法等等。

运行时常量池

是方法区的一部分。存储着类或者接口的常量。

本地方法栈

也就是在执行本地方法时所需的栈。

分享到:
评论

相关推荐

    cpu 内存模型和java内存模型

    了解CPU内存模型,对于Java程序员在编写并发程序时至关重要。这不仅有助于选择合适的同步机制,还能通过合理利用缓存和缓存一致性协议,来优化Java程序的性能。通过分析具体的编程问题,比如Java锁的不同实现方式、...

    Java 虚拟机JVM内存模型

    Java运行时,JVM的执行引擎负责加载字节码并执行,它通过类加载器将.class文件加载到内存中,并将类的信息存储到方法区。执行引擎执行指令时,会进行字节码的解释和即时编译,确保Java程序能够运行在各种平台上。 #...

    深入理解Java内存模型 pdf 超清版

    深入理解Java内存模型,不仅能够帮助我们编写出高效、线程安全的代码,还能在面临并发问题时提供有力的分析和解决手段。通过阅读《深入理解Java内存模型》这本书,开发者可以进一步掌握Java并发编程的核心技术,提升...

    Java 8 内存模型.pdf

    在详细介绍Java 8内存模型之前,需要了解的是,JVM(Java虚拟机)在启动时,操作系统会为JVM进程分配一系列内存区域,这些内存区域包括堆(Heap)、元空间(MetaSpace)、线程堆栈(Thread Stack)、共享库(Shared ...

    深度剖析java内存模型

    Java内存模型(Java Memory Model,简称JMM)是Java虚拟机(JVM)规范中定义的一种内存模型,它涉及了线程之间共享变量的可见性问题。在并发编程中,理解Java内存模型对于编写正确的多线程程序至关重要。 首先,...

    java内存模型详解

    Java内存模型,简称JMM(Java Memory Model),是Java虚拟机规范中定义的一个抽象概念,它规定了程序中各个线程如何访问共享变量,以及对这些访问进行同步控制的规则。理解Java内存模型对于编写多线程并发程序至关...

    java内存模型.pdf

    标题和描述中提及的知识点主要围绕Java内存...总之,深入理解Java内存模型和JVM内存结构对于Java开发者来说至关重要,它不仅有助于编写更高效、更安全的代码,还能在遇到性能瓶颈或内存问题时,快速定位并解决问题。

    深入Java内存模型-JMM

    Java内存模型,简称JMM(Java Memory Model),是Java虚拟机规范中定义的一个抽象概念,它描述了在多线程环境下,如何保证各个线程对共享数据的一致性视图。JMM的主要目标是定义程序中各个变量的访问规则,以及在...

    java 语言基础 内存模型

    Java语言基础内存模型 Java语言基础内存模型是指Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。Java内存模型(Java Memory Model,简称JMM)定义了Java虚拟机在计算机内存中的工作方式,主要关注内存一致性和...

    Java内存模型分析与其在编程中的应用.pdf

    Java内存模型是Java平台的核心概念之一,它定义了Java程序中各种变量的访问规则以及如何在运行时分配内存区域给对象。Java内存模型的深入分析对于编写高性能的Java应用程序至关重要,本文将详细探讨Java内存模型的...

    深入理解Java 虚拟机内存模型.rar

    Java虚拟机(JVM)内存模型是Java编程语言的核心组成部分,它定义了程序运行时的数据区域和内存管理方式。深入理解这一模型对于优化Java应用程序性能、避免内存泄漏以及理解线程安全至关重要。以下是对Java虚拟机...

    java内存模型和一些多线程的资料

    Java内存模型规定了程序运行时的数据存储在不同的区域,包括程序计数器、虚拟机栈、本地方法栈、堆和方法区(在Java 8之后被元空间取代)。其中,堆和栈内存是多线程共享的,而其他区域则线程私有。 2. **数据可见...

    Java理论与实践:修复Java内存模型1

    Java内存模型(Java Memory Model, JMM)是Java平台中用于规范线程间通信和内存可见性的重要概念,它的目标是确保多线程环境下的正确同步。然而,原始的JMM存在一些严重的缺陷,导致了开发者在理解和实现线程安全时...

    Java-concurrentMap-内存模型深入分析-HotCode

    本文将深入探讨`concurrentMap`在Java内存模型(JMM,Java Memory Model)中的实现原理,以及如何通过HotCode优化并发性能。 Java内存模型定义了线程之间的共享变量访问规则,确保在多线程环境下正确地同步数据。...

    全网最硬核 Java 新内存模型解析与实验单篇版.doc

    全网最硬核 Java 新内存模型解析与实验单篇版 Java 内存模型(JMM,Java Memory Model)是 Java 语言的核心组件之一,它定义了 Java 程序中内存的行为和语义。本文将深入探讨 JMM 的设计原理和实现机理,通过结合...

Global site tag (gtag.js) - Google Analytics