回顾这两个月的面试总结,不断的试错不断地坚持!!你也可以的

从四月底开始复习,然后边面试边复习,总结,终于喜得BAT、TMD其中两家的offer,果然对于刚毕业不到一年经验的我们来说,社招还是有点残酷的,一次次的失败,还要不断复习不断面试,其中过程从四月底到六月底差不多两月,每天晚上学习到一点,早上七点半起来在学习一个小时半然后去公司上班,所以我自己坚信,肯定会有有所回报的,所以不断努力下去,面试过程中可能是我再一年当中进步最大的时候,疯狂的学习,不断的反思,最终的成功,也让我明白了自己有多菜,我深深的知道,这个只是起点,以后的路还要继续,更加努力才行!! 

  以下就是自己面试题的分享,希望和大家一起进步,其实也有记得不完整的部分,希望大家体谅一下

360奇安(本公司) 天擎部门面试:

 问题所在:
   1、自己项目准备的不充足,以至于被问倒,对于自己做的事情申述不够清楚,没有多方向思考问题,比如php导出,如果存在把内存打爆,怎么处理的,还有项目架构图理解的不到位。
   2、自己的知识点复习不到位,在两个知识点被问到 redis的sentinel上投票选举的问题,以及脑裂问题怎么处理。
   问题:1、redis的sentinel上投票选举的问题 raft算法
         2、脑裂问题怎么处理
         3、php导出,如果存在把内存打爆,怎么处理的
         4、你觉得PHP相对比JAVA或者GO有什么异同
         5、说说你在项目上有什么出色的表现? 我的说是我用时间切分进行算法上数据的调优  
         6、对于你们这个架构你觉得还有什么可以优化的  
         7、redis单线程结构有什么优势?有什么问题?  主要优势单线程,避免线程切换产生静态消耗,缺点是容易阻塞,虽然redis使用io复用epoll和输入缓冲区把命令按照队列先进先出输入等等
         8、你觉得针对redis这些缺点那些命令在redis上不可使用? 比如keys、hgetall等等这些命令 建议用scan等等 这方面阐述
         9、你觉得为什么项目中没有用mysql而用了es,redis在这里到底起到了什么作用?因为架构上这里理解不清楚,最后回答自己都觉得有漏洞了
         10、你觉得redis什么算有用? 有用? 是说存进去了还是说命中缓存?最后把缓存命中率是什么说了一遍
         11、看你上面写的开始学习go,你说说GO这边组合模式用PHP是怎么实现的? 组合....我都没学到
         12、如果产品这里在你导出大文件的情况下,太占资源,你该怎么办? 断点续传

深信服
 1 如果打开页面慢的话,怎么排查 
 2 怎么实现商城的商品推荐系统 
 3 sql语句 求一个成绩表中分数超过60的人的科目 
 4 innodb和myisam有什么区别 
 5 反转字符串
 6 php的date参数
 7 mysql的注入,怎么处理
 8 平常在公司都处理什么工作的
 9 一个sql语句不使用大于小于号中确定范围[ 60,80]  
 11 include和require区别
 12 ===和==区别
 13 date函数怎么插入上周时间

作业帮:
 1、三次握手、四次挥手,为什么time_wait,2MSL具体多长时间
 2、B+树和B树,联合索引等原理
 3、自己项目数据库表是怎么样子的
 4、一般项目PHP起几个进程
 5、项目上线后有几个PHP服务器,单服务器出故障怎么处理   计算、存储、业务
 6、网站打开慢了,你自己怎么处理
 7、WAF有几台机器
 8、你这个千万级别数据怎么处理的,分库分表?
 9、PHP弱语言类型怎么实现的
 10、PHP和JAVA区别
 11、你们这边redis集群是怎么样子的
 12、怎么查看CPU负载,怎么查看一个客户下有多少进程
 13、怎么将Kafka数据导入数据库,如果防止重复消费,以及如果防止数据不丢失,redis分布式锁和redlock以及zokkerper锁的实现区别,优点是什么
  总结一下:狂怼项目,对项目中细节都问的特别细,简称深入灵魂的拷问

顺丰
一面:
 1、狂怼项目,然后问一些项目相关的知识,比如自己双写不一致问题,是写频繁还是读频繁,如果写频繁为什么还需要缓存,如果我要做的就是要修改数据库然后修改redis,怎么解决不一致问题。我的回答是redis分布式锁,然后讨论分布式锁以及redlock锁等等
 2、http和https区别,非对称加密的过程
 3、mysql的悲观锁和乐观锁区别和应用,ABA问题的解决
 4、mysql索引的底层B+树,说说为什么使用B+树,跟红黑树有什么去呗
 5、事务的可重复读幻读是什么情况,怎么解决幻读
 6、http的一些字段,就你知道的回答一些
 7、三次握手和四次挥手、为什么需要三次握手
二面:
 1、http和https的区别,CA证书的优缺点,https抓包的时候出现的是什么,https防护的是什么
 2、apache和nginx的区别
 3、nginx的epoll模型的介绍以及io多路复用模型
 4、狂怼项目
 5、算法题,快排和一个变种的归并

今日头条
 一面:
 1、说说你的项目架构图以及数据走向
 2、PHP源码的数组的排序是在底层源码哪里体现的。
 3、PHP的垃圾回收机制
 4、状态码 499、502、504这些是在什么场景出现的,你有在实际项目中看到吗
 5、PHP如果一个页面超时,怎么查看是哪一个接口超时的。这里查看慢查询日志
 6、PHP的FPM进程管理器的三种管理模式都有什么
 7、比如你的服务器,一个小时前的cpu占用率到达百分之百,现在恢复正常,你怎么排查出来之前是什么原理导致的(这个可以看nginx的日志)
 8、mysql的索引底层,以及覆盖索引和普通索引的区别,你平常怎么看你的SQL有没有使用到索引(我说的explain执行计划),如果使用了覆盖索引,在执行计划上面那个字段会体现,显示的是什么
 9、redis的缓存穿透,布隆过滤器是怎么设计的
 
滴滴
 一面:
 1、两个手写算法题,一个复杂链表的翻转,一个字符串累加和
 2、php的hashtable
 3、foreach为什么比for循环快
 4、php的fpm进程管理器的三种模式,优缺点是什么
 5、php fpm进程master进程和worker进程分别的责任是什么
 6、php常用的运行模式有哪些,fpm和cli运行生命周期是什么和fpm模式中在进行fcgi-accept-request中如何解决惊群现象的,你知道nginx怎么解决惊群现象的,区别呢?
 7、redis数据结构是哪些,然后问我有序集合的底层,跳表的实现,时间复杂度以及如何加一个数据
 8、redis字典的底层hashtable,以及和php的数组底层hashtable对比,以及redis的rehash过程,以及优化渐变式rehash
 9、mysql索引底层数据结构,为什么使用b+树不用b树
 10、mysql的数据页空洞是怎么造成的,如果解决,索引是局部还是全局的
 11、mysql事务都有什么,以及幻读因为什么造成的
 你有什么要问我的
二面
 1、一个变种的纸牌算法(因为之前不知道,自己推,解出来将近半个小时)
 2、画出项目架构图,以及数据流向,然后怼项目
 3、进程和线程区别,什么时候用多进程什么时候用多线程
 4、mysql索引底层数据结构,以及redis的hashtable和建遍式rehash过程
 5、mysql的锁都有什么,怎么使用的,怎么结果mysql的可重复读的幻读,MyISAM和innodb区别,还有innodb的crash-safe,以及redo log 和binlog的2pc提交方式,MVCC的实现原理,一致性视图和undo log
 6、你的领导怎么评价你、你的同事怎么评价你、你自己怎么评价你自己、有什么优缺点、短期的目标计划呢、怎么改进自己的优缺点   
 
腾讯:
 一面:
    1、怼项目,然后根据CAP理论设计出比当前解决方案更好的,如何架构
    2、你的PHP是怎么做安全处理的,比如SQL注入、xss、csrf
    3、项目开发怎么迅捷
    4、设计模式的使用
    5、mysql如果发生了抖动,怎么排查问题
    6、你能说一下nginx的日志能排查些出什么问题 
    7、你的以后目标是什么,如何持续学习,你认为的架构师是什么样子的
 二面:
    1、怼项目
    2、设计一个限流的算法
    3、平常redis用的多的数据结构是什么,跳表实现,怎么维护索引,当时我说是一个简单的二分,手写二分算法,并且时间复杂度是怎么计算出来的  (2的k次方等于n  k等于logn)
    4、设计模式用了哪些,手写出来
    5、mysql的索引底层,还有explain每个字段的介绍,以及type类型都有哪些,分别都代表什么意思
    6、php的话平常如果碰到不会的函数,你是怎么解决的?
    7、你有什么要问我的

发布了83 篇原创文章 · 获赞 87 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/ligupeng7929/article/details/94588578