最近一段时间面试了几家互联网公司,陆续通过了阿里、头条、美团,滴滴,京东的面试,基本上面试的公司都通过了,所以在这里想分享一些自己面试的经验给大家,希望能帮助大家拿到心仪的offer
1.你的简历就是你给面试官提供的考点,简历上的东西必须自己Hold住,万一自己写的东西被问住了,会很尴尬,给面试官留下的印象也不好,所以就是会啥写啥
2.技术栈最好不要写精通,你敢写面试官就敢问,被问倒了很尴尬的,写熟悉,了解就行
我这里强烈建议找人内推,这样简历通过的概率大些,如果找不到,可以试试脉脉,我就是从脉脉投的简历,把状态改成寻找机会就行,会有很多人找你的
这个该刷还是得刷,别偷懒,我个人感觉刷完下面几个已经够了,大家可以根据自己的基础情况选择
我复习主要以看书为主,推荐一些我看的书籍和资料,有时间的话尽量看的细一点,多看几遍,没时间的话就挑重点看
社招面试项目很重要,不光是你项目本身的技术复杂度,还有业务复杂度,你本身在项目中担任的什么角色,遇到过什么问题,瓶颈在哪,怎么解决的,这几个问题是非常重要的,很多公司到最后基本上都是围绕着你的项目在问,给面试官讲明白你的项目是必须具备的能力
1.你项目为什么这么设计,你这样设计有什么好处,解决了什么问题,会产生什么问题,还有什么可以优化的
3.项目遇到的难点,技术挑战,你是怎么解决的,为什么用这种方式解决,还有更好的方式么
1.面试得自信且谦虚,声音自信,面试表现谦虚,得给面试官一种你啥都会,很稳的感觉(实际内心很慌),然后语言表达流畅,吐字清晰,回答问题也要有逻辑性,不能支支吾吾半天说不明白,面试官都听不懂,这就很尴尬了,这个可以自己多练习一下
2.面试本质是一个自我优势展示的过程,不要让面试官问一句自己回答一句,主动抛出一些可能的点让面试官来主动问你,还有就是不会的问题就说不会,这个没关系的,千万别瞎说
3.不要眼高手低,不少小伙伴看面经觉得自己啥都会,但是会与面试过程中能清晰有层次的说出来是两回事,费曼学习法可以了解一下,举个例子:比如sychronized的原理,能不能说出点面试官眼前一亮的东西,这还是不容易的,其实面试主要是证明你比别人更有技术的深度,广度,不然都是背八股文,那面试官看不出你有什么不一样的,这个面试过的概率就大大降低了
个人建议,面试没准备好,不要随便面试,一些大厂都会有面试评价记录,太多差评影响以后的面试,同时面完之后要多总结,复盘,整理知识点,查漏补缺
阿里的面试更倾向于实用性,基本是从各种场景出发,来给你一个场景,让你来解决实际的问题,那么在解决问题的过程中,对于各种知识的应用就是亮点了
面试也有不少的运气成分的,毕竟每个面试官的侧重点可能不一样,大家放平心态就好
学习要形成自己的知识体系,不要天天盯着别人的面经(当然,我的面经可以看,哈哈)做碎片化学习,面经只是辅助作用,查漏补缺的,一旦你的知识体系有了,很多问题都能举一反三,这时候面试就很稳了
注意:有些面试的题目比较少,因为有些面试题因为会被多个公司重复问 ,就不重复写了
6.zookeeper的基本原理,数据模型,znode类型,应用场景有哪些
因为之前的部门一面通过后,该部门没有hc了,就给我推荐到其他部门了,大厂hc还是挺紧张的
1.redis集群,为什么是16384,哨兵模式,选举过程,会有脑裂问题么,raft算法,优缺点
2.jvm类加载器,自定义类加载器,双亲委派机制,优缺点,tomcat类加载机制
4.cms收集器过程,g1收集器原理,怎么实现可预测停顿的,region的大小,结构
6.锁升级过程,轻量锁可以变成偏向锁么,偏向锁可以变成无锁么,自旋锁,对象头结构,锁状态变化过程
7.kafka重平衡,重启服务怎么保证kafka不发生重平衡,有什么方案
8.怎么理解分布式和微服务,为什么要拆分服务,会产生什么问题,怎么解决这些问题
9.你们用的什么消息中间件,kafka,为什么用kafka,高吞吐量,怎么保证高吞吐量的,设计模型,零拷贝
算法1:给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N,请实现arr的排序,但是不要把下标0∼N−1位置上的数通过直接赋值的方式替换成1∼N
3.redis有序集合怎么实现的,跳表是什么,往跳表添加一个元素的过程,添加和获取元素,获取分数的时间复杂度,为什么不用红黑树,红黑树有什么特点,左旋右旋操作
6.对于高并发怎么看,怎么算高并发,你们项目有么,如果有会产生什么问题,怎么解决
算法:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少,这个路径的开始节点和结束节点可以是二叉树中的任意节点
1.synchronized原理,怎么保证可重入性,可见性,抛异常怎么办,和lock锁的区别,2个线程同时访问synchronized的静态方法,2个线程同时访问一个synchronized静态方法和非静态方法,分别怎么进行
3.你了解那些锁,乐观锁和悲观锁,为什么读要加锁,乐观锁为什么适合读场景,写场景不行么,会有什么问题,cas原理
5.一致性hash原理,解决什么问题,数据倾斜,为什么是2的32次方,20次方可以么
6.redis缓存穿透,布隆过滤器,怎么使用,有什么问题,怎么解决这个问题
7.redis分布式锁,过期时间怎么定的,如果一个业务执行时间比较长,锁过期了怎么办,怎么保证释放锁的一个原子性,你们redis是集群的么,讲讲redlock算法
8.mysql事务,acid,实现原理,脏读,脏写,隔离级别,实现原理,mvcc,幻读,间隙锁原理,什么情况下会使用间隙锁,锁失效怎么办,其他锁了解么,行锁,表锁
9.mysql索引左前缀原理,怎么优化,哪些字段适合建索引,索引有什么优缺点
10.线上遇到过慢查询么,怎么定位,优化的,explain,using filesort表示什么意思,产生原因,怎么解决
11.怎么理解幂等性,有遇到过实际场景么,怎么解决的,为什么用redis,redis过期了或者数据没了怎么办
1.hashmap原理,put和get,为什么是8转红黑树,红黑树节点添加过程,什么时候扩容,为什么是0.75,扩容步骤,为什么分高低位,1.7到1.8有什么优化,hash算法做了哪些优化,头插法有什么问题,为什么线.arraylist原理,为什么数组加transient,add和get时间复杂度,扩容原理,和linkedlist区别,原理,分别在什么场景下使用,为什么
4.reentrantlock的实现原理,加锁和释放锁的一个过程,aqs,公平和非公平,可重入,可中断怎么实现的
6.threadlocal用过么,什么场景下使用的,原理,hash冲突怎么办,扩容实现,会有线程安全问题么,内存泄漏产生原因,怎么解决
7.垃圾收集算法,各有什么优缺点,gc roots有哪些,什么情况下会发生full gc
8.了解哪些设计模式,工厂,策略,装饰者,桥接模式讲讲,单例模式会有什么问题
9.对spring aop的理解,解决什么问题,实现原理,jdk动态代理,cglib区别,优缺点,怎么实现方法的调用的
11.mysql聚簇索引,覆盖索引,底层结构,主键索引,没有主键怎么办,会自己生成主键为什么还要自定义主键,自动生成的主键有什么问题
12.redis线程模型,单线程有什么优缺点,为什么单线程能保证高性能,什么情况下会出现阻塞,怎么解决
13.kafka是怎么保证高可用性的,讲讲它的设计架构,为什么读写都在主分区,这样有什么优缺点
4.分库分表做过么,怎么做到不停机扩容,双写数据丢失怎么办,跨库事务怎么解决
2.new Object[100]对象大小,它的一个对象引用大小,对象头结构
4.怎么保证redis和mysql的一致性,redis网络原因执行超时了会执行成功么,那不成功怎么保证数据一致性
5.redis持久化过程,aof持久化会出现阻塞么,一般什么情况下使用rdb,aof
6.线上有遇到大流量的情况么,产生了什么问题,为什么数据库2000qps就撑不住了,有想过原因么,你们当时怎么处理的
1.怎么理解用户态,内核态,为什么要分级别,有几种转换的方式,怎么转换的,转换失败怎么办
3.你们用redis么,用来做什么,什么场景使用的,遇到过什么问题,怎么解决的
5.你平时开发中怎么解决问题,假如现在线上有一个告警,你的解决思路,过程
算是给我2次选择机会了,面了几面(2面只用了11分钟,哈哈),主要问项目了
6.eureka原理,强一致性么,为什么,怎么保证强一致性,多级缓存怎么保证一致性,eureka集群,宕机了服务还能调用么
7.hystrix原理,半开状态知道么,具体的一个转换过程,它的隔离是怎么实现的
8.zookeeper一致性保证,zab协议原理,半数原则如果查询到另外一半呢,那zookeeper属于哪种一致性,强一致性么,还是最终一致性
3.fork函数,父子进程的区别,孤儿进程,僵尸进程会有什么问题,进程有哪些状态,进程间怎么同步,通信,消息队列,管道怎么实现的,进程调度算法,各有什么优缺点
5.自旋锁,线程上下文切换的开销具体是什么,中断,有哪些中断,用户态和内核态切换过程
6.一张大表怎么更改表的数据结构,字段,用alter会有什么问题,怎么解决呢,有什么好的方案,双写的话会有什么问题,还有其他方案么
7.redis管道用过么,用来做什么,它的原理是,保证原子性么,和事务的区别,redis事务保证原子性么
算法:一个环上有10个点,编号为0-9,从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,求:经过n步又回到0点有多少种不同的走法
5.spring的循环依赖,怎么解决的,为什么需要加个三级缓存,二级不行么
8.怎么统计一亿用户的日活,hyperloglog有什么缺点,bitmap不行么
2.垃圾收集器,cms垃圾收集过程,为什么停顿时间短,有什么缺点,concurrent mode failure怎么办,内存碎片怎么解决,为什么不用标记整理法
3.线程池原理,核心参数,线程数设置,参数动态调整后变化过程,Tomcat线程池原理,常用的线程池,你们一般使用哪种,为什么,会有什么问题,线程抛异常怎么办,阻塞队列原理
4.做过分库分表么,为什么要分库分表,会有什么问题,多少数据适合分库分表,跨库,聚合操作怎么做
5.一般你们怎么建mysql索引,基于什么原则,遇到过索引失效的情况么,怎么优化的
6.jvm内存结构,堆结构,栈结构,a+b操作数栈过程,方法返回地址什么时候回收,程序计数器什么时候为空
7.redis实现分布式锁,还有其他方式么,zookeeper怎么实现,各有什么有缺点,你们为什么用redis实现
4.什么对象会进入老年代,eden和survivor比例可以调整么,参数是什么,调整后会有什么问题
5.微信朋友圈设计,点赞,评论功能实现,拉黑呢,redis数据没了怎么办
算法:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
点击免费领取我的学习笔记:学习视频+大厂面试真题+微服务+MySQL+Java+Redis+算法+网络+Linux+Spring全家桶+JVM+学习笔记图
- 本文固定链接: http://douyinkuaishou.cc/?id=29949
- 转载请注明: admin 于 抖音快手 发表
《本文》有 0 条评论