二月、三月校招面试复盘总结(一)

前言

春招已经开始了一个月之久,没有想到金三银四的黄金时期自己毫无面试准备的心态,结果也是第一个月一个Offer都没拿到,感觉自己还是得准备分成几个博客好好复盘一下,同时也调整一下心态(这将近一个月的时间里面试了金山软件、神州数码和海康威视)

金山软件后端开发

金山软件后端开发是我第一次经历正式的技术面试,也是我最阴暗难以忘怀的一次面试,感觉自己70%左右都答不上来,悲惨告终,但是也清楚了客户端开发和服务器端开发具体有哪些区别,以及面试相应的难度(对自己技术没有自信又不想找测试需求岗可以试试客户端开发,服务器端开发好难!)

HR面
金山软件是我投递的企业里面为数不多的优先HR面再技术面的公司,现在只感觉很对不起对我那么热情的HR,只能说我的技术真的经不起考验,555
由于这次金山软件招聘主要针对的是游戏开发,整个面试过程感觉HR最想了解的是自己对游戏开发有没有兴趣以及会不会因为考研、考公或者毕设等原因不能按时到岗
整个面试过程中印象比较深刻的几个问题是:
1.生活中对你影响最大的人
2.假如在实习期间拿到了一份别的比较心动的Offer,会怎么处理

技术面面试过程:
技术面开局是自我介绍,不同于HR面我会提及一些校园的志愿和学生工作经历,技术面主要是说项目经历,但是由于我没有准备好,其实说到后面自己已经不知道在说啥了,反正感觉自己的自我介绍就已经很减分了。
1.堆和栈有哪些区别?

可能用面经的一个简单问题做个开头,我简单说了一下堆是程序员手动分配释放,栈是编译器自动分配释放,以及new/delete和malloc/free和二者数据结构不同,但是后来一想可能真的答得很浅显

参考:https://blog.csdn.net/K346K346/article/details/80849966
2.那你有遇到过堆溢出和栈溢出吗?

准备面经的时候看到过内存泄漏,但是印象中堆溢出和栈溢出跟内存泄漏内存溢出不是一个东西,害怕自己答得太肤浅就几乎敷衍过去了

参考:https://blog.csdn.net/qq_45089570/article/details/91963494
栈溢出->溢出缓冲区(C没有检查机制确保不超出缓冲区大小)
堆溢出->常在递归调用中出现,由于过多函数调用导致无法容纳调用的返回地址。
3.一个程序有哪些section,从低到高介绍一下

刚好撞上自己背的:https://www.nowcoder.com/tutorial/93/8f38bec08f974de192275e5366d8ae24

由于我项目里为了体现我对计算机网络有些了解,写了我大二期间用MFC做的一个跨局域网聊天室。所以面试官就盯着这个开始问了:
4.多个客户端连接服务器端怎么解决阻塞?

感觉这个题自己答得非常糟糕,没有get到面试官想听到什么,并且由于是两年前的项目,自己的印象并不深刻。
当时自己是这么说的,为了实现多个客户端和服务器端连接,对于每个连接服务器端的客户端都会创建一个线程,并把客户端的ip信息保存在一个集合中,通过并发的方式调用每个客户端的recv函数判断该客户端是否有向聊天室发送信息,若无则关闭流。(同时recv函数也可以判断连接是否中断)

参考:https://blog.csdn.net/bb_huiyi/article/details/53188017
5.线程间通信有哪几种方式,自己用过哪些方式?

这一题几乎自己没有答,确实第一次面试没有准备到

使用volatile关键字、wait()和notify(),感觉这两个是比较常用的
参考:https://blog.csdn.net/qq_44883763/article/details/109427362
看我线程通信不是很了解,面试官就换了一个角度继续问我有关这个项目的问题
6.TCP、UDP、IP协议以及HTTP在哪一层,OSI七层是哪七层,HTTP和HTTPS两个协议能简单介绍一下吗?

TCP、UDP在传输层
IP在网络层
HTTP在应用层
七层模型从上到下是:应用、表示、会话、传输、网络、数据链路、物理
两个协议由于没准备到就没答
后来经过准备可以简单说一下:
HTTPS协议是超文本传输协议,主要用于提供发布接收HTML页面的方法,主要过程是:1.域名解析(IP地址和端口号)2.建立连接(3次握手TCP)3.向服务器发起http请求 4.服务器处理请求,渲染页面给用户 5.四次握手断开连接
HTTPS协议即安全超文本传输协议,采用了HTTP协议和TLS/SSL加密,由于HTTP存在信息窃听的奉献,通过TLS/SSL协议具有的身份验证信息加密功能使安全性提高

项目提问告一段落后回到面经提问:
7.可以说一下数据库的内联接和外联接吗?

自己只说了内联接是普通联接运算,外联接分为左联接和右联接,连完整外部联接都没说到
1)LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

8.对锁了解吗,用过哪些锁?

直接pass了这个问题,hhh

9.Redis了解和使用过吗?

只答了是非关系型数据库,后来发现自己说说缓存层,击穿也比直接摆烂好 555

10.可以说说数据库四种隔离级别吗?

答了Read Uncommitted、Read Committed、Repeatable Read和Serializable,然后又被深入问了分别解决了哪些问题,没答上来
在这里插入图片描述
什么是脏读、不可重复读和幻读如果了解答得上来肯定是加分

11.做过索引优化吗?

没有

12.现场写代码实现String类

没准备几乎放弃,然后面试官退了一步问String中的拷贝构造函数和=调用了什么函数,又是不会

参考:https://blog.csdn.net/shenya1314/article/details/80547156

还问了事务的特性,什么是事务等问题,但是印象深刻的问题就是这些,反正第一次面试也没准备好,看同学的客户端岗位开发的问题比较基础以为自己的知识储备足以应付,没想到最后却栽得太狠。

最后想说金山的面试是自己春招面试的开始,也很大程度上打击了自己的自信心,好像这次面试后摆烂了整整十天,这期间也错过了很多很好的企业,找工作真的需要良好的心态(厚脸皮)以及自己把握面试的话语权(让面试官跟着自己走),不要让面试变成单纯的面试官考你(一般不会有好结果)

面试结果:HR面通过+技术面淘汰

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值