我的初面
周四正在回学校的车上,接到hr的电话通知明天下午要电话面试。回到学校就开始搜电话面经之类的东西……乱七八糟看了一堆,然后又把做过的项目、数据结构、算法之类的简单过了一遍。当时记住不少,但到面试时几乎全忘了,非常悲剧。
这几天正在给别人做网站,对方要求发布在内网里,所以需要去他们那实地测试。在他们的机房里只有我一个人,很安静,很适合接个电话什么的,幸运。
面试一共有三轮。之前以为只有一个人面试,以至于第一个面试完成度巨烂草草9分钟结束时心想卧槽这么快一定毁了,听人家说不都是一小时左右么- -!不过总体表现还是很傻逼,基本上一直在被问并且一直这个不会啊不好意思……问题后来想想都不难啊!当时脑抽到了什么程度……
总结一下面试问的问题吧。
kill
和kill -9
的区别?
当时我答的是强制和非强制,面试官追问具体区别,我就说了“linux信号分两种一个是强制的一个是建议的”(傻逼死了不能忍啊)……面试官好像愣了一会儿说从父进程和子进程角度分析呢?我说我不会然后就没然后了。
搜了下,确实有类似我上边说的原因,kill
默认发TERM
信号,kill -9
则发KILL
信号,"software termination signal"
vs"non-catchable, non-ignorable kill"
,TERM
可捕获后忽略,KILL
则不行。
但是面试官好像不想让我说这个,按照子进程父进程搜,找到一篇《kill掉父进程,子进程不同的运行方式》,里面提到了进程组、会话等等,于是又搜到这篇《进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端》,看得有点晕,稍后再整理成另一篇文章好了。(但是这和面试官的问题没多大关系啊,可能当时我太紧张记错了?)
SQL的INDEX
对一个字段索引和对两个字段索引有什么区别
没用过INDEX
我会乱说么……然后面试官就问如果让你实现INDEX
命令大概会怎么搞?我:hash和树之类的结构吧……
这里:数据库索引技术—索引介绍 (一),数据库索引技术-聚集索引和非聚集索引介绍(二),数据库索引技术–聚集索引和非聚集的区别和建立原则(三),数据库索引技术–复合索引介绍(四)。准备找本好书重新学一遍数据库。
你觉得python和java间的区别是什么
两个面试官都问了这个问题,应该是看到我简历上写了正用python&django做网站。我对第一个面试面试官说的是python是动态类型语言不用关心类转型什么的,还说java用起来很难受有种写八股文的感觉(我在面试java开发啊卧槽),说完面试官就沉默了……我一想确实哪点不太对,到第二个面试官问到同一个问题时就说了java需要重启服务器热交换什么的也不好用,而python则不用很轻松语法表达更流畅blablabla,这次感觉面试官反应稍好点。之后面试官就问lambda,我:我知道,但,不会用。赶紧强调自己刚学python不到一个月,做了一个小web应用等等……
synchronized
在static方法和非static方法上有什么区别
我说我好像在哪本书上看过,但是,忘了。面试官就说没关系你先说说static方法和非static方法的区别(好人一生平安),我:blablabla,面试官:恩,那加上synchronized呢?,我:哦~blablabla。一个是对类加锁另一个是对实例加锁。
BST的插入删除过程
在面试官提示和无限耐心下基本答出来了。
快速排序的最坏情况,如何优化
恩,分成的两段一个不包含任何元素一个包含剩下的所有元素,O(n2),随机。
单向链表找环
“用两个指针,一个的步长为 1,另外一个的为 2,从表头开始一起往前走,如果相遇,表明有环路,否则就是没有了。”出自这里。
我不会。然后面试官说那问你个简单的吧,就问了下面的。
单向链表倒置
数据结构考试考过。
还有一些问题类似一句话介绍ssh就不说了。
这次面试收获很大,最重要的是学习一定要认真。