本来约的今天下午2点一面,一面完面试官让我直接等二面,然后就连着面了,二面完面试官又让我等着直接三面,然后等了一会儿说三面面试官不在,下次约时间。。。。看来是打算三面连着来,真的难顶
我是学java的,然后两次面试一点java都没问,有点难受哈哈
一面(40min):
1. 自我介绍
2. 进程和线程的区别
3. CPU调度算法?
4. 讲讲优先级调度算法的具体实现方式?(不会)
5. 线程优先级怎么评价?
6. 进程上下文包含哪些部分?
7. 进程切换和线程切换的区别,为什么线程切换开销更小?
8. select,poll,epoll
9. 从epoll聊到了中断,问中断的概念
10. 从中断聊到用户态和内核态的区别
11. 哪些系统调用会从用户态切换到内核态,什么时候会显示切换状态(只想起来read和write,面试官笑了哈哈)
12. MySQL一次查询的过程
13. 会不会存在没有索引的情况
14. MySQL优化(sql语句,索引,缓存,集群读写分离)
15. 最左匹配原则
16. MySQL事务和隔离级别
17. redo log的两阶段提交过程
18. 讲讲常用的设计模式(就讲了工厂,单例,代理)
19. 代码题1:合并两个排序数组(这面试官,爱了爱了)
20. 代码题2:数组的最大子序列和
二面(70min):
1. 二叉树,AVL树,红黑树
2. Java和Python区别是什么,各自的优缺点,有什么让你觉得很舒服的特点
3. 动态类型语言和静态类型语言特点(不了解,答得不好)
4. OOP的理解
5. 是不是静态类型语言都适合做OOP(不太懂)
5. TCP和UDP的特点,各自应用在哪儿
6. 滑动窗口,延迟确认机制,为什么要延迟确认
7. 拥塞控制的两种算法,重传机制
8. 四次挥手,两端各自的状态
9. Https请求的整个过程
10. 为什么要用对称加密传输数据,为什么对称加密比非对称加密快
11. MySQL和Redis有什么区别(居然没讲Redis是内存数据库,大意了,被面试官提醒了)
12. 为什么Redis单线程性能这么好?
13. 编码优秀实践原则,kiss原则,solid原则(不懂)
14. 个人博客怎么做的,数据库怎么设计(没有项目,个人博客刚开始做。。答不上来)
15. text和varchar的区别
16. 如何防止别人用curl直接调用接口(不懂)
17. 日志级别,什么场景用什么级别(不是很了解)
18. 分布式,CAP理论,微服务 (讲了讲概念)
19. 代码题:LRU
更新
三面,17号下午(40min):
首先简单聊了下天,聊人生,一度以为是hr面。。。
问我项目,我说没做过
然后整个面试就是做两个题目:
1. 写一个可以自动扩容的数组,我问要不要考虑线程安全,面试官说越完善越好,就按CopyOnWriteArrayList的思想写了个,但是每次扩容都扩的2倍。然后扩容拿锁那里有点小问题,就跟单例一样的,面试管提醒了一下,进去要再检查一下有没有越界
2. 设计一个学生选课系统的数据库,问要哪些表,各个表放些什么,然后写sql。。sql写的不是很好,写的几个表全连接的,让我用子查询优化,当时没有写出来,子查询还是写了个笛卡尔积。。表现得不是很好,题目也不难,但是当时懵逼了
两个题目做完感觉没过多久呢,面试官问我有什么想问的,有点懵逼,一看时间都过去半个多小时了
我问了下面试官为什么三轮面试都没问java,面试官说大家简历上写了java的都会那一套,jvm,gc大家都知道,没什么好问的,问那个有点看运气,看过就知道,没看过就不知道。。。
然后就结束了,等消息,感觉希望不大,二面三面表现得不是很好,建议还是应该有个项目支撑一下好点
18号下午收到offer了!开心
全部评论
(9) 回帖