一面(一个小时左右)
- 算法:写冒泡排序,问如何优化,简单讲了快排和堆排序的原理
- 数据库:解释左连接
- 数据库第一第二第三范式,数据库死锁
- linux:怎么查看内存;怎么查看进程,ps命令一般在什么情况下使用。
- 什么是幂等操作?怎么解决幂等操作
- 乐观锁和分布式锁是什么,分别对应的场景是什么?
- 了解Web层开发?数据库索引了解么?聚簇索引,非聚簇索引?索引分类?
- 了解分布式?高可用?如何保证节点集群的同步?了解过么?
- redis的复制,持久化,分布式锁,队列支持
- 设计模式里面,单例模式?实现单例模式的双重校验。
二面(70分钟左右)
- 算法:实现一致性hash
- 如何保证数据库并发时没有问题?如先查询,后更改,或者同一时间用户查询用户分期单记逾期,同时用户执行还款,到底用户逾期成功吗,换的钱是多少?
- redis的数据量,如何做的备份恢复?
- 你们的股票行情数据怎么做正确性校验,加入db以及redis都出错了呢?
- mysql数据库的分库分表,有什么中间件?,主键策略是什么
- 大规模的数据量的分库分表,动态数据源怎么做查询(一个业务需要查询多个数据源的信息,怎么做到找到对应的数据源)?
- epoll函数怎么理解?epoll函数在别的哪些地方有用到?
- 如何解决redis的缓存穿透问题?怎么解决redis的缓存雪崩问题?
- Git用的多吗?git和SVN有什么区别?为什么要进行add、commit、push三步?
- linux怎么对CPU分配?
三面(一个小时)
- 一致性hash底层用的什么数据结构
- 手撕:有时间区间,判断昨天送外卖的峰值。(这个题做了快三十分钟,主要是外卖订单可能是前天的,昨天的或者今天的)
- web方面的应用多么,问了问HTTP?
- 智力题:一天24小时,时针和分针会重合几次?
- 介绍一下自己的项目。(疯狂怼项目了,连实验室的都问了,楼主搞通信的,面试官让我用白话给面试官讲了一些技术点。)
- 类似于百度地图,如何求A地到B地的路径,刚开始被面试官套路了,用各种分类讨论了半天,最后才发觉面试官想问的是有向图求最短路径?说了一下方法是什么?迪杰斯特拉算法作用,复杂度?
- 参加过社团吗?怎样能让合作更顺畅,遇到矛盾怎么处理?在沟通过程中出现过什么问题?怎么解决的?举一个具体的例子。
- 对未来职业发展方向的规划和想法 矛盾
- 有什么问题吗?
最后的内容
在开头跟大家分享的时候我就说,面试我是没有做好准备的,全靠平时的积累,确实有点临时抱佛脚了,以至于我自己还是挺懊恼的。(准备好了或许可以拿个40k,没做准备只有30k+,你们懂那种感觉吗)
如何准备面试?
1、前期铺垫(技术沉积)
程序员面试其实是对于技术的一次摸底考试,你的技术牛逼,那你就是大爷。大厂对于技术的要求主要体现在:基础,原理,深入研究源码,广度,实战五个方面,也只有将原理理论结合实战才能把技术点吃透。
下面是我会看的一些资料笔记,希望能帮助大家由浅入深,由点到面的学习Java,应对大厂面试官的灵魂追问,有需要的话就戳这里:蓝色传送门打包带走吧。
这部分内容过多,小编只贴出部分内容展示给大家了,见谅见谅!
- Java程序员必看《Java开发核心笔记(华山版)》
- Redis学习笔记
- Java并发编程学习笔记
四部分,详细拆分并发编程——并发编程+模式篇+应用篇+原理篇
- Java程序员必看书籍《深入理解 ava虚拟机第3版》(pdf版)
- 大厂面试必问——数据结构与算法汇集笔记
其他像Spring,SpringBoot,SpringCloud,SpringCloudAlibaba,Dubbo,Zookeeper,Kafka,RocketMQ,RabbitMQ,Netty,MySQL,Docker,K8s等等我都整理好,这里就不一一展示了。
2、狂刷面试题
技术主要是体现在平时的积累实用,面试前准备两个月的时间再好好复习一遍,紧接着就可以刷面试题了,下面这些面试题都是小编精心整理的,贴给大家看看。
①大厂高频45道笔试题(智商题)
②BAT大厂面试总结(部分内容截图)
③面试总结
3、结合实际,修改简历
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
以上分享,希望大家可以在金三银四跳槽季找到一份好工作,但千万也记住,技术一定是平时工作种累计或者自学(或报班跟着老师学)通过实战累计的,千万不要临时抱佛脚。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
时抱佛脚。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
以上文章中,提及到的所有的笔记内容、面试题等资料,均可以免费分享给大家学习,有需要的话就戳这里打包带走吧。