美文网首页
JVM内存模型

JVM内存模型

作者: 大数据ZRL | 来源:发表于2020-01-21 09:27 被阅读0次

    线程共享区域

    • 方法区(元空间):
      • 1.存放类的常量、静态变量、类的描述信息(元信息:类的全限定名称等);常量存储在运行时常量池
      • 2.当一个类被Java虚拟机加载后,class文件中的常量就存放在方法区的运行时常量池中。而且在运行期间,可以向常量池中添加新的常量。如:String类的intern()方法就能在运行期间向运行时常量池中添加字符串常量
    • 堆:
      • 1.存放对象及数组。如:new String(“hello”),这个“hello”属于这个字符串对象,所以在堆中。
      • 2.是OOM的重灾区,<性能调优>阶段再说
        JVM内存模型.png

    线程独立区域

    • 栈:
      • 1.包含多个栈帧,每个栈帧对应一个方法
      • 2.每个栈帧中包含局部变量表(如果变量为对象类型,则保存的为对象在堆中的引用地址)、操作数栈、动态链接(包含一个在常量池中对当前方法的引用)、方法出口
    • 本地方法栈:非Java程序方法(Native方法)
    • 程序计数器:存放执行指令的偏移量和行号指示器等,保证了多个线程切换时的线程暂停与恢复

    java虚拟机介绍:https://www.jianshu.com/p/eef13678e533

    JVM内存模型:https://www.jianshu.com/p/771253e1c573

    基本的JVM优化:https://www.jianshu.com/p/39419b76d1aa

    Java虚拟机与关键字Volatile的关系:https://www.jianshu.com/p/35627291b14a

    相关文章

      网友评论

          本文标题:JVM内存模型

          本文链接:https://www.haomeiwen.com/subject/dtfszctx.html