JVM之类加载器

server/2024/10/20 20:53:44/

1.JVM在哪里

jvm就是java虚拟机,jvm是一个环境(或者可以理解成一个运行在操作系统上的软件)

2.类加载器与双亲委派

JVM 启动的时候,并不会一次性加载所有的类,而是根据需要去动态加载。也就是说,大部分类在具体用到的时候才会去加载,这样对内存更加友好。

对于已经加载的类会被放在 ClassLoader 中。在类加载的时候,系统会首先判断当前类是否被加载过。已经被加载的类会直接返回,否则才会尝试加载。也就是说,对于一个类加载器来说,相同二进制名称的类只会被加载一次。

 

类加载过程:加载->链接->初始化  

类加载器

  • BootStrap ClassLoader(启动类加载器):在jdk的lib目录rt.jar中。是c++写的二进制代码。由于是c++编写的,System.class.getClassLoader()结果为null。这个类加载器主要负责加载java的核心类库。   
  • Extension ClassLoader(扩展类加载器): 在lib/ext下加载扩展的 jar 包
  • App ClassLoader(应用程序类加载器):加载当前的 classpath 下面的 jar 包和类

什么是双亲委派?

在进行类加载之前,先将类加载的任务交给父类加载器。层层递进,如果父加载器能找到资源就进行加载,找不到资源就再交给子类加载器进行加载。如果所有子类都找不到资源就会抛出一个 ClassNotFoundException 异常。

为什么要有双亲委派机制?

避免类的重复加载,比如自定义一个lang.String类。在加载自定义lang包下的String类前会交给父加载器进行类加载,防止重复加载。如果不这样做系统就会有两个String类。


http://www.ppmy.cn/server/4924.html

相关文章

全量知识系统 程序详细设计 定稿 之1 (QA百度搜索 )

Q1从今天开始,我们进入到全量知识系统(简称“全知系统”)的程序详细设计的 整理成文阶段--“定稿”(或“成熟”)阶段(相应的,前一阶段可以称为程序详细设计的“构思”(或“喂养”&am…

前端npm常用命令总结

npm(Node Package Manager)是Node.js的包管理器,用于安装和管理Node.js的依赖库。以下是一份npm命令的总结文档,涵盖了常用的npm命令及其功能: 包相关的 安装和卸载包 npm install :安装指定名称的包。n…

【AI】本地部署可以与文件沟通的GPT:Llama 2 + GPT4All + Chroma

【背景】 还是继续致力于实践可以保护数据隐私的本地化LLM部署。 这次用的是Llama 2 + GPT4All + Chroma实现RAG。 【概念】 基于LangChain模板的各个部分的作用: Llama2-》语言模型管理GPT4ALL-》embeddingChroma-》文件内容的向量存储,作为内部知识库,不需要网络就可以…

vue.runtime.esm.js?c320:4625 [Vue warn]: Failed to resolve directive: lazy

使用图片懒加载插件报错 原因:vue2与懒加载插件默认版本不相容导致的 解决方法:重新安装lazyLoad npm install vue-lazyload1.3.3 --save-dev

esp32-通过wifi使用timelib库同步时间(三)

库的安装 本文基于platformIO,安装较为简单如下图 实例代码 完整代码如下,如果时间获取超时请使用time1.aliyun.com获取时间。 /** Time_NTP.pde* Example showing time sync to NTP time source** This sketch uses the Ethernet library*/#include …

OpenHarmony开发实例:【新闻客户端】

介绍 本篇Codelab我们将教会大家如何构建一个简易的OpenHarmony新闻客户端(JS版本)。应用包含两级页面,分别是主页面和详情页面,两个页面都展示了丰富的UI组件,其中详情页的实现逻辑中还展示了如何通过调用相应接口&a…

机器学习周报第37周

目录 一、文献阅读:You Only Look Once: Unified, Real-Time Object Detection1.1 摘要1.2 背景1.3 论文模型1.4 网络设计1.5 YOLO的局限性1.6 实现代码 一、文献阅读:You Only Look Once: Unified, Real-Time Object Detection 1.1 摘要 YOLO是一种新…

GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis

GRAF: Generative Radiance Fieldsfor 3D-Aware Image Synthesis(基于产生辐射场的三维图像合成) 思维导图:https://blog.csdn.net/weixin_53765004/article/details/137944206?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3…