Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:当DLL由类加载器加载时,它们存储在内存中的什么位置?_Java_Memory_Dll_Jvm_Classloader - Fatal编程技术网

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

Java:当DLL由类加载器加载时,它们存储在内存中的什么位置?,java,memory,dll,jvm,classloader,Java,Memory,Dll,Jvm,Classloader,我的理解是,类加载器将.dll加载到java.library.path中,但是在从非静态过程调用System.loadLibrary()和System.load()之后,它们存储在内存中的什么位置 “非静态过程”与此无关。Java堆、Java或您的图片也没有。代码映射到进程的代码空间,数据映射到进程的数据空间。当调用System.loadLibrary()或System.load()函数时,当前Java类的ClassLoader的任务是查找请求的DLL(及其依赖项)并将库的位置通知操作系统。Cl

我的理解是,
类加载器将
.dll
加载到
java.library.path
中,但是在从非静态过程调用
System.loadLibrary()
System.load()
之后,它们存储在内存中的什么位置


“非静态过程”与此无关。Java堆、Java或您的图片也没有。代码映射到进程的代码空间,数据映射到进程的数据空间。

当调用
System.loadLibrary()
System.load()
函数时,当前Java类的
ClassLoader
的任务是查找请求的DLL(及其依赖项)并将库的位置通知操作系统。
ClassLoader
本身不执行任何加载:此操作使用Java本机接口(JNI)库与操作系统通信,并告诉它在何处查找请求的库

调用DLL函数时,该函数将加载到Java VM进程的地址空间中并在那里执行。该地址空间是操作系统提供给进程的内存块,与Java VM完全分离。因此,您的问题的答案是Java虚拟机只是使用其给定的地址空间按需加载DLL函数,并通过Java本机接口执行它们


资料来源:

我有兴趣了解更多关于“流程数据空间”的信息。您知道DLL加载位置的图片表示或图表吗?这个空间里还装了什么?如何指定大小限制?操作系统中的每个进程都有代码空间和数据空间。太宽泛了,这里无法回答。谢谢!那正是我要找的@Adil,您的知识可能有助于解决此处所述的问题:。这个问题与这个答案有关:加载共享库时发生内存错误。