Android(java)学习笔记199:JNI之JNI概念
2024-08-30 06:29:05
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代码,逻辑图如下:
最新文章
- 富文本文件CKEDITOR增加上传图片功能(.net)
- HBase总结(十二)Java API 与HBase交互实例
- 高级子查询【weber出品必属精品】
- ASP.NET Core MVC Hello World
- 控制结构(9) 管道(pipeline)
- Linux 虚拟文件系统概述
- [UI] 04 - Bootstrap: layout &; navigation
- C语言——第三次作业(2)
- python查看文件的编码格式
- 【第二周】PSP
- 20155224聂小益的Linux学习
- 【BZOJ2151】种树(贪心)
- 显示本月日历demo
- SpringBoot 开启debug
- vue中使用对非表单元素使用contenteditable的问题
- exec族函数
- windows下composer安装
- tail /grep/more
- Codeforces 1168C(二进制、dp)
- MongoDB学习day02--数据库增删改查
热门文章
- div+css通用兼容性代码整理
- POJ - 3468 A Simple Problem with Integers(线段树区间更新,区间查询)
- ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling
- python编写猜拳代码
- vue 使用过程中自己遇到的bug
- JSP+MySQL实例
- cmd登入mysql的命令不要写分号
- 【181】IDL 代码从 Windows 转移到 Linux
- 【179】IDL 读写 NetCDF 文件
- bzoj 303: [CQOI2009]中位数图【前缀和+瞎搞】