【JVM】java runtime data area. 和jvm instructions

06
六月
2021

java runtime data area

  1. pc program counter 程序计数器:存放指令位置(下标)。
    1. 虚拟机的运行:取pc中的位置,找到该位置对应的指令,执行指令,pc++
  2. heap 堆
  3. jvm stacks ,每一个线程对应的栈,每个方法对应一个栈帧frame
  4. native method stacks
  5. direct memory 直接内存,jvm可以直接访问操作系统的内存。nio中 提高效率,实现zero copy
  6. method area ,jvm共享,存class结构
    1. 1.8之前perm space实现,字符串常量位于perm space,FGC通常不会清理
    2. 1.8之后叫meta space,字符串常量位于堆,会触发FGC清理
  7. run-time constant pool: class文件中的常量池,在运行时就放在这里

pc\java method stacks\native method stacks 是线程内共享,其他是jvm共享

frame栈帧-每个方法对应一个栈帧

包含

  • local variable table
  • operand counter
  • dynamic linking
  • return address :a方法调用了b方法,b方法的返回值放在哪里
TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员