jvm内存
2022-03-14 21:32:50 4 举报
jvm内存结构
作者其他创作
大纲/内容
类加载子系统
线程独占区
ExtensionClassLoader(扩展类加载器)加载ext包下的类
堆(Heap)堆内存还可以细分为:老年代、新生代(Eden、From Survivor、To Survivor)JVM启动时创建,存放对象的实例。垃圾回收器主要就是管理堆内存。如果满了,就会出现OutOfMemroyError-Xms1024m 设置的最小内存大小-Xmx1024m 设置的最大内存大小在设置时咱们一般大小设计的是相等的
BootStrapClassLoader(启动类加载器)用于加载lib的类
XXXClassLoader(自定义类加载器)加载自定义类路径下的类
线程共享区
程序计数器(Program Counter Register)记录当前线程执行字节码的位置,存储的是字节码指令地址,如果执行Native方法,则计数器值为空。每个线程都在这个空间有一个私有的空间,占用内存空间很少。CPU同一时间,只会执行一条线程中的指令。JVM多线程会轮流切换并分配CPU执行时间的方式。为了线程切换后,需要通过程序计数器,来恢复正确的执行位置
ApplicationClassLoader(应用程序类加载器)加载用户类路径下的类
本地方法栈(Native Method Stack)和虚拟机栈功能类似,虚拟机栈是为虚拟机执行JAVA方法而准备的,本地方法栈是为虚拟机使用Native本地方法而准备的。虚拟机规范没有规定具体的实现,由不同的虚拟机厂商去实现。HotSpot虚拟机中虚拟机栈和本地方法栈的实现式一样的。同样,超出大小以后也会抛出OutOfMemroyError
双亲委派机制先加载父类,没有父类再加载子类
0 条评论
下一页