zoukankan      html  css  js  c++  java
  • JVM

    1, PC寄存器

          每个线程拥有一个PC寄存器

          在线程创建时创建

          指向下一条指令的地址

         执行本地方法时,PC的值为undefined

    2,方法区

         保存装载的类信息

                类型的常量池

                字段,方法信息

        方法字节码

          通常和永久区关联在一起

    *    JDK 6时,String 等常量信息置于方法区,JDK7时,已经移到了 堆

    3,JAVA堆

         和程序开发密切相关

          应用系统对象都保存在堆中

          所有线程共享JAVA堆

         对分代GC来说,堆也是分代的

         GC 的主要工作区间

      

          |————————————————-  |

          |    eden  | s0   |  s1 |  tenured      |

          |___________________________|

    4,   JAVA 栈

         线程私有的

         栈由一系列帧组成(JAVA 栈也叫帧栈)

         帧保存一个方法的局部变量,操作数栈,常量池指针

      每一次方法调用创建一个帧,并压栈

    局部变量在栈上分配,栈上分配不可能出现内存泄漏

    java 中的栈上分配

                  

    逃逸指的是   栈是线程私有的, 是否能被其他的线程引用

    Java 的内存模型

        

    可见性

    重排序

    指令重排

  • 相关阅读:
    结构体的malloc与数组空间
    绘制K线图
    加载文件
    数据分析(绘图)
    GIT操作
    疑难杂症汇总
    Shell编程2
    shell编程1
    shell命令2
    Shell命令1
  • 原文地址:https://www.cnblogs.com/wind90/p/5457120.html
Copyright © 2011-2022 走看看