动态扩展java程序
1) java.lang.Class的forName方法
可以在装载的时候初始化,适合许需要装载的时候就初始化的类型
2) 用户自定义装载器 java.lang.ClassLoader的子类的loadClass方法
适合在安全上包含一种定制方式把类型装载到保护域。虚拟机使用装载引用类型的同一个类装载器装载所需的类型
虚拟机确认引用是否被装载到当前的命名空间,如没还未,则将类型的全限定名传递到当前的类装载器。确认父类是否被装载(递归),委派双亲类转载器装载类型(递归),被委派的类装载器调用loadClass方法,再调用defineClass或findSystemClass方法,方法会使得虚拟机试图解析二进制数据,变为方法区中的内部结构数据。最后返回需要装载的类型的Class实例,最后检查访问权限。
标签:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?