1、什么是JNI:
JNI(Java Native Interface):java本地开发接口
JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(c/c++)
外部的c/c++代码也可以调用java代码
2、为什么使用JNI:
效率上 C/C++是本地语言,比java更高效
代码移植,如果之前用C语言开发过模块,可以复用已经存在的c代码
java反编译比C语言容易,一般加密算法都是用C语言编写,不容易被反编译
3、Java基本数据类型与C语言基本数据类型的对应
3、引用类型对应
4、堆内存和栈内存的概念
栈内存:系统自动分配和释放,
保存全局、静态、局部变量,
在站上分配内存叫静态分配,
大小一般是固定的
堆内存:程序员手动分配(malloc/new)和释放(free/java不用手动释放,由GC回收),
在堆上分配内存叫动态分配,
一般硬件内存有多大堆内存就有多大