gpt4 book ai didi

Java:当类加载器加载 DLL 时,它们存储在内存中的什么位置?

转载 作者:行者123 更新时间:2023-11-30 06:19:39 25 4
gpt4 key购买 nike

我的理解是 .dllsClassLoader 加载到 java.library.path 但它们存储在内存中的什么地方System.loadLibrary()System.load() 是从非静态过程调用的吗?

JVM Internal Architecture

最佳答案

System.loadLibrary()System.load() 函数被调用时,当前 Java 类的 ClassLoader 被分配任务找到请求的 DLL(及其依赖项)并通知操作系统有关库的位置。 ClassLoader 本身不执行任何加载:此操作使用 Java native 接口(interface) (JNI) 库与操作系统通信并告诉它到哪里寻找请求的库。

当调用 DLL 函数时,该函数被加载到 Java VM 进程的地址空间 并在那里执行。该地址空间是由操作系统分配给进程的内存块,并且完全独立于 Java VM。因此,您的问题的答案是 Java VM 只是使用其给定的地址空间按需加载 DLL 函数并通过 Java native 接口(interface)执行它们。

来源:http://www.webbasedprogramming.com/Tricks-of-the-Java-Programming-Gurus/ch30.htm

关于Java:当类加载器加载 DLL 时,它们存储在内存中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22823317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com