1. JNI是什么?

java native interface (java本机接口)

比如方法声明:

public final native Class<?>  getClass();   (来自源码Object.java)

上面方法没有方法体,但是它不是抽象方法,它是具体方法,因为它加了native修饰了,说明这个方法是使用底层C实现的。

java提供JNI这个接口规范,可以去调用其他程序语言编写的功能模块(不必要利用java重新开发),可以调用C/C++,或者VB等等。

2.  为什么要使用JNI?

(1)需求(钱)

(2)高性能(C/C++实现效率高

(3)物联网建设

(4)C开源组件(C开源组件很丰富,使用JNI调用这些C开源组件)

3. 怎么学JNI?

(1)java基础

Linux系统由于开源性,性能非常完善稳定,而且针对的病毒也很少,所以Linux系统常用作服务器系统(看中Linux的安全,稳定)

(2)C语言基础

(3)JNI角色

JNI是一种协议规范(和JVM类似,JNI也是翻译官的角色),把C代码通过JNI协议规范,把它翻译成相应的java代码,逻辑图如下:

最新文章

  1. 富文本文件CKEDITOR增加上传图片功能(.net)
  2. HBase总结(十二)Java API 与HBase交互实例
  3. 高级子查询【weber出品必属精品】
  4. ASP.NET Core MVC Hello World
  5. 控制结构(9) 管道(pipeline)
  6. Linux 虚拟文件系统概述
  7. [UI] 04 - Bootstrap: layout &amp; navigation
  8. C语言——第三次作业(2)
  9. python查看文件的编码格式
  10. 【第二周】PSP
  11. 20155224聂小益的Linux学习
  12. 【BZOJ2151】种树(贪心)
  13. 显示本月日历demo
  14. SpringBoot 开启debug
  15. vue中使用对非表单元素使用contenteditable的问题
  16. exec族函数
  17. windows下composer安装
  18. tail /grep/more
  19. Codeforces 1168C(二进制、dp)
  20. MongoDB学习day02--数据库增删改查

热门文章

  1. div+css通用兼容性代码整理
  2. POJ - 3468 A Simple Problem with Integers(线段树区间更新,区间查询)
  3. ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling
  4. python编写猜拳代码
  5. vue 使用过程中自己遇到的bug
  6. JSP+MySQL实例
  7. cmd登入mysql的命令不要写分号
  8. 【181】IDL 代码从 Windows 转移到 Linux
  9. 【179】IDL 读写 NetCDF 文件
  10. bzoj 303: [CQOI2009]中位数图【前缀和+瞎搞】