2017年9月11日 14:00开始面试
总体来说,面试的难度偏难,先梳理一下面试的知识点(可能不够全面,想到哪写到哪)
一面:
1、简述MVC。(把MVC的流程要说清楚)
2、ThinkPHP缓存原理(我当时把ThinkPHP缓存原理源码的实现逻辑说了一遍)
3、面向对象的三大特性:封装、继承、多态。(分别举例解释)
4、给你一个文件data,将data内的内容全部放在名称为error的文件里面。写出具体的实现思路?
我当时给出了两种方案(1、2):
1、利用fopen()系列函数;
2、利用file_get_contents()、file_put_contents();
3(面试官给出的)、file()
5、简述堆排序的过程。
6、冒泡排序算法的优化。
7、单例设计模式(考虑禁用new)。
8、const、static、final的区别。
9、数据库SQL的优化技巧。
二面:一看就是技术leader。
1、简述在学校做了什么?
2、聊项目(这个差点扛不住,面试官人比较好,比较善于引导)
简历上写的项目,对项目的核心逻辑进行描述。然后面试官会由浅入深的来问。具体问的哪些东西我记不太清了,问的点大致相同,都是针对项目的业务场景进行深层剖析,找出问题所在,让你给出解决方案。很爽。
3、聊架构。
数据库的读写分离的应用场景。
数据的一致性解决方案。
4、聊算法。
给你一个数组,前面是从下到大的排序,后面也是从小到大的排序,中间出现断点。
5 6 7 1 2 3 4 5
尽可能高效的查找其中一个元素。(这个可以做到 logn 级别的)
整个面试过程大约持续了3个小时,学到的东西很多。
过了大约4天,被通知通过了面试。
9月20日入职。
网友评论