
面试系列
文章平均质量分 87
djd已经存在
······
展开
-
多线程面试秒杀系列1---面试题目
大体结构来自morewinodws的博客。简答题1.线程的基本概念、线程的基本状态及状态之间的关系? 线程是进程中某个单一顺序的控制流,是程序执行流的最小单位。线程由线程ID、当前指令指针、寄存器集合和堆栈组成。线程是进程的一个实体,是被系统调度和分配的基本单位,线程与同一进程中的其他线程共享进程的全部资源。 一个线程可以创建和撤原创 2015-05-26 10:36:23 · 2559 阅读 · 0 评论 -
对面向对象编程的认识
面向对象编程强调抽象、封装、继承、多态抽象:我们在定义一个抽象类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象。你可以这样来想,抽象就是一个类的最基础的东西,比方说人,他的抽象类可能就是都从母体出来,有皮肤。但具体到你是黑人,白人,还得黑人类,白人类来说明 。封装:就是将类的属性包装起来,不让外界轻易的知道他的内部实现。只原创 2015-08-28 18:14:36 · 1496 阅读 · 0 评论 -
求一堆数中取出2个异或使得异或值大于某个数
思路 字典树 显然不能枚举所有的点求两两见的异或值, 我们知道表示为二进制时 当两数位不同时是其异或值才为1 ,由此可得到O(n)的算法,先将所有数存进字典树中(便于快速查询), 当用一个数去和其他数异或时,可直接根据贪心策略(尽量选不同的数位)得到最大异或值。代码1#includeint n,m;struct haha{ int next[3];原创 2015-07-21 21:32:16 · 2657 阅读 · 0 评论 -
[刘未鹏]怎样花两年时间去面试一个人
By 刘未鹏– November 4, 2011Posted in: 学习方法, 未分类, 编程Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚刚去世的Dennis Ritchie就是这样一个人)而“人才”转载 2015-07-21 22:46:31 · 1403 阅读 · 0 评论 -
如何迅速匹配兄弟字符串
如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。思路:判断各自素数乘积是否相等。方法一:1、判断两个字符串的长度是否一样。2、每个字符串按字符排序,如acb排序之后是abc,如果是兄弟字符串的话,排序之后是一样的。方法二:给26个字符依次赋予质数。质数是比较特殊的一堆数字,它们只能原创 2015-07-21 21:38:58 · 1613 阅读 · 0 评论 -
漫谈选人与培训
很喜欢其中的技能、知识、才干理论。最近终于有时间来翻看《首先,打破一切常规》(First, Break All the Rules)了,感慨良多啊。真后悔之前公司发这本书时把它封印起来。 先看看书中提到的优秀经理们的座右铭吧:人是不会改变的。不要为填补空缺而枉费心机。而应多多发挥现有优势。做到这一点已经不容易了。 其实很简单的道理,我们都忽略了。在实转载 2015-06-15 16:23:24 · 1246 阅读 · 0 评论 -
关于程序员学英语的经验
还记得雷军在印度发布会上的英语首秀吗?或被调侃发音不准,但总的来说,程序员可算是英语水平比较好的群体,因为在这个行业,英文资料是最全面、最及时,对英文资料的需求也最迫切的。因此,就我的观察,即便刚入门不久的程序员,面对陌生的问题,一般也能查阅英文文档,找到需要的信息。但是另一方面,我也发现,经常阅读英文文档的程序员,英语水平许多时候却不像“经常阅读英文”的样子。我在这里列几点自己的学习心得,供大家原创 2015-06-27 16:10:52 · 1910 阅读 · 0 评论 -
C++面试必备,概念解析
1.C和C++中struct有什么区别?1> C++中的struct类似于class,有变量,有构造函数、虚函数等,有继承,多态等类的特征;2> C中的struct只有变量,不能有函数,但是可以有函数指针2.C++中的struct和class有什么区别?在C++中,两者区别不大,但是有2个主要的区别1>. 继承权限:str原创 2015-06-27 17:04:53 · 2608 阅读 · 0 评论 -
多线程面试秒杀系列6--临界区函数的使用
上一次我们给出了一个小程序,这次我们来使用临界区解决上一节没有解决的问题,临界区其实只有四个函数,分别是初始化、销毁、进入临界区、离开临界区。函数功能:初始化函数原型:void InitializeCriticalSection(LPCRITICAL_SECTIONlpCriticalSection);函数说明:定义关键段变量后必须先初始化。函数功能:销毁函原创 2015-06-05 23:06:45 · 1653 阅读 · 0 评论 -
多线程面试秒杀系列5--多线程入门
首先我们先来看一个程序,从这个程序来引出多线程的控制手段,怎么样使得每个线程相互是互斥的,下面这个程序大概就是创建10个线程,并输出线程的序号,但是因为没有控制手段导致序号输出的时候是混乱的,因为线程的执行时没有顺序的它是并行执行的所以如果变量不加以控制就会出现混乱的情况。程序使用codeblocks编译的。#include #include #include #include lo原创 2015-06-01 23:48:54 · 1534 阅读 · 0 评论 -
多线程面试秒杀系列2---CreateThread与_beginthreadex区别
如果在代码中有使用标准C运行库中的函数时,尽量使用_beginthreadex()来代替CreateThread()。 本文会通过源码来说明,这个是为什么? 下面先由一个创建线程的小代码来体验一下线程是什么感觉。代码中的函数在下方会有讲解,代码的大概意思就是先创建一个函数,之后在主函数中创建一个线程,调用这个函数。 //最简单的创建多线程实例原创 2015-05-26 14:16:22 · 1515 阅读 · 0 评论 -
多线程面试秒杀系列4---Interlocked系列函数的简要分析
上一篇中我们出现了脏读的问题,但是却没有给出解决办法这一篇中我们这一篇中主要说明一下interlocked系列函数。 下面列出一些常用的Interlocked系列函数: 1.增减操作 LONG__cdeclInterlockedIncrement(LONG volatile* Addend); LONG__cdeclInt原创 2015-05-26 18:41:12 · 1786 阅读 · 0 评论 -
多线程面试秒杀系列3---一个带有全局变量的多线程程序
我们能不能来一个线程报数功能,即第一个子线程输出1,第二个子线程输出2,第三个子线程输出3,……。要实现这个功能似乎非常简单——每个子线程对一个全局变量进行递增并输出就可以了。代码如下: //子线程报数 #include #include #include int g_nCount; //子线程函数 uns原创 2015-05-26 18:16:14 · 1626 阅读 · 0 评论 -
程序员编程面试取胜的8个技巧
程序员编程面试取胜的8个技巧1.知道如何写算法 如果你申请的是软件工程师的工作,那么显然你需要知道如何编码。写代码脚本其实与写算法来解决软件问题略有不同。用人单位可能会提出这样的问题,“写一个算法,可以从链表中找到某个元素,并将此元素挪到列表末尾。”所以,你必须知道如何写算法。 只需具备一点点的数据结构知识以及知道如何实现不同类型的算法,那么写算法对转载 2015-10-25 20:15:39 · 1211 阅读 · 0 评论