前言
本来约的今天上周下午2点一面,一面完面试官让我直接等二面,然后就连着面了,二面完面试官又让我等着直接三面,然后等了一会儿说三面面试官不在,下次约时间。。。。看来是打算三面连着来,真的难顶
我是学java的,然后两次面试一点java都没问,有点难受哈哈
前几天去面了HR,然后今天下午收到了入职通知!
一面(40min):
- 自我介绍
- 进程和线程的区别
- CPU调度算法?
- 讲讲优先级调度算法的具体实现方式?(不会)
- 线程优先级怎么评价?
- 进程上下文包含哪些部分?
- 进程切换和线程切换的区别,为什么线程切换开销更小?
- select,poll,epoll
- 从epoll聊到了中断,问中断的概念
- 从中断聊到用户态和内核态的区别
- 哪些系统调用会从用户态切换到内核态,什么时候会显示切换状态(只想起来read和write,面试官笑了哈哈)
- MySQL一次查询的过程
- 会不会存在没有索引的情况
- MySQL优化(sql语句,索引,缓存,集群读写分离)
- 最左匹配原则
- MySQL事务和隔离级别
- redo log的两阶段提交过程
- 讲讲常用的设计模式(就讲了工厂,单例,代理)
- 代码题1:合并两个排序数组(这面试官,爱了爱了)
- 代码题2:数组的最大子序列和
二面(70min):
- 二叉树,AVL树,红黑树
- Java和Python区别是什么,各自的优缺点,有什么让你觉得很舒服的特点
- 动态类型语言和静态类型语言特点(不了解,答得不好)
- OOP的理解
- 是不是静态类型语言都适合做OOP(不太懂)
- TCP和UDP的特点,各自应用在哪儿
- 滑动窗口,延迟确认机制,为什么要延迟确认
- 拥塞控制的两种算法,重传机制
- 四次挥手,两端各自的状态
- Https请求的整个过程
- 为什么要用对称加密传输数据,为什么对称加密比非对称加密快
- MySQL和Redis有什么区别(居然没讲Redis是内存数据库,大意了,被面试官提醒了)
- 为什么Redis单线程性能这么好?
- 编码优秀实践原则,kiss原则,solid原则(不懂)
- 个人博客怎么做的,数据库怎么设计(没有项目,个人博客刚开始做。。答不上来)
- text和varchar的区别
- 如何防止别人用curl直接调用接口(不懂)
- 日志级别,什么场景用什么级别(不是很了解)
- 分布式,CAP理论,微服务 (讲了讲概念)
- 代码题:LRU
三面,17号下午(40min):
首先简单聊了下天,聊人生,一度以为是hr面。。。
问我 项目,我说没做过
然后整个面试就是做两个题目:
- 写一个可以自动扩容的数组,我问要不要考虑线程安全,面试官说越完善越好,就按CopyOnWriteArrayList的思想写了个,但是每次扩容都扩的2倍。然后扩容拿锁那里有点小问题,就跟单例一样的,面试管提醒了一下,进去要再检查一下有没有越界
- 设计一个学生选课系统的数据库,问要哪些表,各个表放些什么,然后写sql。。sql写的不是很好,写的几个表全连接的,让我用子查询优化,当时没有写出来,子查询还是写了个笛卡尔积。。表现得不是很好,题目也不难,但是当时懵逼了
两个题目做完感觉没过多久呢,面试官问我有什么想问的,有点懵逼,一看时间都过去半个多小时了
我问了下面试官为什么三轮面试都没问java,面试官说大家简历上写了java的都会那一套,jvm,gc大家都知道,没什么好问的,问那个有点看运气,看过就知道,没看过就不知道。。。
总结
最后我为大家准备了ava核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!有需要的朋友点这里备注处csdn自行下载即可
作为开发人员来说,不说要求自己成为业内顶尖,但也要保证自己不被市场所淘汰,学习对于程序员来说是最基本的事情。