前一天接到邀请面试的电话,邀请我的原因就是因为我参加过ACM程序设计竞赛。
早上10点坐车到杭州,到那边1:30了,午饭没吃去面试了。公司:杭州天卓网络有限公司 面试职位:JAVA工程师。面试官是一个很年轻的人,问了我一些数据结构的东西,二叉树和二叉平衡树有什么关系?我答:不知道。jsp和severlet什么联系?答:不知道。mysql和JAVA用的是两块不同的内存那么JAVA程序是怎么得到数据库的数据的?答:JAVA不是有个链接库连接数据库的嘛。问:就是这个链接库是怎么实现的?答:不清楚。。又问了:hashMap什么什么的。答:没接触过。当然也有一些能说上几句的。
做过网络编程吗?
做过一个聊天系统。
是用socket作的?
嗯。客户端和服务端。
做过多线程的程序吗?
用C语言写过多线程搜索文件。
你是怎么管理C语言程序的内存的?
自己分配的内存不用了就释放,数组之类的就无所谓。。
还有一个最丢脸的问题,我无地自容啊。。
假如有一个定时器,在固定的时间会触发一件事,定时任务非常多,假如还有一些新的定时任务要加入,你怎么解决?
我当时在他的很长的解释下有点迷糊了,反反复复说了好多话,反正我最好的方法就是遍历一次找到插入点,或者能个数组标记时间,直接将新任务插入合适位置。很明显这两种方法都很戳。。遍历耗时,标记耗内存。
他还补充了用什么样的数据结构解决这个问题,再我实在想不出的时候他说了用堆。说实话堆我听说的很多,但一直不知道具体是什么概念。
刚刚走出公司我就想啊,二分查找不就可以很快速的找到新任务的插入点了嘛。。。我晕死了,亏我还自称是搞过ACM的,对算法是最熟悉的。这张老脸往哪搁啊。。
posted on 2012-01-07 17:29
mr_chen 阅读(170)
评论(0) 编辑 收藏 引用