zoukankan      html  css  js  c++  java
  • 5.3.11 本地方法接口

    并不强求Java虚拟机实现支持任何特定的本地方法接口。有些实现可以根本不支持本地方法 接口,还有一些可能支持少数几个,每一个对应一种不同的需求。

    Sun的Java本地接口,或者称作JNI,是为可移植性准备的。JNI设计的可以被任何java虚拟机实现支持,而不管它们使用何种垃圾收集或者对象表示技术。这样它能使开发者在一个特定 的主机平台上,把同样的(与JNI兼容的)本地方法二进制形式连接到任何支持JNI的虚拟机实现上。

    实现设计者可以选择创建-些私有的本地方法接口,扩展或者取代JNI。为了实现可移植性, JNI在指针和指针之间、指针和方法之间使用了很多间接方法。为了得到最好的性能,实现设计者可以提供他们自己的低层本地方法接口,以便和他们所使用的特定实现结构能更加紧密地 结合。设计者也可以提供比JNI更高层的本地方法接口,比如把java对象加人到一种组件软件模 型中。

    设计一个提供这些服务的本地方法接口是非常复杂的,需要确认垃圾收集器没有释放那些 正在被本地方法使用的对象。如果实现的垃圾收集器为了减少堆碎片移动了一个对象,本地方 法设计必须保证下面二者之一:

    1)当对象的引用被传递给了一个本地方法之后,它可以移动。

    2)任何其引用传递给了本地方法的对象都被钉住,直到本地方法返回,或者它表明自己已 经完成了对象的操作。

    由此可见,本地方法接口和Java虚拟机内部工作纠缠在了一起。

  • 相关阅读:
    Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)
    使用nginx sticky实现基于cookie的负载均衡
    CENTOS 6.6初始化SHELL脚本
    Java 开源博客 Solo 1.2.0 发布
    Java 开源博客 Solo 1.2.0 发布
    Java多线程-synchronized关键字
    Maven项目pom.xml配置详解
    4.0 苹果系统安装之黑苹果(4)
    3.0 Windows和Linux双系统安装(3)
    2.0 Linux系统的安装之Fedora安装单系统(2)
  • 原文地址:https://www.cnblogs.com/mongotea/p/11979485.html
Copyright © 2011-2022 走看看