自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux动态链接库

Linux 共享库  Linux 系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。  第二类是动态链接的可执行程序。  静态可执行程序与动态可执行程序比较  我们可以用 ldd 命令来确定某一特定

2015-03-25 10:33:23 688

原创 Binder中 Service与Binder之间的转换

这几天一直在看binder的结构,感叹这样天才的设计。现在只研究到binder的native框架,在IPCThreadState以下,真正的driver和数据交换还需要进一步研究。在此记录一些目前的体会。1.IInterface的作用个人感觉,这个IInterface严格上讲,并不是Binder这个框架的一部分。基类 IInterface为 server 端提供接口,它的子类声明了

2015-03-20 15:13:02 1557

转载 C语言宏定义时#(井号)和##(双井号)的用法

#在英语里面叫做 pound在C语言的宏定义中,一个#表示字符串化;两个#代表concatenate在宏定义中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),即无论后面的宏变量是字符串还是常量,都当成字符来处理。而## 被称为连接符(concatenator),用来将两个Token连接为一个Token。注意这里连接的对象是Token就行,而不一定是

2015-03-20 14:46:57 3813

转载 Android Binder IPC分析

1 . binder 通信概述 binder 通信是一种 client-server 的通信结构, 1. 从表面上来看,是 client 通过获得一个 server 的代理接口,对 server 进行直接调用; 2. 实际上,代理接口中定义的方法与 server 中定义的方法是一一对应的; 3.client 调用某个代理接口中的方法时,代理接口的方法会将 client 传递的参

2015-03-20 09:55:42 475

转载 Android线程间通信方式:Handler Looper

近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子。 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会

2015-03-18 11:34:54 920

转载 Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对临界

2015-03-18 09:54:34 565

转载 回调函数

机机制编辑⑴定义一个回调函数;⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;⑶当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。2意义编辑因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的方法的

2015-03-16 13:37:27 473

转载 android中openMax的实现

一、OpenMax简介    OpenMAX是一个多媒体应用程序的标准。由NVIDIA公司和Khronos™在2006年推出。    它是无授权费的、跨平台的C语言程序接口序列,这些接口对音频、视频、静态图片的常用操作进行封装。    它包括三层,分别是应用层(AI)、集成层(IL)和开发层(DL)。其中IL层已经成为了事实上的多媒体框架标准。嵌入式处理器或者多媒体编解码模块的硬件生产

2015-03-16 10:35:30 4231 1

转载 OpenMAX

http://www.xuebuyuan.com/2117774.htmllibstagefright openmax编解码数据流向分析OMXCodec::read第一次调用时,mInitialBufferSubmit值为true,这个标志就是用来标识OMXCodec::read是否是第一次调用的。在if (mInitialBufferS

2015-03-13 14:21:05 1491

转载 常见多媒体文件格式及视音频编解码总结

首先要分清楚媒体文件和编码的区别:文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;文件当中的视频和音频的压缩算法才是具体的编码。常见的音视频文件格式(容器):MPG:MPEG编码采用的容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用于 HDTV。VOB:DVD采用的容器格式,支持多视频多音轨多字幕章节等。MP4:

2015-03-12 10:22:32 1098

转载 Mutex及Mutex::AutoLock

互斥类—MutexMutex是互斥类,用于多线程访问同一个资源的时候,保证一次只有一个线程能访问该资源。在《Windows核心编程》①一书中,对于这种互斥访问有一个很形象的比喻:想象你在飞机上如厕,这时卫生间的信息牌上显示“有人”,你必须等里面的人出来后才可进去。这就是互斥的含义。下面来看Mutex的实现方式,它们都很简单。(1)Mutex介绍其代码如下所示:[-->Threa

2015-03-11 14:14:15 1430

转载 typedef struct 和 struct的区别

struct和typedef struct分三块来讲述:  1 首先://注意在C和C++里不同    在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;    }Stu;    于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student s

2015-03-10 11:37:24 370

原创 C语言 读写文件

"r" 打开一个用于读取的文本文件"w" 创建一个用于写入的文本文件"a" 附加到一个文本文件"rb" 打开一个用于读取的二进制文件"wb" 创建一个用于写入的二进制文件"ab" 附加到一个二进制文件"r+" 打开一个用于读/写的文本文件"w+" 创建一个用于读/写的文本文件"a+" 打开一个用于读/写的文本文件“rt” 只读

2015-02-27 15:28:57 483

转载 strcpy和memcpy的区别

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

2015-02-05 18:16:06 411

转载 strtol函数

转自http://hi.baidu.com/qwpsmile/blog/item/9bc44efa4f41018a9f514637.html+----------------+|      strtol             |+----------------+i.e. string to longlong int strtol(const char *nptr

2015-02-05 18:15:35 461

转载 数组指针 与 指针数组

一、指针数组和数组指针的内存布局初学者总是分不出指针数组与数组指针的区别。其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。下面到底哪个是数组指针,哪个是指针数

2015-01-20 09:23:42 410

转载 HRESULT类型

简单地说,就是判断函数执行结果。COM要求所有的方法都会返回一个HRESULT类型的错误号。HRESULT 其实就一个类型定义:typedef LONG HRESULT;HRESULT 类型的返回值反映了函数中的一些情况,其类型定义规范如下:   31 30 29 28                    16 15                            

2014-12-22 15:03:34 859

转载 makefile

makefile基础篇:http://blog.csdn.net/zhouyulu/article/details/8395013makefile升级篇:http://blog.csdn.net/zhouyulu/article/details/8449263

2014-12-19 17:51:14 491

转载 C++ 虚函数

虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形

2014-12-04 15:31:55 405

原创 Python 中的else语句

在其他语言中,除了条件语句,是不会见到else分支的,但在Python中,while和for循环中,也是可以使用else语句的。它们的工作顺序为:在循环中使用时,else语句只在循环完成后执行,也就是说,break语句也会跳过else代码块,只要循环是正常结束,而不是通过break,else语句就会执行。while-else举例:Python代码  #!/usr/bin/env pyt

2014-11-04 21:11:35 794

转载 Python列表,元祖及字典的区别

定义 方法 列表可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的eg:aList=[123,'abc',4.56,['inner','list'],7-9j]1.list(str):将str转换成list类型,str可以使字符串也可以是元组类型2.aList.append('test'):追加元素到列表中去

2014-10-29 15:27:24 14245

转载 Linux Shell编程case语句

Linux Shell编程case语句  case语句适用于需要进行多重分支的应用情况。        case分支语句的格式如下:            case $变量名 in                模式1)            命令序列1            ;;                模式2)     

2014-10-29 15:05:37 358

转载 进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必

2013-08-19 10:55:16 555

转载 数据库范式

转自:http://www.cnblogs.com/CareySon/archive/2010/02/16/1668803.html简介      数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式。

2012-12-05 10:56:07 423

转载 字符编码:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

1、字符编码、内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。 GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,

2012-10-28 15:31:51 735

转载 [C/C++]static关键字用法总结

最近经历了一些笔试和面试,经常会被问到static关键字的作用,感觉虽然知道一些,但每次回答的都不够满意,今天在网上查了一下,总结总结,恩,以备后用! static关键字是C, C++中都存在的关键字。static从字面理解,是“静态的“的 意思,与此相对应的,应该是“动态的“。static的作用主要有以下3个:1、扩展生存期;2、限制作用域;3、唯一性; 1、扩展

2012-10-14 22:44:50 644

转载 排序(Sort)

链接:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html/*   1. 排序方法分类 (稳定的排序用'Y'表示,不稳定的排序用'N'表示)   /*/*   插入排序:直接插入排序(Y)、希尔排序/*   交换排序:冒泡排序(Y)、快速排序(N)/*   选择排序:直接选择排序(N)、堆排

2012-10-13 09:51:08 680

转载 JAVA笔试题

2013最新JAVA笔试题 一、   单项选择题(每题2分 2x9=18分)1.Java是从( )语言改进重新设计。A.Ada B.C++ C.Pasacal D.BASIC2.下列语句哪一个正确( )A. Java程序经编译后会产生machine codeB. Java程序经编译后会产生byte codeC. Java程序经编译后会产生DLLD.

2012-10-12 20:00:41 747

转载 虚函数和纯虚函数的区别

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plaincopy

2012-10-10 22:33:02 488

转载 typedef与define比较 typedef用法

typedef与define 比较主要的几点感悟:1、typedef和definetypedef 在编译时被解释,define在预处理时被替换。#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名。 ____宏定义只是简单的字符串代换(原地扩展),而typedef则不是原地扩展,它的新名字具有一定的封装性,以致于新命名的标识

2012-10-10 22:30:29 546

转载 倒排索引

倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。有两种不同的反向索引形式:一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置

2012-09-21 16:30:16 554

转载 微软、google、雅虎、百度等各大著名公司的经典面试题!保证搞晕你!!(转)

微软十五道面试题1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。2、写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)3、给出一个函数来输出一个字符串的所有排列。4、请编写实现malloc()内存分配函数功能一样的代码。 给出一个函数来复制两

2012-09-10 16:42:23 588

转载 百度面试题2012年8月28日

文章转自:http://www.51projob.com/a/baidu/20120828/465.html1 编程:  用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。2 编程:  用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的

2012-09-09 19:18:41 3280

转载 Top K算法详细解析—百度面试

问题描述:这是在网上找到的一道百度的面试题:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。问题解析:

2012-09-09 19:10:39 1434

转载 标注偏置问题(Label Bias Problem)和HMM、MEMM、CRF模型比较

路径1-1-1-1的概率:0.4*0.45*0.5=0.09路径2-2-2-2的概率:0.018路径1-2-1-2:0.06路径1-1-2-2:0.066由此可得最优路径为1-1-1-1而实际上,在上图中,状态1偏向于转移到状态2,而状态2总倾向于停留在状态2,这就是所谓的标注偏置问题,由于分支数不同,概率的分布不均衡,导致状态的转移存在不公平的情况。

2012-09-09 18:16:09 1376

转载 HMM,MEMM,CRF模型的比较(转)

这三个模型都可以用来做序列标注模型。但是其各自有自身的特点,HMM模型是对转移概率和表现概率直接建模,统计共现概率。而MEMM模型是对转移 概率和表现概率建立联合概率,统计时统计的是条件概率。MEMM容易陷入局部最优,是因为MEMM只在局部做归一化,而CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。举个例

2012-09-09 18:12:58 20920

转载 跳表(Skip List)的介绍以及查找插入删除等操作

On September 7, 2010, in 数据结构, 笔试面试, 算法, by sponge今天有同学去面试,被问到了“跳表”这种数据结构,说实话我之前对它了解不多,于是上网查了跳表的资料,并在这里总结一下。什么是跳表?要说清楚这个问题,我们就要先从普通的有序链表说起。一个普通有序列表的结构如下:

2012-09-08 20:39:20 1001

转载 各大推荐引擎资料汇总(转)

原文来自:http://blog.csdn.net/lzt1983/article/details/7914536最近在做一个推荐的任务,头绪繁多,回头看看同行的工作,希望能有些帮助。零零碎碎看过好多资料,有些已经忘记了,会慢慢补全。视频类Netflix: 很多方法的融合。可以参考我翻译的blog。Hulu:  主要是item bas

2012-09-04 10:10:07 666

转载 转 Windows程序中的Lib和Dll文件

原文转自http://www.cnblogs.com/xiongjiaji/archive/2012/06/07/2540482.html共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加

2012-08-09 15:55:42 489

空空如也

空空如也

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

TA关注的人

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