生产者-消费者模型是多线程问题里面的经典问题,也是面试的常见问题。有如下几个常见的实现方法:1.
wait()/notify()2. lock & condition3. BlockingQueue下面来逐一分析。1.
wait()/notify()第一种实现,利用根类Object的两个方法wait...
分类:
编程语言 时间:
2014-06-16 09:37:57
阅读次数:
314
何为实时?请先自行百科一下。我们日常使用通用操作系统,主要是指Windows,Linux的各种衍生版本,都是非实时操作系统,在上面可以安装各种各样的软件,有着丰富的软件支持,从数量上说这是ios和android上的应用软件不能比拟的。但是在通用操作系统上,我们无法要求某一个程序在某一个时刻必须执行完...
分类:
其他好文 时间:
2014-06-12 23:12:19
阅读次数:
436
没想过面试的时候,会遇到语言设计上的问题。现场答得并不好因为一直没思考过,经过了点搜索,渐渐有点思路。1.
避免“钻石型”多继承问题:有两个类B和C继承自A。假设B和C都继承了A的方法并且进行了覆盖,编写了自己的实现。假设D通过多重继承继承了B和C,那么D应该继承B和C的重载方法,那么它应该继承哪个...
分类:
编程语言 时间:
2014-06-12 13:03:54
阅读次数:
221
【0】问题:WCF与 Web Service的区别是什么?和ASP.NET Web
Service有什么关系?WCF与ASP.NET Web
Service的区别是什么?这是很多.NET开发人员容易搞错的问题。面试的时候也经常遇到。而很多新手也会因为初次接触WCF或者Web
Service而陷入迷惑...
分类:
Web程序 时间:
2014-06-10 20:44:35
阅读次数:
300
移除数组中重复次数超过2次以上出现的数,但是可以允许重复2次。
这个题类似Remove Duplicates from Sorted Array,第一个想法很直接就是计数,超过2次的就忽略,依据这个思路的代码见代码一;
上面的思路可行,但是代码看着比较冗余,判断比较多。再来想想原来的数组,该数组是排好序的,如果一个数出现3次以上,那么必有A[i] == A[i-2]。所以根据这个关系可以写出比较精简的代码二。详见代码。...
分类:
其他好文 时间:
2014-06-10 19:18:39
阅读次数:
250
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama" is
a palindrome.
"race a car" is no...
分类:
其他好文 时间:
2014-06-10 18:36:29
阅读次数:
193
题目:...
解题思路:
顺时针方向旋转数组90°。这个题也是个没啥意思的题,自己画画图,找找规律。就出来了。我举一个n=4的例子还说明下规律:
通过图可以看出A[0][0] = A[3][0],....。从这些中我们可以找到如下规律:
A[i][j] = A[n-1-j][i];
A[n-1-j][i] = A[n-1-i][n-1-j];
A[n-1-i][n-1-j] = A[j][n-1-i];
A[j][n-1-i] = A[i][j];(原来的A[i][j...
分类:
其他好文 时间:
2014-06-10 18:09:47
阅读次数:
281
问题:
给定一个链表的头指针,以及一个整数k,要求将链表按每k个为一组,组内进行链表逆置。少于k个的部分不做处理。
分析:
个人觉得问题的重点是熟悉链表的就地逆置操作,就是头插法。其他的考察点如果还有的话,就的细心程度。
实现:
void reverseList(ListNode *&pre, ListNode *head)
{
ListNode *tail = NULL;
w...
分类:
其他好文 时间:
2014-06-10 17:25:45
阅读次数:
305
问题:
给定个单链表,判断该链表是否存在环。
分析:
这个问题是见的非常多的题目,问题本身而言,技巧性很强,或者说思路很巧妙,这里要说的不是这个题目本身,而是说这种技巧,在很多的地方是用的到的,比如,在寻找单链表的中间节点的时候,就可以用这种形式,一个走两步,一个走一步的形式,来获得中间节点。
//
bool hasCycle(ListNode *head) {
if(...
分类:
其他好文 时间:
2014-06-10 10:48:49
阅读次数:
176