- 博客(16)
- 收藏
- 关注
原创 使用JNI技术实现Java和C/C++互调(C/C++调Java)
上一篇博客里我们讲了怎样通过JNI和动态链接库实现从Java调C/C++,今天我们来讲怎么在C/C++中获取Java的数据类型以及调用Java的方法。
2017-06-27 17:57:13 1321 2
原创 使用JNI技术实现Java和C/C++互调(Java调C/C++)
Java作为一个技术生态平台在业界得到了广泛的应用,许许多多的大型项目都是搭载在其之上。Java语言本身功能也十分强大,能实现大量的业务逻辑算法。那么,我们为什么要让Java和C/C++互调呢,直接用Java写不就完了吗?这是初学者一个很常见的疑问,下面我们来看看为什么需要这样做。 用Java调用底层的代码(不一定指是C/C++写的,虽然大部分是)主要原因有三个: 1.运行效率
2017-06-26 09:18:15 3139
原创 对在64位Linux下编译动态链接库参数的探究
有在Linux开发程序的经验的朋友都应该知道,在64位Linux下编译动态链接库时,一般在编译时要加上参数-fPIC或者-mcmodel=large,不然在链接时会报错。但是却很少有人真正理解这些参数对于动态链接库的意义,所以今天我们就来探究以下这两个参数的真正含义。
2017-06-23 19:00:07 3482
原创 Android中的信息输出:System.out和Log的源码分析与对比(Log篇)
我们已经在上一篇文章中看完了System.out的全部实现,这次我们来看一看Log的实现。 我们知道,Log不仅可以将运行时的状况完整的记录下来,还可以根据程序员的一些预处理来做过滤,使程序员可以很快定位信息,是一个非常方便的工具。但是大多数Android开发人员的认识停留在了应用层,今天我们来看看Log是怎么实现的。 这里我先明说,Log实际上是基于底层的Linux系统的一个
2017-05-31 20:47:32 2121
原创 Android中的信息输出:System.out和Log的源码分析与对比(System.out篇)
想必大家在编写Android程序的时候必然绕不来输出信息,对于熟悉Java的程序员来讲,他们更喜欢使用System.out来输出信息,而Android开发经验更丰富的程序员则更倾向于使用Log,毕竟在调试的时候Android环境本身就会输出大量信息,如果不用Log的话输出信息可能很快就会被淹没,Log则是可以使用官方的或自定义的过滤器来将其他无用信息剔除。那么今天我们就来对比一下System.ou
2017-05-30 09:53:05 1755
原创 浅谈MVP架构在Android中的应用
在软件开发中,设计模式是众所周知的,只要是稍有经验的程序员都能随口说出几个或者随手写出几个,但是软件体系结构(架构)却不是那么的广为人知,一方面是因为软件架构本身的复杂性,抽象性不容易被人理解,另一方面是因为在大多数应用中,软件架构已经被前人写好,程序员只要顺着这个模式编写代码就可以方便的扩展软件及其功能,性能,所以便忽略了架构本身的存在。但是,想要成为一个强大的程序员,理解软件架构是必修课,所以
2017-05-28 12:31:13 925
原创 关于继承多态和数组那错综复杂的关系
在在著名的more effective C++ 中就有一条出名的条款:Never treat arrays polymorhically ,意思是不要用多态去处理数组,那么这是为什么呢?就请往下看几个简单的例子(代码写的很烂,示例用)class A{ //classA中只有一个四字节的int型 public : int i = 0; friend ostream& operator<
2015-10-21 11:57:17 435
原创 对lambda表达式的解析(二)
接着上一篇(第一篇) , 我们还差一种类型的表达式没有介绍 , 那就是lambda表达式的标准格式(后置返回类型的) 。 首先我们先来回顾一下lambda表达式的标准格式 [捕获列表] (参数列表) -> 返回类型 {函数体} 下面我们看一个非常简单的例子:int main(){ int a = 2 , b = 3 , c = 5; auto f = [a , b] (int n)
2015-09-23 07:46:54 365
原创 对lambda表达式的解析(一)
本文默认读者对泛型算法有一定的认识和基础 , 首先我们知道 , 在algorithm头文件中包含了很多的算法 , 而且这些算法全都是泛型 , 只需要与容器的迭代器接口即可 。而且这些泛型算法还可以让程序员自己定义:bool bigger(const string& s1 , const string& s2){ //默认已导入头文件 return s1.size() > s2.size
2015-09-21 09:02:33 535
原创 对vector内部结构的解析(二)
在上一篇中我们对vector的原理有了一个概念上的认识 , 在这一篇中我们将揭示vector内部的运作原理。(对vector内部结构的解析(二))
2015-09-19 14:02:11 806
原创 关于引用及取地址&运算符的用法
在习惯了C语言的程序员眼里 , & 这个符号的意思就是取地址和对位进行与运算 , 但在C++中 , & 被重载多了一种意思 , 就是引用。
2015-09-17 14:10:58 8854 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人