zoukankan      html  css  js  c++  java
  • jvm内存模型

    VM 中文名java虚拟机,是用来运行java程序的一个平台,这篇文章 主要讲述 JVM的内存模型。

     

    首先JVM将内存划分为了5大块,如下图所示:

    JVM内存模型

     

    这5大块可以分为 两大类,分别是 线程私有的,和 线程共享的

    线程私有的

    虚拟机栈,本地方法栈,程序计数器

    这块区域的数据是每个线程私有的,随着线程的创建而创建,线程的结束而释放

     

    虚拟机栈

    这块区域用于存放局部变量表(基本类型的变量,会把数据一起存在这,引用类型的 会将内存地址存在这) 以及 正在运行的方法信息

     

    本地方法栈

    这一块和虚拟机栈基本一致,但他存放的是 本地方法 创建的数据,程序员一般不需要过多的去关注他。

     

    程序计数器

    这块区域存放的是 线程正在执行的 字节码的行号指示器

     

    线程共享的

    方法区,堆

    这块区域的数据是每个线程共享的,他的生命周期跟线程无关,通常有垃圾回收机制来进行回收

     

    方法区

    这块区域也被称为 永久代 或者静态区,从名字就可以看出来,他是用于存放一些 永久性质的数据的,包括如下数据:

    常量池存在于此

    1. 类的访问修饰符,类型(接口,抽象,类),全线名称

    2. 字段的访问修饰符,类型,名称,

    3. 方法的访问修饰符,返回类型,名称,参数个数,参数类型等。

     

    同时 静态成员变量以及常量(包括值) 也会存在这块区域。

     

    这块区域用于存放对象的实例,垃圾回收一般情况下只会在这个区域进行。

  • 相关阅读:
    Selenium之IE浏览器的启动问题及解决
    Selenium之Chrome浏览器的启动问题及解决
    Selenium之IE浏览器的启动
    Selenium之firefox浏览器的启动
    【luogu 3373】【模板】线段树2
    【luogu 3372】【模板】线段树1
    【luogu 1908】逆序对
    【codevs2822】爱在心中
    【bzoj1051】 [HAOI2006]受欢迎的牛
    【luogu 2863】[USACO06JAN]牛的舞会The Cow Prom
  • 原文地址:https://www.cnblogs.com/wcss/p/12299968.html
Copyright © 2011-2022 走看看