JVM-类的加载机制

JVM-类的加载机制(从磁盘加载class文件到内存中,解析并执行class文件、产生对象)

Native 通过加载本地方法调用JNI接口调用;主要用来拓展JAVA的使用

类的加载依赖加载器来完成加载

  • BootStrap加载器>extends加载器>启动类加载器(非继承关系)
  • BootStrap:只加载java文件下lib的核心库、只负责加载java、javax、sun开头的包中的类
  • extends:只加载jre文件夹下ext文件下的包
  • System加载器:加载ClassPath路径下的java文件、通常是用户自己定义的类
  • 类的加载原则:缓存原则、双亲委派原则、全盘原则
  • 缓存原则:每加载一个类就会缓存该类的信息、当需要再次使用的时候、会直接判断这个类是否已经被加载;
  • 双亲委派原则:当接收到类的加载任务、会先将这个类委托给上级加载器加载,一直往上查找,如果上级不能加载的时候,则会返回,由自己加载;
  • 全盘原则:一个类如果被一个加载器加载了,那么这个类中出现的其它类也会被这个加载器直接加载。
  • JVM内部运行结构
  • 由类加载器将class文件从硬盘加载到内存中、
  • 在运行过程中产生的数据、分为线程共享区和线程私有区、
  • 线程共有区 主要是堆和方法区、方法去里面存储的是class结构信息、堆里面存储的运行过程中产生的对象;
  • 线程私有区:主要是有程序计数器、线程栈、本地方法栈等
  • 线程会在每次调用方法的时候产生栈帧(栈帧里面有局部变量、动态链接等操作)
  • 执行引擎用来负责执行整个程序、从方法里面取出字节码文件来进行执行、从而产生对象、
  • 执行引擎里还包括了gc、gc主要在堆和方法去进行垃圾回收
  • JVM调优-JConsole和Java VisualVM
    减少GC的频率和Full GC的次数

  • GC垃圾回收算法:复制算法、标记清除、标记压缩

  • 复制算法:优点没有内存碎片;但是浪费内存空间,有一半是TO 用来交换复制
  • 标记清除:会出现2次扫描浪费时间、存在内存碎片、但是节省了内存空间(第一次扫描标记被引用对象、第二次进行清除)
  • 标记压缩:防止内存碎片,再次扫描
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JVM中的双亲委派机制是一种加载机制,它规定了在Java中一个加载时如何进行加载器的选择。根据这个机制,当一个需要被加载时,首先会由加载器ClassLoader检查是否已经加载过该,如果是,则直接返回已经加载过的;如果不是,则将该请求委派给父加载器去加载。这样的过程会一直向上委派,直到达到顶层的引导加载器(Bootstrap ClassLoader)。引用 引用中提到,并不是所有的加载器都采用双亲委派机制Java虚拟机规范并没有强制要求使用双亲委派机制,只是建议使用。实际上,一些加载器可能会采用不同的加载顺序,例如Tomcat服务器加载器就是采用代理模式,首先尝试自己去加载某个,如果找不到再代理给父加载器。 引用中提到,引导加载器(Bootstrap ClassLoader)是最早开始工作的加载器,负责加载JVM的核心库,例如java.lang.*包中的。这些JVM启动时就已经被加载到内存中。 综上所述,JVM的双亲委派机制是一种加载机制,它通过加载器的委派方式来加载,首先检查是否已经加载过该,如果没有则委派给父加载器去加载,直到达到顶层的引导加载器。不过,并不是所有的加载器都采用该机制,一些加载器可能会采用不同的加载顺序。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [JVM-双亲委派机制](https://blog.csdn.net/m0_51608444/article/details/125835862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [jvm-双亲委派机制](https://blog.csdn.net/y08144013/article/details/130724858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值