实习面经

Created at 2019-04-14 Updated at 2020-09-28 Category 面试 Tag 面经

地平线

  • 用过什么框架,讲一下 laravel 框架用到的设计模式,依赖注入解决的问题
  • 设计一个存储几千份邮件的方案,答案是设计一个哈希表
  • 问有没有了解布隆过滤器
  • 手写单例模式
  • 手写一个排序算法
  • 数据库查询优化,索引方面的问题
  • 数据库的事务如何实现
  • Redis 有哪些数据结构,应用场景
  • 因为项目里写用到了 Elasticsearch,所以简单问了下用在什么地方,为什么快

小米

准备不足很多没答出来但是面试官放我过了还让我好好加油,说二面面试官是女生不要紧张(虽然并不是女生),挺感动的。后来二面表现不错直接过了但是由于各种原因没有去没,挺遗憾的。

一面

  • 字符串 abcdef 怎么截取后面两位 substr()
  • 查找一个字符串中字符出现的位置 strpos(),如果没有找到,返回值是什么
  • Redis 的基本操作,字符串类型,incr(),说看我用 redis 做了队列,那说说链表的基本操作
  • 给了一个场景(记不清了),叫我说出sql语句,我就答到了连接,然后面试官说要用左连接,效率比较高
  • 项目的商品表怎么设计的
  • 数据库连接 PDO
  • 算法,说思路 二叉树中序遍历 快排 判断链表是否有环

二面

  • 在一个学生信息成绩表查询出单科成绩最高分和最低分
    我说order by score limit 1,面试官说我这样要写两条sql语句,能不能用一条,max,min
  • 说我这个项目查询课表的功能如果人太多的话查不出来怎么办
    我说缓存,用redis。问我缓存到什么数据结构里,我说字符串类型就可以了吧。然后问我有没有用过 zset,说下什么地方用到的,我想了想,说比如用户有发微博的功能,把微博存进去(之前看十八哥的微博项目视频看到了。自己也写了,但是记不太清,就随便说了)。
  • 说一下 web 请求页面的过程
  • TCP三次握手
  • php 如何跟 nginx 交流,cgi,php-fpm,fasicgi
  • php 垃圾回收机制
  • 说说常用的字符串函数,数组函数
  • 说说常用的linux命令
  • 如果系统正在运行,日志文件不断的写,tail 输出会怎么样
    tail -f laravel.log 使用 -f 循环查看文件内容,可以自动刷新日志
  • 看我这个项目用到了laravel框架,说一下开发的时候用到了哪些类
  • 登录功能怎么实现
  • session 和 cookie 的区别,浏览器禁用 cookie,session 还能用吗

腾讯

  • 问项目,订单的实现的过程,订单表的设计(问得很详细,一直问,然而我订单表用到的字段记不太清了,好多重要的都没想起来)
  • 项目大流量怎么优化,缓存。从数据访问层优化,不怎么会(以前看过来着,给忘了)
  • 项目里用到了 elasticsearch,用在什么地方,怎么用的。(又一波作死,对 elasticsearch 不是特别熟)
  • 安全,xss 攻击,csrf 攻击,sql 注入
  • 问项目开发流程,和前端怎么配合的,我提到用了docker,问 dockerfile 是自己写的么,不是。那有没有配置那种一条命令直接启动的,没有。
  • 问项目的 nginx 是我配的么,问了一个场景,就是访问到 jpg,png 还有其他结尾的图片时进行匹配然后做处理,我说了用 location 然后给出详细配置,又问如果访问其他结尾的图片的时候要全部改成 gif 结尾来处理怎么办,我就说了正则替换什么的。。我不知道 nginx 中怎么处理(后来查了下,用 rewrite),然后就问我如果是在 php 中,要怎么进行正则替换。

滴滴

  • 如果两个应用在不同的服务器上怎么通信
    真想打死自己,想不起来怎么答。然后面试官说 api。。这么简单我都想不到,真是想死。
  • RESTFul api 了解吗,特点,状态码
  • 说下单例模式怎么写的,然后说 php 都是单线程的,如果是多线程语言怎么办。emmm,加锁?
  • 开发用到了 git 吧,怎么用的,多人合作 git 冲突怎么解决
  • linux 文件查找的命令有哪些,如果要查看一个日志文件,但是内容很大,怎么查看找到想要的内容
  • 发一百万封邮件如何提高速度
  • 项目相关的问题,异步队列怎么实现

阿里

面试体验最好的一次,虽然是电话面,但是面试官真真正正的让我感受到了那种大佬的气质,态度很温和,然而我真的是太菜了,差得远

  • 数据库有哪些索引, 索引怎么建,联合索引的问题,如果在 abc 三个字段上分别建立索引查询时用到的是哪一个,如果是 ab 和 ac 和 bc 都要用索引,索引怎么建
  • 用 redis 做缓存,如何保证数据是最新的,如果几个人同时更改数据怎么办,数据库的数据更改了没有同步到 redis 里怎么办
    后来自己查的资料:缓存污染 实时更新:MySQL binlog 增量订阅消费+消息队列+处理并把数据更新到 redis
  • 项目难点,怎么分工,设计
  • linux 命令,查看 nginx 查看线程
  • nginx 的特点,为什么用 nginx,和 apache的区别,为什么 nginx 性能更好(答nginx 用的epoll,apache 用的 select),然后又问 select 和 epoll 的区别
  • 近期有什么打算,学什么
    我说自己一直从事后端开发,学下别的语言,比如 go,但是不想学前端,问为什么,我说我比较想专注于一个领域吧,同时学很多可能学不精。。

借贷宝

一面面试官成为了我后来的 leader,挺好的一个人,非常认可我,说我的实力秋招可以进大厂,哈哈哈

一面

  • php 获取昨天的日期
  • 数组去重的函数
  • mysql 联合索引,联合索引的原理
  • 浏览器输入地址后请求的过程,浏览器做了什么
  • tcp 三次握手,三次握手的原因
    关于这个我纠结了很久,我之前就看过这个问题,并且看到的回答是防止失效的报文到达服务器,我仔细的说了两遍,面试官说不对,是因为 tcp 是全双工通信。
  • 算法(只说思路) 链表环的入口节点 二叉树两个子节点寻找最近父节点 数组中重复的数字
  • laravel 框架的原理,用到的设计模式,什么是依赖注入
  • 如何实现类的动态加载
  • 如何实现框架中的路由功能
  • 看什么书

二面

  • 说下 php 底层原理(自己讲,知道多少讲多少)
  • Nginx 配置,upstream 的作用,location,rewrite 的作用
  • MySQL InnoDB 和 MyISAM 的区别,聚簇索引和非聚簇索引,非聚簇索引里如果有多个索引,是一个索引一个文件还是只有一个索引文件
  • 如何实现单点登陆

京东

感觉京东面试官态度不是很好。。

  • 介绍项目
  • api 怎么设计的
  • php 怎么合并两个数组
  • 分割字符串的函数
  • MySQL 外键关联有几种
  • 左连接 右连接 不注明的话是什么连接
  • 场景设计,京东下面有很多 app,app下有很多子模块,子模块要读取配置,怎么设计表
  • linux 怎么文件夹下查找 .php 结尾的文件
    find . -name *.php -ls
  • 怎么在文件夹下查找包含 123 字符的 php 文件
    grep “123” *.php
  • 问我还会啥语言 c++,java
  • c++ 和 c 有啥区别,虚函数是什么,多态是什么
  • c++ 和 java 对比有什么优缺点
  • 垃圾回收机制了解吗

腾讯

  • 将字符串格式的时间转换为标准时间格式
  • 两个表,员工和部门,查询出各个部门薪水最高的
  • 进程和线程的区别
  • wait() 和 sleep() 的区别
  • tcp三次握手四次挥手
  • https 加密的过程
  • 设计模式 工厂模式的作用
  • 项目中队列的用途
  • es 排序怎么做
  • linux 杀死进程的命令 改变文件权限的命令
Site by Cellophane using Hexo & Random

Hide