随笔分类 -  面试

摘要:节约系统内存和CPUhttp://www.csdn.net/article/2015-02-12/2823952Web系统大规模并发——电商秒杀与抢购http://www.csdn.net/article/2014-11-28/2822858(曾经阿里电话面试和腾讯的后台开发都说过的问题,记住记住)... 阅读全文
posted @ 2015-04-20 19:40 Jessica程序猿 阅读(364) 评论(0) 推荐(0)
摘要:1.C语言的函数malloc和free(1)函数malloc和free在头文件中的原型及参数 void * malloc(size_t size)动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL。void free(void *ptr)释放动态申请的内存空间,调用f... 阅读全文
posted @ 2015-04-20 10:45 Jessica程序猿 阅读(10521) 评论(0) 推荐(1)
摘要:关于C/C++中结构体变量占用内存大小的问题,之前一直以为把这个问题搞清楚了,今天看到一道题,发现之前的想法完全是错误的。这道题是这样的:在32位机器上,下面的代码中class A{public: int i; union U { char buff[13];... 阅读全文
posted @ 2015-04-19 20:32 Jessica程序猿 阅读(2638) 评论(0) 推荐(0)
摘要:switch在判断分支时,没有判断所有的可能性,而是用一个静态表来解决这个问题,所以速度要比if-else快。但是,switch对较复杂的表达式进行判断,所以当我们需要判断一些简单数值时,用switch较好。下面是转载的内容,我看说的很有道理switch和if-else相比,由于使用了Binary ... 阅读全文
posted @ 2015-04-18 10:59 Jessica程序猿 阅读(2685) 评论(0) 推荐(0)
摘要:算法的思路是:从头到尾遍历文件,从文件中读取遍历到的每一个单词。把遍历到的单词放到hash_map中,并统计这个单词出现的次数。遍历hash_map,将遍历到的单词的出现次数放到优先级队列中。当优先级队列的元素个数超过k个时就把元素级别最低的那个元素从队列中取出,这样始终保持队列的元素是k个。遍历完... 阅读全文
posted @ 2015-04-03 10:56 Jessica程序猿 阅读(891) 评论(0) 推荐(0)
摘要:0 堆内存的在计算机内存中的形式根据《TheC Programming language》推测得到堆内存,图中的Heap区域即为堆内存块(Heap区域的数目不代表计算机堆内存的真实数目)。[1]堆内存不连续。只有标识为Heap的才是堆内存。[2] 在malloc()/free()看来,每个Heap所... 阅读全文
posted @ 2015-04-02 16:22 Jessica程序猿 阅读(1104) 评论(0) 推荐(0)
摘要:许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把“a”替换为“b”); 2.增加一个字符(如把“abdd”变为“aebdd”); 3.删除一个字符(如把“travelli... 阅读全文
posted @ 2015-04-02 09:50 Jessica程序猿 阅读(350) 评论(0) 推荐(0)
摘要:线程共享的环境包括: 1.进程代码段 2.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯) 3.进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:1.线程ID ... 阅读全文
posted @ 2015-03-30 15:26 Jessica程序猿 阅读(5477) 评论(0) 推荐(0)
摘要:open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入... 阅读全文
posted @ 2015-03-30 09:33 Jessica程序猿 阅读(375) 评论(0) 推荐(0)
摘要:编写一个智能指针类。智能指针是一种数据类型,一般用模板实现,模拟指针行为的同时还提供自动来及回收机制。它会自动记录SmartPointer对象的引用计数,一旦T类型对象的引用计数为零,就会释放该对象。解法:智能指针跟普通指针一样,但它借由自动化内存管理保证了安全性,避免了诸如悬挂指针、内存泄漏和分配... 阅读全文
posted @ 2015-03-29 23:32 Jessica程序猿 阅读(576) 评论(0) 推荐(0)
摘要:C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每... 阅读全文
posted @ 2015-03-29 18:45 Jessica程序猿 阅读(320) 评论(0) 推荐(0)
摘要:2sum如果数组是无序的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j--,逐次判断a[i]+a[j]?=sum,如果某一刻a[i]+a[j]>sum,则要想办法让sum 的值减小,所以此刻i 不动,j--,如果某一刻a[i]+a[j]x... 阅读全文
posted @ 2015-03-28 14:14 Jessica程序猿 阅读(471) 评论(0) 推荐(0)
摘要:题型1:拓扑排序1)使用一个入度数组indegree来记录每个顶点的入度数,并使用一个变量来记录已经访问的顶点数2)将入度为0的顶点压入栈中3)将栈顶的元素删除。访问的顶点数加1.并将入该顶点相邻的所有顶点的入度数减1,如果减1之后的入度数为0,则将其压入栈中;4)重复上面的过程,直到栈中的元素为空... 阅读全文
posted @ 2015-03-27 23:37 Jessica程序猿 阅读(935) 评论(0) 推荐(0)
摘要:题型1:如何统计字符中有多少个单词?方法1:使用空格作为分隔。如果测出某一个字符为非空格,而它前面的单词是空格,则表示“新的单词开始了”此时单词数count累加1.如果当前字符为非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,count不应再累加1.方法2:使用sstream中的i... 阅读全文
posted @ 2015-03-27 15:24 Jessica程序猿 阅读(465) 评论(0) 推荐(0)
摘要:链表题型1:数组和链表的区别是什么?数组和链表的区别主要表现在以下几个方面:1)逻辑结构。数组必须事先定义固定的长度,不能适应数据动态地增减。当数组中插入、删除数据项时,需要移动其他数据项。而链表采用动态分配内存的形式实现,可以适应数据动态第增减的情况,需要时可以用new/malloc分配内存空间,... 阅读全文
posted @ 2015-03-27 14:08 Jessica程序猿 阅读(469) 评论(0) 推荐(0)
摘要:数组题型1:如何用递归实现数组求和方法1:题型2:如何用一个for循环打印一个二维数组方法1:array在二维数组中的行号和列号分别为[i/MAXY],[i%MAXY]题型3:用递归和非递归的方法实现二分查找题型4:如何在排序数组中,找出给定数字出现的次数方法1:二分查找,分别找出左边界和右边界,左... 阅读全文
posted @ 2015-03-27 10:30 Jessica程序猿 阅读(1974) 评论(0) 推荐(0)
摘要:1 进程和线程的区别进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配的一个独立单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等,然后该进程被放入到进程的就绪队列,进程调度程序选中它,为它分配CPU及其... 阅读全文
posted @ 2015-03-26 23:13 Jessica程序猿 阅读(955) 评论(0) 推荐(0)
摘要:windows内存管理windows 内存管理方式主要分为:页式管理,段式管理,段页式管理。页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页;页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应的页表;并用相应的硬件地址变换机构来解决离散地址变换问题... 阅读全文
posted @ 2015-03-26 21:35 Jessica程序猿 阅读(2499) 评论(0) 推荐(0)
摘要:1 OSI七层模型和TCP/IP2 B/S与C/S有什么区别?C/S是客户端/服务器的缩写,在C/S架构中,服务器通常采用高性能的PC、工作站或者小型机,而且采用大型数据库系统,如SQL server 、DB2、Oracle和Sybase等。客户端需要安装专用的客户端软件。B/S是浏览器/服务器的缩... 阅读全文
posted @ 2015-03-26 18:46 Jessica程序猿 阅读(464) 评论(0) 推荐(0)
摘要:1 关系数据库系统与文件数据库系统有什么区别?2 SQL语言的功能有哪些基本SQL语句有select、insert、update、delete、create、drop、grant、revoke等。3 内连接与外连接的区别?4 什么是事务?事务是数据库中一个单独的执行单元,它通常由高级数据库操作语言(... 阅读全文
posted @ 2015-03-26 15:17 Jessica程序猿 阅读(380) 评论(0) 推荐(0)