• java内存模型初窥探


    jdk1.8以前的内存模型是这样的,

    下面我分析一下他们的作用

    方法区

    方法区也叫永久区,一些类的信息:方法名 返回值什么的,常量,静态变量都放在里面,class文件加载

    这是是线程共享的 她其实是放在堆中的永久代中的,但是这个永久代又和堆是隔离的

    堆中存放的是new的对象,是jVM中最大的空间

    这个是线程共享的

    虚拟机栈

    这个是线程私有的 就是说,一个线程开一个虚拟机栈

    我的理解是每当一个java方法运行的时候,就在当前的虚拟机栈压入一个新的栈帧,运行完之后,出栈

    本地虚拟栈

    本地虚拟栈和虚拟机栈差不多,但是他是为native服务的,我的理解是native是为别的语言服务的,比如java的底层C

    当然也是线程私有

    程序计数器

    我的理解是字节码去执行代码的时候,程序计数器来告诉他们下一句代码是什么,当然也是私有的,每个线程一个程序计数器,来记录代码执行到哪里了。

    jdk1.8后的改版

    jdk1.8之后将方法区(永久区)去掉,变成了元数据区。他并没有在堆里面,而是直接在本地内存中。

    堆也变成了这样

  • 相关阅读:
    mongodb 配置单实例与双实例
    redis 集群 搭建
    memcached 搭建
    公网yum 源地址
    jdk 安装
    activemq 搭建--集群
    zookeeper 安装
    activemq 安装-单点
    rabbitmq 集群
    python——网络编程
  • 原文地址:https://www.cnblogs.com/adroitwolf/p/14309863.html
Copyright © 2020-2023  润新知