计算机基础
文章平均质量分 92
C/C++/Java/Python/内存/安全
gomogomono
多媒体开发者
展开
-
JNI编程指南:JNI设计概述
本章是JNI设计思想的一个概述,在讲的过程中,如果有必要的话,还会对底层实现技术的原理做说明。本章也可以看作是JNIEnv指针、局部和全局引用、字段和方法ID等这些JNI主要技术的规范。有些地方我们可能还会提到一些技术是怎么样去实现的,但我们不会专注于具体的实现方式,主要还是讨论一些实现策略。原创 2024-05-27 10:03:31 · 958 阅读 · 0 评论 -
JNI编程指南:使用JNI时容易出错的地方
本章总结了JNI实际应用中容易出错的一些情况供JNI程序员参考。原创 2024-05-24 17:42:02 · 431 阅读 · 0 评论 -
JNI编程指南:使用己有的本地库
JNI的一个使用方式就是编写一些本地方法来使用己有的本地库。本章介绍了一种生成一个包含一系列本地函数的类库的经典的方式。本章首先用一对一映射这种(one-to-one mapping)最直接的方式来写封装类.接下来,我们会介绍一种叫做共享stubs(shared stubs)的技术来简化编写封装类的任务。然后,在本章的最后,我们会讨论怎么样使用peer classes来封装本地数据结构。本章介绍的方式都是通过本地方法直接使用一个本地库,这样的话,应用程序调用本地方法时会依赖于本地库。原创 2024-05-24 15:51:05 · 809 阅读 · 0 评论 -
JNI编程指南:多彩的JNI招数
我们已经讨论了JNI在写本地代码和向本地应用程序中集成JVM时的特征。本章接下来的部分分介绍其它的JNI特征。原创 2024-05-24 11:35:23 · 347 阅读 · 0 评论 -
JNI编程指南:调用接口
本章讲述如何把一个JVM嵌入到你的本地程序当中去。一个JVM可以看作就是一个本地库。本地程序可以链接这个库,然后通过“调用接口”(invocation interface)来加载JVM。实际上,JDK中标准的启动器也就是一段简单的链接了JVM的C代码。启动器解析命令、加载JVM、并通过“调用接口”(invocation interface)运行JAVA程序。原创 2024-05-23 21:55:25 · 740 阅读 · 0 评论 -
JNI编程指南:异常
我们通过一些例子来介绍一些JNI异常处理函数。原创 2024-05-21 16:46:15 · 848 阅读 · 0 评论 -
JNI编程指南:全局引用和本地引用
JNI提供了一些实例和数组类型(jobject、jclass、jstring、jarray等)作为不透明的引用供本地代码使用。本地代码永远不会直接操作引用指向的VM内部的数据内容。要进行这些操作,必须通过使用JNI操作一个不引用来间接操作数据内容。因为只操作引用,你不必担心特定JVM中对象的存储方式等信息。本章中,我们会详细地讨论这些问题。合理地管理JNI引用是写出高质量的代码的基础。原创 2024-05-20 19:24:05 · 869 阅读 · 0 评论 -
JNI编程指南:字段和方法
现在,你知道了如何通过JNI来访问JVM中的基本类型数据和字符串、数组这样的引用类型数据,下一步就是学习怎么样和JVM中任意对象的字段和方法进行交互。比如从本地代码中调用JAVA中的方法,也就是通常说的来自本地方法中的callbacks(回调)。我们从进行字段访问和方法回调时需要的JNI函数开始讲解。本章的稍后部分我们会讨论怎么样通过一些cache(缓存)技术来优化这些操作。在最后,我们还会讨论从本地代码中访问字段和回调方法时的效率问题。原创 2024-05-20 17:49:08 · 621 阅读 · 0 评论 -
JNI编程指南:基本类型、字符串、数组
对于小字符串来说,Get/SetStringRegion和Get/SetString-UTFRegion这两对函数是最佳选择,因为缓冲区可以被编译器提前分配,而且永远不会产生内存溢出的异常。当你需要处理一个字符串的一部分时,使用这对函数也是不错的,因为它们提供了一个开始索引和子字符串的长度值。另外,复制少量字符串的消耗是非常小的。在使用GetStringCritical时,必须非常小心。原创 2024-05-20 14:34:03 · 789 阅读 · 0 评论 -
JNI编程指南:简介
JNI是JAVA平台的一个重要特征,使用它我们可以重用以前用C/C++写的大量代码。本书既是一个编程指南也是一个JNI手册。第二章通过一个简单的例子介绍了JNI。它的对象是对JNI不熟悉的初学者。3~10章对JNI的特征进行了系统的介绍。我们会举大量的例子来说明JNI的各个特征,这些特征都是JNI中重要且常用的。11~13章是关于JNI的技术规范。可以把这两章当作一个手册。本书尽量去满足各类读者的需要。指南面向初学者,手册面向有经验的人和自己实现JNI规范的人。原创 2024-05-20 10:31:25 · 1045 阅读 · 0 评论 -
HTTP/HTTPS
HTTP(HyperText Transfer Protocol)超文本传输协议,最初的设计理念是:借助多文档之间相互关联形成的超文本,连接成相互参阅的WWW。现在HTTP已经成了Web的基本通信协议。目前最主流的协议版本是HTTP/1.1。HTTP通信使用的是明文,容易被窃听,对于通信方的身份也无法验证,基于此HTTPS诞生。HTTP加上加密处理和认证以及完整性保护后即是HTTPS(HTTP Secure)原创 2020-11-26 22:51:39 · 912 阅读 · 0 评论 -
大端小端
我们在调试代码的时候经常会遇到大小端的情况,在x86体系下是使用的小端存储,在ARM体系下默认是小端,但是可以设置为大端模式,下面来介绍下大小端的区别1. 误区一个二进制数据0b 1000,0100,0001,1000(0x8418),数据高位:0x84,低位:0x18经常有人以为数据在大小端模式下存储情况为: 地址 大端 小端 0x20 0x84(1000,0100) 0x原创 2017-02-28 13:42:30 · 754 阅读 · 0 评论 -
局部变量、 全局变量、 堆、 堆栈、 静态和全局
一个由C/C++编译的程序占用的内存分为以下几个部分 (1)栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。 (2)堆区(heap) — 由程序员分配和释放,若程序员不释放,程序结束时可能由OS回收。 (3)全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量 和静态变量在一块区域, 未初始化的全局变量、未初始化的静态变量在原创 2017-05-03 14:12:29 · 2717 阅读 · 0 评论