2016 - 2024

感恩一路有你

java jni开发中c程序申请的内存是否在java的对堆内存或栈内存?

浏览量:1346 时间:2021-03-27 04:37:34 作者:admin

jni开发中c程序申请的内存是否在java的对堆内存或栈内存?

不,Java的内存由JVM虚拟机管理。它相当于预先从操作系统的内存中取出一个块并对其进行独占管理。它属于已经使用过的那个。Java的内存又从这个内存中一个一个地划分出来。JNI是Java程序与C语言之间的交互技术,相当于JVM进程与外部进程之间的交互。因此,此时用C语言分配的内存直接从操作系统的内存中应用,与JVM应用的大内存块无关。

jni和ndk的区别?

区别如下:

JNI是Java调用本机机制,这是Java语言本身的特性。它的全名是Java本机接口,类似于微软的P/invoke。Net框架,可以使C#或可视化基本.Net调用C/capi,因此JNI与Android无关。在PC上开发Java应用程序,如果运行在Windows平台上,经常使用JNI,比如读写Windows注册表。

NDK是Google推出的一个开发包,帮助Android开发者用C/C本地语言编写应用程序。它包含C/C头文件、库文件、文档和示例代码。

我们可以理解,它是用纯C/C编写的,就像Windows平台SDK一样,但是Android不支持用纯C/C编写的应用程序,同时NDK提供的库和函数非常有限,只处理一些算法效率敏感的问题。因此,android123建议初学者在学习JNI之前先学习java。

java java nio java数据类型

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。