【发布时间】:2017-07-14 14:21:17
【问题描述】:
如果Java堆中存在对象X,并且如果我知道Java堆中对象X的地址,那么本机代码是否可以直接从内存中访问该对象而不涉及JNI?反之亦然,如果java代码确实知道对象Y在native heap上的地址,java是否可以在不涉及JNI的情况下访问它?
更准确地说,“java 对象是否以与本机对象相同的方式存储在内存中,还是有什么不同?”。如果没有,java和native中的byteArray对象不会以相同的方式存储吗?
请提供您的建议和参考。
编辑:这可能是正确的问题,为什么需要通过 JNI 将对象从 Java 堆转移到本机堆?为什么原生堆不能直接访问java堆对象?
【问题讨论】:
-
不,尝试阅读docs.oracle.com/javase/tutorialjava没有像C++这样的指针,你为什么要这样编程?什么大任务?
-
为什么你想这样做并绕过 JNI?这看起来像 XY problem.
-
@AndrewHenle,编辑了问题。
标签: java c++ operating-system java-native-interface