自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zouliping的专栏

In me the tiger sniffes the rose.

  • 博客(30)
  • 资源 (6)
  • 收藏
  • 关注

原创 突然发现很多同学还在此博客留言和私信,本博客已经不再维护

突然发现很多同学还在此博客留言和私信,本博客已经不再维护了,如果有需要的话,可以访问我的新博客 http://echo.vars.me。

2015-06-09 18:46:35 999

原创 Jena API使用详解(关注将本体持久化到MySQL后的操作及解决中文乱码等问题)

关于Jena的简介在很多博客中都能看到,例如对Jena的简单理解和一个例子,使用Jena将本体存入MySQL等。在入门的时候,看这些文章总是很疑惑,对于存入数据库后的操作一无所知。因此,在做毕设之余,把使用到的一些方法记录下来,供将来查阅。将本体持久化到数据库首先,还是不能免俗,说说如何将本体持久化到数据库的方法。总体的操作流程是将本体从owl文件中读出,建立一个数据库的连接,将Model

2013-11-15 13:12:56 11223 56

原创 C/C++位运算技巧

预备知识对于位运算,大家都很熟悉,基本的位操作有与、或、非、异或等等。在面试中经常会出现位运算相关的题,所以我就做了简单的整理,参考了很多写的很好的博客及书籍。现在简单说一下,移位运算。左移运算:x 右移运算:x >> y。将x右移y位,这需要区分x是有符号数还是无符号数。在x是无符号数时,只需将x的最右边的y位丢弃,在左边补上y个0。在x是有符号数时,又分为x是正数还是负数。正数

2013-06-01 14:40:14 21173 5

原创 线性排序算法(计数排序,基数排序,桶排序)分析及实现

写在前面大家都知道的是,基于比较的排序算法的时间复杂度的下界是 O(n log(n))。这一结论是可以证明的,所以在基于比较的算法中是找不到时间复杂度为 O(n)的算法的。这时候,非基于比较的算法,如计数排序、基数排序和桶排序,是可以突破这个下界的。但是,非基于比较的排序的使用限制却是较多的,如计数排序仅能对较小整数进行排序,且要求排序的数据的规模不能过大;基数排序可以对长整数进行排序,但是不

2013-05-18 18:51:08 5345

原创 链表基础及常见面试题

基础知识链表是一种很常见的数据结构,在每个节点都保存了指向下一个节点的指针。与顺序表相比,链表插入元素的复杂度是O(1),查找一个节点或者访问特定节点编号的元素的复杂度是O(n);顺序表插入元素的复杂度是O(n),而查找的复杂度是O(1)。使用链表可以不必事先知道数据的大小,但是增加了指针域,加大了内存的开销。链表有三种类型:单向链表、双向链表和循环链表。链表节点的定义ty

2013-05-14 18:16:31 1365

原创 二叉树的建立(根据遍历结果构建)、遍历(非递归)和搜索

定义与性质二叉树的每个节点至多只有两棵子树,二叉树的子树有左右之分,不可颠倒。二叉树的第i层至多有2^(i-1)个节点;深度为k的二叉树的节点至多有2^k - 1个节点;对任一个二叉树,其叶子节点的个数为n,度为2的节点个数为m,n = m + 1 。(摘自wiki)节点定义typedef struct BinaryTreeNode{ char value; stru

2013-05-04 16:45:32 1396

原创 内存管理:分页,分段,段页结合

进程如何使用内存进程是操作系统资源分配的最小单元。操作系统分配给进程的内存空间中包含五种段:数据段、代码段、BSS、堆、栈。数据段:存放程序中的静态变量和已初始化且不为零的全局变量。代码段:存放可执行文件的操作指令,代码段是只读的,不可进行写操作。这部分的区域在运行前已知其大小。BSS段( Block Started By Symbol):存放未初始化的全局变量,在变量使用

2013-04-30 15:55:05 9578

原创 进程与线程;同步与互斥:事件,信号量,临界区,互斥量

进程一个正在执行的程序计算机中正在运行的程序的一个实例可以分配给处理器并且由处理器执行的一个实体由一个顺序执行的代码段、一个当前状态和一组相关系统资源所刻画的活动单元进程是操作系统资源分配的基本单位线程进程中代码执行的一个序列线程是操作系统可以进行运算调度的基本单位进程、线程的区别1. 划分尺度不同。线

2013-04-28 12:56:58 1765

原创 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)

最近决定每天学点数据结构与算法,写博客来督促自己继续学习~以下的每个排序的写法格式基本按照先介绍基本思想,再描述具体过程,最后是具体代码。关于复杂度等问题后续更新。如有写的不严谨的地方,欢迎指出,相互交流。希尔排序基本思想:将一组数据按照一定的步长分组,进行直接插入排序,然后再缩小步长,再排序,直到步长为1,再进行一次排序,就得到了有序序列。以下面一组数据为例:{

2013-04-25 15:10:21 3093

原创 嵌套Fragment的使用及遇到The specified child already has a parent. You must call removeView()问题的解决

预备知识嵌套Tab在Android应用中用途广泛,之前做过的一些东西都是运用了TabActivity。但是由于在Android Developers中说到了“TabActivity was deprecated in API level 13." ,并且建议大家使用Fragment。所以学习了嵌套Fragment的使用,参考了这个博客中的相关思路和代码。在And

2013-04-23 13:41:58 12299 4

原创 实现基于VxWorks的消息队列通信机制的C/S通信

写在前面要实现如图所示的C/S通信需要掌握的知识有:1.VxWorks的消息队列的API(具体内容可以在VxWorks内核源码的目录下的src/wv/msgQlib.c这个文件中找到)主要用到的方法有:msgQCreate,msgQSend,msgQReceiveMSG_Q_ID msgQCreate ( int maxMsgs,

2013-04-17 18:46:41 1699

原创 Android内核编译与裁剪

编译Android内核创建一个目录android,用来存放我们即将要下载的android源码。   命令:$ mkdir android进入上一步中建立好的目录android。   命令:$ cd android选择一个内核版本,使用git下载android的源码。我选择了goldfish版本,该版本是适用于模拟器平台的内核版本。   命令:   $ git

2013-03-07 18:47:11 5035

原创 内核级线程

不知不觉已经是最后一次的实验了。这一次实验的内容是:在Ubuntu下编写多线程的应用程序memtest.c,解决一个可并行运算的问题。在Linux 0.11的进程管理基础上,按照POSIX Threads标准实现内核级线程,使其能支持memtest.c的运行说来也很遗憾,这个实验我只完成了用户态的实现,内核级完全没有考虑去实现(时间、精力等等多方面的问题)。如果真的要把内核

2012-12-30 20:20:12 1923 5

原创 proc文件系统的实现

第七次实验的内容是在Linux 0.11上实现procfs(proc文件系统)内的psinfo结点。当读取此结点的内容时,可得到系统当前所有进程的状态信息。例如,用cat命令显示/proc/psinfo的内容,可得到:# cat /proc/psinfopid state father counter start_time0 1 -1 0 01 1 0 28 14 1 1

2012-12-24 13:30:38 3529

原创 字符显示的控制

第六次实验可以算是很简单的一次了,只要知道了0.11如何响应你的键盘事件,一切问题都迎刃而解了。实现这个实验的方法有很多,我的也是仅供参考,其他方法可能还有些是涉及到修改汇编代码的。首先,要做的就是在linux-0.11\kernel\chr_drv文件夹下的keyboard.S文件中,将第245行的call show_stat注释掉或者删掉都可以。在原来的代码中,按下F12便是调用了keyb

2012-12-15 18:36:36 1273

原创 地址映射与共享

本次已经是OS的第五次实验了,这次要做的内容有:用Bochs调试工具跟踪Linux 0.11的地址翻译(地址映射)过程,了解IA-32和Linux 0.11的内容管理机制;在Ubuntu上编写多进程的生产者—消费者程序,用共享内存做缓冲区;在信号量实验的基础上,为Linux 0.11增加共享内存功能,并将生产者—消费者程序移植到Linux 0.11。第一个内容,跟踪地址的翻译过程。

2012-12-09 19:08:11 3635 1

原创 Java实现C语言语义分析(递归下降)

说起这次的语义分析,不得不说的是我的重大的改变。上一次的语法分析是利用了预测分析法来实现的,经过多方考证,发现用预测分析法的语法分析器基础来实现语义分析的困难重重,例如在语法指导翻译的时候那个栈的变化和各种属性的传递就已经让我头晕脑胀了。无奈之下,只好重写语法分析,用了递归下降来实现语法分析进而实现我的语义分析。使用递归下降的最大好处就是思路特别清晰,一旦开始写了,就特别明确接下来要做什么。这

2012-12-07 16:24:20 6643 2

原创 TextBox编辑框间的自动跳转C#实现

为了满足用户对于编辑框操作的一些键盘操作,让编辑框间的跳转变得更加友好。我实现了这样的一个小程序来实现编辑框的自动跳转功能。对于自动跳转,我设计了以下几条规则:上下跳转:在控件的宽度带范围,距离此控件最近的其他控件,才能实现上下跳转。例如:本图中的1向下可以跳转的选择只有2,而没有3左右跳转:在控件的高度的五倍的高度带范围内的左右跳转才可实现,仅在此范围内的距离本控件最近的

2012-12-02 21:18:43 1600

原创 有限次数的Undo&Redo的C#实现

为了实现Undo和Redo,必须要在程序中保存起程序的运行状态,从而能够在Undo时跳转到前一个状态和在Redo时跳转到下一个状态。为了实现状态的维护,我采用了两个栈来分别保存Undo操作的状态和Redo操作的状态。 public static Stack undoStack = new Stack(); public static Stack redoSta

2012-12-02 20:33:16 2764

原创 信号量的实现和应用

第四次实验是一道坎啊,话说当年差点没做出来,各种纠结的问题都出现了。这一次的实验涉及到前几次实验的小综合,所以要求有点高。建议一定要认真仔细多阅读几遍指导书。实验的内容简单来说就是用信号量来实现生产者和消费者问题。建立一个生产者进程,N个消费者进程(N>1);用文件建立一个共享缓冲区;生产者进程依次向缓冲区写入整数0,1,2,...,M,M>=500;消费者进程从缓冲区读数,每次读一个,并将读出的

2012-12-01 14:37:46 2922

原创 进程运行轨迹的跟踪与统计

<!--p {margin-bottom:0.21cm}-->在做这次实验的时候,一定要耐心一点。我当时做的时候就因为在修改的过程中出现了一点小小的失误,导致了整个实验重新来过一遍。为了避免这样的情况发生,一定要记住修改的时候,要注意修改的内容无误。本次实验包括如下三个方面的内容:基于模板“process.c”编写多进程的样本程序,实现如

2012-11-22 21:16:22 4414 5

转载 Android推送指南

暑假在大中软做DonkeyGo的时候,就一直讨论着推送的问题。现在转来研究研究。在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究。在Android手机平台上,

2012-11-18 20:12:56 823 1

原创 RSA算法浅析

概述  RSA算法是第一个能用于加解密和数字签名的非对称加密算法。RSA的命名是以其提出者姓氏的首字母组合而成,Ron Rivest、Adi Shamir和Leonard Adleman。关于RSA的小小插曲,1983年麻省理工学院在美国为RSA算法申请了专利。这个专利2000年9月21日失效。由于该算法在申请专利前就已经被发表了,在世界上大多数其它地区这个专利权不被承认。最近正好在学习知

2012-11-17 11:04:44 1594

转载 Android常用命令

大家好,今天我们要讲的是android开发中,比较常用的名令集锦, 在我们开发中难免用到Android命令,有些确实命令确实很有用处。特别对于一些初学者来说,命令根本没有想过用也不会用,比如他们想安装一个.apk文件到模拟器上面,但是他们不会启动模拟器,他们只会先启动Eclipse,然后在启动模拟器,这样不但浪费时间,而且Eclipse又占用你的内存。这也是我为什么总结这篇文章的原因了,希

2012-11-14 22:37:04 616

原创 Java实现C的语法分析器(预测分析法)

在上一次词法分析的基础之上,我完成了我的C语言的语法分析器。这次选择的是用Java来实现,采用了自顶向下的分析方法,其思想是根据输入token串的最左推导,试图根据现在的输入字符来判断用哪个产生式来进行推导。         使用LL(1)分析法的问题就是对文法的要求较高,要求消除回溯了左递归,以致于后来在写文法的时候遇到各种麻烦,做了各种消除(本来想偷个懒,不通过程序直接手动解决这个问题的,

2012-11-12 16:28:52 10783 51

原创 系统调用

由于时间有些久远了,所以其中的内容可能稍有不当和具有一定的不完整性,敬请见谅!操作系统的第二个实验是在0.11下添加两个系统调用,iam和whoami.iam()第一个系统调用是iam(),其原型为:int iam(const char * name);完成的功能是将字符串参数name的内容拷贝到内核中保存下来。要求name的长度不能超过23个字符。返回值是拷贝的字符数

2012-11-12 13:43:24 1549 1

原创 Python实现的C语言词法分析

编译原理课上的一个实验是做一个编译器前端的词法分析器,我选择了用Python来写C语言的词法分析。         词法分析器的功能是输入源程序,输出单词符号。当初定义Token(单词种别,属性值)序列的时候,是将单词种别用数字来表示,后来再做语法分析的时候,发现用数字时不太合理的,所以又对单词的种别码进行了一番修改。         我的程序的总体思路是先对源程序进行一遍扫描,将多余的空格和

2012-11-10 22:39:22 15570 1

原创 Android 天气预报

在写这个小程序之前,我对webservice可谓是一无所知。在查了一系列的资料,经过多日的阅读之后,终于有了一点小理解。所以,在这里就简要的说一下。    W3C组织对Web Service的官方定义是:Web Service 是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序的接口所组成的,它们通过网络,例如国际互联网的远程服务器端,执行客户所提交服务的请求。

2011-12-08 23:26:26 1283 1

原创 一个小时钟 android

这次的小程序是一个android小时钟。主要用到知识有Handler,Thread,Canvas,Path.     Handler:主要是用来接收子线程发送的数据,并用此数据配合主线程更新UI。Handler运行在主线程,通过message来与子线程传递数据。我只用到了sendMessage(Message)方法。    Thread在java中刚学过了,所以用起来还是比较简单的,就不多

2011-11-18 21:48:02 6647 8

原创 初识Android

在搭好了Android的环境之后,尝试着新建Android的工程,然而却发现根本一行代码都没写,想要运行一下的时候却出现了问题。这是个关于AVD创建的问题,在成功创建了Android模拟器之后却在运行时提示找不到Android模拟器。我问了当时在旁边的同学,然而他努力寻找问题经过很久,尝试了各种方法,如和他电脑上的AVD的目录进行各种对比却没有发现问题所在。后来又重新把SDK装过,也不能解决问题。

2011-10-17 21:04:37 628

嵌套Fragment的使用

嵌套Fragment在Eclipse中的工程。 具体博客地址:http://blog.csdn.net/zouliping123/article/details/8834361

2013-04-23

哈工大操作系统实验8——内核级线程

哈工大操作系统实验8——内核级线程。本次的实验仅完成了用户态的实现。内核级要实现实在困难,耗费巨大精力也不见得能有好的成效,而且重要的是内核级仅占一个。

2012-12-30

哈工大软件学院操作系统实验7——Proc文件系统实现

哈工大软件学院操作系统实验7——Proc文件系统实现 上传的文件夹中包含了提交的代码和实验报告哦

2012-12-24

哈工大软件学院操作系统实验6——字符显示的控制

哈工大软件学院操作系统实验6——字符显示的控制。这次的实验不难,这里的文件可以拿来参考参考。文件夹中包含了上交的代码文件。

2012-12-15

哈工大软件学院操作系统实验4——信号量的实现和应用

哈工大软件学院操作系统实验4——信号量的实现和应用。这个实验有点难,尤其是sem.c的编写。文件中包含要上交的代码文件。

2012-12-01

哈工大软件学院操作系统实验3_进程运行轨迹的跟踪与统计

哈工大软件学院操作系统实验3,进程运行轨迹的跟踪与统计,仅供参考。文件中包含需要提交的所有代码文件。

2012-11-24

空空如也

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

TA关注的人

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