03 2014 档案
摘要:http://www.cnblogs.com/mengyan/archive/2012/08/30/2664607.html一、进程通信方法在说明线程通信前,有必要对进程通信进行说明;进程间通信的方法主要有以下几种: (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关 系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。 (3)信号(Signal):信
阅读全文
摘要:1、互斥使用(资源独占) 一个资源每次只能给一个进程使用 2、不可强占(不可剥夺) 资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放 3、请求和保持(部分分配,占有申请) 一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配) 4、循环等待 存在一个进程等待队列 {P1 , P2 , … , Pn}, 其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路
阅读全文
摘要:操作系统的虚拟存储器管理技术中,有一项比较重要的分支叫分页存储管理。分页管理是在页架中装入一些需要使用或过去使用过的页面,但是页架的数量是有限的,这里就会用到一些页面置换算法,使得页面访问的效率提高。判断一个置换算法优劣的指标就是缺页率,缺页是指当前的页架中没有需要访问的页面,而需要将该页面加入其中一个页架。缺页率=访问缺页次数/访问总次数。1.最佳置换算法OPT不可现实的算法总结:若出现缺页,从该页向后查找,先找到的M-1个页面保留在内存,另外那个替换掉。2.先进先出FIFO页面置换算法缺点:存在Belady现象,抖动现象。3.最近最久未使用(LRU)置换算法最有效的页面置换算法总结:若出现
阅读全文
摘要:1.使用XPath进行元素定位语法:以”/”开始,该路径表示一个元素的绝对路径,/AAA;/AAA/BBB 以“//”开始,表示选择文档所有满足双斜线之后的元素//BB;//DDD/BBB 星号“*”,选择所有由星号之前的路径所定位的元素 [i],i表示元素在选择集中的位置;/AAA[last()] 表示选择集中的最后一个元素 @,确定属性,//@d 选择所有的属性id;//BBB[@id]选择有id属性的BBB元素;//BBB[not(@*)]选择没有属性的BBB //BBB[@id='b1'] 选择包含属性id且其值为‘b1’的BBB元素 |将多个路径合并在一起 //C..
阅读全文
摘要:http://blog.csdn.net/hackbuteer1/article/details/7883531转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 v
阅读全文
摘要:http://blog.csdn.net/walkinginthewind/article/details/7393134链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链表相关的面试题做了较为全面的整理,希望能对找工作的同学有所帮助。链表结点声明如下:structListNode{ int m_nKey; ListNode * m_pNext;};题目列表:1.求单链表中结点的个数2. 将单链表反转3. 查..
阅读全文
摘要:完全二叉树: 一种是:二叉树的所有子树要么没有孩子,要么一定有左孩子。另一种是:二叉树要么没有子树,要么一定左右子树都有若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。平衡二叉树:AVLAVL是最先发明的自平衡二叉查找树算法。在AVL中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。红黑树红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制.
阅读全文
摘要:http://www.cnblogs.com/waytofall/archive/2012/04/10/2439820.html求子数组的最大和题目描述:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。思路1 当我们加上一个正数时,和会增加;当我们加上一个负数时,和会减少。如果当前得到的和是个负数,那么这个和在接下来的累加中应该抛弃并重新清零,
阅读全文
摘要:http://www.cnblogs.com/newpanderking/archive/2012/10/18/2729552.html拓 扑 排 序 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程的开始是以它的所有前序子工程的结束为先决条件的,但有些子工程没有先决条件,可以安排在任何时间开始。为了形象地反映出整个工程中各个子工程(活动)之间的先后关系,可用一个有向图来表示,图中的顶点代表活动(子工程),图中的有向边代表活动的先后关系,即有向边的起点的活动是终点活动的
阅读全文
摘要:http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。二叉树节点定义如下:struct BinaryTreeNode{ int m_n.
阅读全文
摘要:http://1632004.blog.163.com/blog/static/29991497201231811231120/如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通过浏览器访问您的网页),那么,您的服务器会返回 HTTP 状态代码以响应该请求。1xx - 信息提示这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。· 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)· 101 - Switching Protocols 服务器将遵从客户的请求转换
阅读全文
摘要:Hibernate:用面向对象的方法除了数据库操作,利用ORM对象关系映射框架1.Hibernate的映射文件:一个类对应一个映射文件,存储类的特点,以XML的形式存放。将对象映射成数据库中的表,是链接数据库与对象的纽带2.Hibernate的配置文件:对数据库的描述,如使用什么数据库,与数据库交互所要用到的驱动类的设置等,文件为XML或properties属性文件 XML文件:格式类似HTML文件,有自己的标签,用于定义自己的数据结构。具有格式化检查机制,可以指定映射文件的加载映射文件: 配置文件: jdbc:mysql://localhost:3306/community...
阅读全文
摘要:1.#if ... #endif 之间的程序段就可以有效地从程序中去除,不管中间有没有注释2.环境:两种环境不比位于同一台机器上 1.翻译环境:源代码被转换为可执行的机器指令 2.执行环境:用于实际执行代码3.三字母词4.注释会被预处理器拿掉,取而代之的是一个空格5.printf("\40");输出空格 \40为八进制326.把一个大型程序放入一个单一的源文件中有什么优点,有什么缺点?优点:链接时间会减少缺点:(1)对文件的一点改动,都需要重新编译这个大文件;这时比分成几个小文件后,只重新编译有改动的文件的编译时间长。 (2)不易阅读。 (3)不易维护7.长整型至少应该和整
阅读全文
摘要:http://www.cnblogs.com/TankXiao/p/2381284.html在软件测试的面试中, 经常会碰到类似的问题。 比如:如何测试一个杯子, 或者如何测试一只笔。 要求你设计20个以上的test case.这类的面试题目,是考察面试者是否熟悉各种软件测试方法, 设计test case的能力, 以及test sense。首先应该反问下面试官, 需求是什么样的,比如大概是个什么样的杯子。我回答这类问题的思路, 从软件测试的各种不同方法来联想, 具体如下。功能测试(Function test)能否装水,除了装水, 能否装其他液体。比如可乐,酒精能装多少ML的水杯子是否有刻度表杯
阅读全文
摘要:原因:JAVA核心编程1卷7版P116 Employee E1 = new Employee("Alice",...); Employee E2 = new Employee("Bob",...); swap(E1, E2);void swap(Employee a, Employee b){ Employee temp; temp = a; a = b; b = temp;}无法实现,E1, E2 的引用互换!!!故是按值传递的。
阅读全文
摘要:1.break语句跳出的是最近的那层循环语句或switch语句。2.相邻字符串会合并“abc”“def”=“abcdef”3.函数声明要么static要么extern,extern时注意interpositioning问题,用户编写和库函数同名的函数并取而代之的行为4.返回类型为函数的指针的函数 int(* fun())()5.返回类型为数组的指针的函数 的数组 int(* fun())[]6函数指针数组 int (* fun[])()7.函数的参数在传递是尽可能存放在寄存器中,而非一味地从右向左压栈8.可以利用结构体实现整个数组的赋值9.char * const *(*next)() 指向.
阅读全文
摘要:http://kimibob.blog.163.com/blog/static/163873051201153093851369/平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。定义:平衡二叉树或为空树,或为如下性质的二叉排序树:(1)左右子树深度之差的绝对值不超过1;(2)左右子树仍然为平衡二叉树.平衡因子BF=左子树深度-右子树深度.平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。如图所示为平衡树和非平衡树示意图
阅读全文
摘要:Python: 子类不重载、覆盖父类的构造函数(子类不自己定义构造函数),则构造子类时会调用父类构造函数 若子类覆盖了父类的构造函数,则构造子类时不执行父类的构造函数,但仍继承了父类,如需调用父类构造函数则使用:Parent.__init__(self)或super(Child,self).__init__()JAVA: 如果子类没有显示调用父类则自动调用父类默认(无参数)构造函数。 如果父类没有无参数构造函数,且子类构造函数中未显示调用父类其他构造函数,则报错
阅读全文
摘要:1.基本语法规则: 目标:依赖文件 [Tab]command 或 目标:依赖文件; command2.伪目标 .PHONY: 目标 特点:伪目标的特点为总是被执行,故其依赖的目标总不如改目标新 应用: 1.无依赖文件 .PHONY:clean clean: commands 没有依赖文件,文件"clean"始终是最新的,命令永远不会执行;为避免这个问题,可使用".PHONY"指明该目标。 避免和同名文件冲突(防止存在和PHONY执行目标的名称相同的文件, 避免和文件名重名),显示指出文件为伪目标,make clean 2.有依赖文件 all: prog1
阅读全文
摘要:C语言函数参数入栈顺序为从右至左。具体原因为:C方式参数入栈顺序(从右至左)的好处就是可以动态变化参数个数。通过栈堆分析可知,自左向右的入栈方式,最前面的参数被压在栈底。除非知道参数个数,否则是无法通过栈指针的相对位移求得最左边的参数。这样就变成了左边参数的个数不确定,正好和动态参数个数的方向相反。从右至左则最左边的参数在栈顶
阅读全文
摘要:堆空间需要通过栈上的指针间接引用,所以访问会慢。 堆空间的开辟需要用系统函数,栈上直接修改指针 堆空间的管理需要系统记帐,栈上的空间可以由编译器管理或是保存在某个处理器寄存器中。堆空间的释放需要系统管理,栈上的释放可以直接丢弃
阅读全文
摘要:小结:常用的gdb命令backtrace 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where) breakpoint 在程序中设置一个断点 cd 改变当前工作目录 clear 删除刚才停止处的断点 commands 命中断点时,列出将要执行的命令 continue 从断点开始继续执行 delete 删除一个断点或监测点;也可与其他命令一起使用 display 程序停止时显示变量和表达时 down 下移栈帧,使得另一个函数成为当前函数 frame 选择下一条continue命令的帧 info 显示与该程序有关的各种信息 jump 在源程序中的另一点开始运行 kill 异常终止
阅读全文
摘要:JDK7:public final int hashCode() { return Objects.hashCode(getKey()) ^ Objects.hashCode(getValue()); }/** * Retrieve object hash code and applies a supplemental hash function to the * result hash, which defends against poor quality hash functions. This is * critical because HashMap uses power-of-two
阅读全文
摘要:http://blog.csdn.net/feixiaoxing/article/details/6746543 内存越界是我们软件开发中经常遇到的一个问题。不经意间的复制常常导致很严重的后果。经常使用memset、memmove、strcpy、strncpy、strcat、sprintf的朋友肯定对此印象深刻,下面就是我个人在开发中实际遇到的一个开发问题,颇具典型。[cpp] view plaincopy#defineMAX_SET_STR_LENGTH50#defineMAX_GET_STR_LENGTH100int*process(char*pMem,intsize){charlocal
阅读全文
摘要:http://blog.csdn.net/feixiaoxing/article/details/6746335在 我们个人编程的过程当中,内存泄露虽然不会像内存溢出那样造成各种莫名奇妙的问题,但是它的危害也是不可忽视的。一方面,内存的泄露导致我们的软件在运行 过程中占用了越来越多的内存,占有资源而又得不到及时清理,这会导致我们程序的效率越来越低;另一方面,它会影响我们用户的体验,失去市场的竞争能力。 常见的内存泄露是这样的:[cpp] view plaincopyvoidprocess(intsize){char*pData=(char*)malloc(size);/*othercode*/
阅读全文
摘要:http://my.oschina.net/pollybl1255/blog/140323BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段 :数据段(data segment)通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域。数据段属于静态内存分配。 代码段: 代码段(code segment/text segment)通常是指用来存放 程序执行代码 的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于...
阅读全文