自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 使用JNI技术实现Java和C/C++互调(C/C++调Java)

上一篇博客里我们讲了怎样通过JNI和动态链接库实现从Java调C/C++,今天我们来讲怎么在C/C++中获取Java的数据类型以及调用Java的方法。

2017-06-27 17:57:13 1254 2

原创 使用JNI技术实现Java和C/C++互调(Java调C/C++)

Java作为一个技术生态平台在业界得到了广泛的应用,许许多多的大型项目都是搭载在其之上。Java语言本身功能也十分强大,能实现大量的业务逻辑算法。那么,我们为什么要让Java和C/C++互调呢,直接用Java写不就完了吗?这是初学者一个很常见的疑问,下面我们来看看为什么需要这样做。    用Java调用底层的代码(不一定指是C/C++写的,虽然大部分是)主要原因有三个:    1.运行效率

2017-06-26 09:18:15 3100

原创 对在64位Linux下编译动态链接库参数的探究

有在Linux开发程序的经验的朋友都应该知道,在64位Linux下编译动态链接库时,一般在编译时要加上参数-fPIC或者-mcmodel=large,不然在链接时会报错。但是却很少有人真正理解这些参数对于动态链接库的意义,所以今天我们就来探究以下这两个参数的真正含义。

2017-06-23 19:00:07 3429

原创 Android中的信息输出:System.out和Log的源码分析与对比(Log篇)

我们已经在上一篇文章中看完了System.out的全部实现,这次我们来看一看Log的实现。    我们知道,Log不仅可以将运行时的状况完整的记录下来,还可以根据程序员的一些预处理来做过滤,使程序员可以很快定位信息,是一个非常方便的工具。但是大多数Android开发人员的认识停留在了应用层,今天我们来看看Log是怎么实现的。    这里我先明说,Log实际上是基于底层的Linux系统的一个

2017-05-31 20:47:32 2098

原创 Android中的信息输出:System.out和Log的源码分析与对比(System.out篇)

想必大家在编写Android程序的时候必然绕不来输出信息,对于熟悉Java的程序员来讲,他们更喜欢使用System.out来输出信息,而Android开发经验更丰富的程序员则更倾向于使用Log,毕竟在调试的时候Android环境本身就会输出大量信息,如果不用Log的话输出信息可能很快就会被淹没,Log则是可以使用官方的或自定义的过滤器来将其他无用信息剔除。那么今天我们就来对比一下System.ou

2017-05-30 09:53:05 1723

原创 浅谈MVP架构在Android中的应用

在软件开发中,设计模式是众所周知的,只要是稍有经验的程序员都能随口说出几个或者随手写出几个,但是软件体系结构(架构)却不是那么的广为人知,一方面是因为软件架构本身的复杂性,抽象性不容易被人理解,另一方面是因为在大多数应用中,软件架构已经被前人写好,程序员只要顺着这个模式编写代码就可以方便的扩展软件及其功能,性能,所以便忽略了架构本身的存在。但是,想要成为一个强大的程序员,理解软件架构是必修课,所以

2017-05-28 12:31:13 914

原创 指针与引用的实现细节原理及如何选用

对指针和引用不熟悉的可以看我前面的两篇文章

2015-12-03 14:58:33 935 2

原创 关于继承多态和数组那错综复杂的关系

在在著名的more effective C++ 中就有一条出名的条款:Never treat arrays polymorhically ,意思是不要用多态去处理数组,那么这是为什么呢?就请往下看几个简单的例子(代码写的很烂,示例用)class A{ //classA中只有一个四字节的int型 public : int i = 0; friend ostream& operator<

2015-10-21 11:57:17 425

原创 对lambda表达式的解析(二)

接着上一篇(第一篇) , 我们还差一种类型的表达式没有介绍 , 那就是lambda表达式的标准格式(后置返回类型的) 。 首先我们先来回顾一下lambda表达式的标准格式  [捕获列表] (参数列表) -> 返回类型 {函数体}  下面我们看一个非常简单的例子:int main(){ int a = 2 , b = 3 , c = 5; auto f = [a , b] (int n)

2015-09-23 07:46:54 353

原创 对lambda表达式的解析(一)

本文默认读者对泛型算法有一定的认识和基础 , 首先我们知道 , 在algorithm头文件中包含了很多的算法 , 而且这些算法全都是泛型 , 只需要与容器的迭代器接口即可 。而且这些泛型算法还可以让程序员自己定义:bool bigger(const string& s1 , const string& s2){ //默认已导入头文件 return s1.size() > s2.size

2015-09-21 09:02:33 503

原创 通过自己创造string来探究其内部构造

说string是编程时用的最多的库类一点也不为过 ,

2015-09-19 19:08:16 442

原创 对vector内部结构的解析(二)

在上一篇中我们对vector的原理有了一个概念上的认识 , 在这一篇中我们将揭示vector内部的运作原理。(对vector内部结构的解析(二))

2015-09-19 14:02:11 796

原创 对vector内部结构的解析(一)

vector想必是每个C++程序员耳熟能详的数据结构 ,

2015-09-19 08:40:17 1630 3

原创 复合类型与const关键字

前面

2015-09-17 16:40:56 442

原创 关于引用及取地址&运算符的用法

在习惯了C语言的程序员眼里 , & 这个符号的意思就是取地址和对位进行与运算 , 但在C++中 , & 被重载多了一种意思 , 就是引用。

2015-09-17 14:10:58 8776 4

原创 关于指针及 * 运算符的一些使用方法

对于* 运算符,熟悉C的程序员一定对它不陌生,他表示的是指针, 指向内存中的某一个变量或者对象。

2015-09-17 08:17:20 2811

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除