约面试
看完简历后,就是约面试了,leader让我约面试,电话面试就行,但是我想得还是视频面试一下,也能看看在线编程,所以我自己去牛客网认证了一下,成为了牛客网的面试官,可以发起视频面试,可以看到面试者手写代码,也可以看到面试者有没有切出去浏览器界面,正常面试者应该不会频繁切除当前的视频面试界面,作用还是很大。
undefined
•这是面试官的界面,主要讲讲在线编程题,面试官可以自己出题,也可以从牛客网的题库里面选一道题目出给面试者;•右下角的文字框可以输入文字,让面试者看见•右下角的输入框上面的框会提示面试者的浏览器状态,如果面试者切出去了当前页面,那么这里会提示面试者离开了当前页面。
面试
自我介绍和项目亮点
照例让面试者进行了一波自我介绍和项目亮点,这里建议大家自我介绍的时候尽量说一些和技术相关的,不要说一些和技术无关的内容,这位同学在面试时候说了自己的班委团委经历之类的,其实我是不感兴趣的,毕竟是招来做开发的,技术OK就行。
undefined
项目这里我问了问这名同学有什么亮点,(这个问题基本大多数面试官会问),这里他没说任何技术上的亮点,感觉只说了一些项目的背景,提出这个想法很好,这里感觉这样说不太好,这可是技术面试,说些技术上的亮点比较好。
Java基础
我首先问了Java基础,八种常见数据类型、拆箱封箱、重载和重写、String和StringBuffer/StringBuilder的区别、Object的方法/EQUALs和==的区别等都回答的不错,然后我问了int和Integer在输入框输入了一道题,让他做一下。
Integer a = new Integer(100);
Integer b = new Integer(100);
a == b
问他a和b是不是相等,他说相等,当时我内心OS:???
我就想问问他是怎么想的,我就说:“嗯,为啥是相等?”,他说,Integer是有个缓冲区(-128~127),100在这个缓存区以内,所以是相等的。
我当时就说:你再好好想想,然后再回答这个问题。(其实我这么说,是想让他说出正确的答案),如果面试官让你说你再想想,要想想自己是不是刚才说错了,因为我觉得这个问题,不应该搞错呀。
然后他又继续说了一遍刚才的回答,没有说出正确答案,然后我就和他说这个两个不相等,是比较的两个对象的地址,这里我有点失望。
OK,继续问问HashMap ,依次问了HashMap的原理、get、put方法、JDK1.7和JDK1.8的区别,回答的都不错,然后问了HashMap为啥是线程不安全的举个例子说明一下,没回答上来,那HashMap翻篇,这块还行。
继续问了ConcurrentHashMap,他说这块还没了解,OK,那Java这一块先这样吧,问点Linux、计算机操作系统、数据库、计算机网络吧,Java基础这一块还行勉强OK。
Linux
我:Linux 怎么打开一个文本 他:vi 我:怎么进入编辑模式进行编辑?他:这块之前用过,现在忘了。。。
到这里,感觉他应该很长时间没用过Linux了,或者之前就没接触过Linux,这么基本的都不知道的,真的太伤了。
我继续问:怎么查看CPU,还是不知道,我继续问怎么查看内存,也不知道,怎么查看文件大小,还是不知道,看来Linuyx这一块真的是很欠缺,这都很基本的了,也没问啥复杂命令。
这里和大家要说的是,Linux基本大多数公司开发的时候都会用到,不会Linux的话一定要去学一学,这些Linux命令不会真的可能会让面试直接失败。
计算机网络
好的,继续回来,既然Linux这块什么都不会,那问问其它的吧。
我:问点计算机网络,三次握手和四次挥手说一下
他:三次握手就是建立了连接,发送了三次,四次挥手就是断开连接。
我:能具体些吗?说一下状态,连接时候发送的SYN值的情况?
他:这个不知道。
这里和大家说的是,三次握手和四次挥手真的是面试必考的了,过程一定要熟悉,能在纸上完完全全的画出来的那种程度
我:为啥要三次握手不是两次握手和四次握手?他:四次握手成本高,没必要,两次握手不了解。
嗯,这里之前有写过文章,这篇,【漫画】TCP连接为什么是三次握手,而不是两次握手,也不是四次握手?
我:状态码3XX、4XX、5XX
他:不了解。。。
我:OSI七层说一下
他:七层不了解。。。。
操作系统
这块问了进场和线程的区别,同步异步的区别,都回答得不错,问了阻塞和非阻塞,没回答上。
数据库
问了ACID,这个竟然不知道,问了索引是什么,也不知道。。。。
问完计算机基础以后,感觉他计算机基础这块掌握的太差了。