JVM体系结构

JVM体系结构

Java虚拟机主要分为五大模块:

  • 类装载器子系统
  • 运行时数据区
  • 执行引擎
  • 本地方法接口
  • 垃圾收集模块
  • 在这里插入图片描述1、JVM一共分为五个区,分别为方法区、堆、Java栈、本地方法栈、程序计  2、方法区、堆为线程共享区域,GC会对二个区进行垃圾回收;
  •   3、Java栈、本地方法栈、程序计数器为线程私有区域;

      4、程序计数器:程序计数器是一块较小的内存空间,是当前线程所执行的字节码的行号指示器•程序计算器处于线程独占区•如果线程执行的是java方法,记录的是正在执行的虚拟机字节 码指令的地址,如果是native方法,这个计数器值为undefined;

      5、Java栈:栈也叫栈内存,主管Java程序的运行,是在线程创建时 创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命周期和线程一致,是线程私有的。8种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存中分配,栈里有栈帧,有返回对象、本地变量表、操作数栈、动态连接。

      6、本地方法栈:它的具体做法是NativeMethod Stack中登记native方法,在ExecutionEngine执行时加载本地方法库;

      7、方法区:方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。简单说,所有定 义的方法的信息都保存在该区域,此区属于共享区间


    方法区是一种特殊的堆,栈里面不会有垃圾,用完就弹出了,否则阻塞了main方法吗,垃圾几乎都在堆里,所以JVM性能调优%99都针对于堆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值