JNI的有用性

 2023-01-19    361  

问题描述

我已经成为Java开发人员已经有几年了,并且听说您可以与JNI一起做一些非常有用和有力的事情.我不知道我是否只是不需要使用它,还是它与我无关.但是我根本不必触摸它.

我想知道Java这一方面的有用性是什么.例子很棒.

JNI的有用性

推荐答案

它非常有用.我可以看到使用JNI的两个主要原因(可能还有更多).

  1. 性能.如果您有一段代码,无论出于何种原因,Java运行时都无法削减其性能.您可以在本机代码中实现该功能,并从Java调用它.如果您确实需要,这使您可以将实施调整.但是,这可能是最不常见的原因,Java通常表现良好.

  2. 访问OS特定API.这是一个大事.我有一个需要在Java中做某事的情况,但还需要访问Java根本无法提供的东西.就我而言,是Unix域插座.由于(如您所知)它们是特定于Unix的,因此没有标准的Java使用它们.因此,我做了一个在C中像包装纸一样的班级,并与JNI访问了它.中提琴,解决问题.

其他推荐答案

我为iSeries撰写了一个广泛的JNI层,以访问DB2,用户队列,数据队列和其他一些OS/400细节.没有JNI,我们在iSeries上的许多系统都是不可能的.所以,是的,jni拥有它的位置,当您需要时,您真的需要它.

这是相对困难的(距离纯Java),但功能强大却不可怕.

另外,每当我查看一些JNI代码时,我还考虑使用 jna ./p>

其他推荐答案

我可以想到头顶上有几种用途:

  1. 与现有低级的集成
    (C/C ++)没有Java的API
    对方
  2. 与方面集成
    不暴露的系统
    通过可用的Java API(直接
    硬件访问等)

有些人可能会说这对于创建高度优化的代码部分可能很有用,但是使用现代JVM,您会变得非常快,并且使用JNI的复杂性可能会超过您可能看到的任何性能好处.

以上所述是小编给大家介绍的JNI的有用性,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/25845.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。