Android jni(1)
来源:互联网 发布:阿里云 虚拟主机 jsp 编辑:程序博客网 时间:2024/06/05 06:45
JNI
*Java native interface
基本数据类型
java
- byte:1
- short:2
- int:4
- long:8
- float:4
- double:8
- char:2
- boolean:1
C
- short:2
- int:4
- long:4
- float:4
- double:8
- char:1
有符号无符号
- 无符号表示不分正负
- int类型,4个字节,32位,可以表示 2的32次方 个数字
- int能表示的最大值是 2的32次方-1 ,那么取值范围就是 0 ~ 2的32次方-1
- 有符号:最高位取出来作为符号位,表示正负;剩下31位,作为数值位,表示数字
- 只有31个数值位,那么能表示的数字个数是 2的31次方,取值范围是 0 ~ 2的31次方-1
- 符号位如果为0,那么数值位表示出来的就是正数,符号位如果为1,那么数值位表示出来的就是负数
- 符号位为0时,取值范围是 0 ~ 2的31次方-1,符号位为1时,范围是 -2的31次方 ~ -1
- 两个范围取并集,那么有符号int的范围就是 -2的31次方 ~ 2的31次方-1
- 无符号数的最高位依然是数值位,没有符号位
- 无符号int的取值范围是 0 ~ 2的32次方-1
原反补
- 原码:数字转换成二进制表示
- 反码:原码除最高位,其他位依次取反
- 补码:反码 + 1
- 正数的原反补是相同的
输入函数
- 每一块内存都有地址,没有地址的内存空间是无法访问的
- 内存中的所有数据都是通过地址拿到的
- C的数组不会检测越界
内存地址
- 32位操作系统,最大能支持的内存数量是4G
- 32位系统的地址总线长度是4个字节,也就是说可以分配 2的32次方 个数字作为内存地址
- 每一个字节都必须有一个内存地址
- 32位系统能支持的内存是 2的32次方 个字节
内存修改器
- 原理:找到要修改的变量的地址,直接操作地址上的值
- 金山游侠、东方魔术师
指针
定义一个int型的指针变量,它的值必须是一个int变量的地址
int* p = &i;
指针常见错误
- 为赋值的指针,不要去使用*p,这种指针称为野指针
值传递引用传递
- 所有传递都是值传递,引用传递传的也是一个值,但是这个值是一个地址
堆栈
栈
- 自动申请
- 大小是固定的
- 占用空间是连续的
- 自动释放
- 栈上分配的内存叫静态内存
堆
- 程序员手动申请
- java:new
- C:malloc
- 堆的大小受限于系统的虚拟内存
- 堆占用的空间是不连续的
- java:自动回收
- C:手动回收
- 堆上分配的内存叫动态内存
0 0
- android jni(1)
- Android jni(1)
- Android JNI浅析(1)
- 【Tech-Android-Jni】Jni的基本方法(1)
- Android jni开发-1(用CMake编译jni)
- Android JNI 错误解决方案(1)
- Android studio使用JNI实例(1)
- Android JNI 面面观 1
- android jni 学习1
- Android JNI (1)
- Android jni(1)
- Android-JNI总结(1)
- Android-JNI(1)-简介
- Android jni(2)
- Android jni(3)
- Android jni包裹文件(jni wrapper)
- android JNI调用(Android Studio 3.0.1)
- Android JNI + AIDL: 第1篇: Android JNI 编程
- Zookeeper3.4.6与Kafka0.8.1.1集群安装和配置详细步骤
- 常用的$.ajax()方法
- hdu 6006 Engineer Assignment(状压dp)
- 使用事务保证和数据完整性
- JSP过滤器防止Xss漏洞
- Android jni(1)
- HZAU 1205 Sequence Number(最大值前后缀 +双指针 + 二分)
- c++实验五(作业)
- Activity的四种启动模式
- 【补充】题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,及将句子中的单词位置倒置,而不改变单词内部结构.
- 《Java虚拟机原理图解》 1.2、class文件中的常量池
- WIFI 调试 安卓设备 实例
- Linux性能测试 strace命令
- Java 中的动态代理