Loading

JVM

好处:

  • 一次编写,到处运行
  • 自动内存管理,垃圾回收功能
  • 数组下标越界检查
  • 多态

image

内存结构

程序计数器

作用:记住下一条jvm指令执行的地址
特点:

  • 线程私有
  • 不会内存溢出

虚拟机栈

虚拟机栈:线程运行需要的内存空间
栈帧:每个方法运行时需要的内存

本地方法栈

通过new关键字创建对象,都会使用堆内存
特点:

  • 线程共享的,
  • 有垃圾回收机制
    查看堆内存占用情况jmap - heap 进程id
    jconsole 图形界面多功能检测工具
    jvirsualvm 图形化检测工具

方法区

image
常量池:为虚拟指令提供需要的类名、方法名、参数类型、字面量等信息
运行时常量池:当类被加载,它的常量池就会放入运行时常量池,并把里面的符号地址变为真实地址
StringTable:hashtable结构
image

  • stringtable有垃圾回收

直接内存(系统内存)

image

image
禁用显式gc会影响直接内存的回收,可以通过反射使用unsafe类来进行直接内存的分配和释放

posted @ 2022-08-09 10:00  改冩自己ζ  阅读(34)  评论(0)    收藏  举报