本文来自作者投稿,作者是是双非院校且非科班的大三学生,以下是他最近的面试总结:
先说下我的面试准备经历,为了保证自己简历有较大一定的概率通过筛选,我在去年11月面试多家公司,去了一家小公司实习到今年3月
但其实用处还是不太大,京东、贝壳、猿辅导等好多大厂在简历筛选挂了我
目前面试过的大厂有阿里、腾讯、字节、美团、网易、shopee;也投过中小厂去练练手,但面试的问题有些水,后面便不投了,有那时间还不如多刷几道算法题;虽然面试的大厂不多,但是还是比较幸运的拿到了腾讯csig、美团支付平台、网易杭州研究院的三个大厂offer
一月我开始刷算法题;整理知识点;和回顾项目;但是我忘记了最重要的网络协议操作系统最重要的知识部分;这也会后面的面试失败留下伏笔
我目前的简历技能模块上重点强调自己对redis、多线程、jvm、MySQL这些知识点有比较熟练的掌握(后面淘宝一面后我被挖底层挖怕了,简历改成了熟悉掌握)
项目模块:准备的项目是两个其实业务层面上比较简单都是比较平常的CRUD,但我的项目亮点是第一个项目是不用ssm框架,自己基于原生的web 去做了开发,大概模拟了三大框架思想进行了工具的封装帮助自己进行开发;以及第二个项目我将redis用在自己的项目,网上学习redis实现消息队列,自己封装了简易RPC框架;这些都算是项目的小亮点;
2月末开始进行的春招,先阿里面试开启春招,整个春招持续2月多,不断的复盘和补漏,这个春招是我技术增长最快的一阵子
下面我展示下经历大厂的面试题,并对一些面试题说下我个人觉得比较好的答题思路
面试思路:面试官抛出一道面试题,需要回答三部分:1.它是什么作用是什么 2.原理是什么 3.在实战中是怎样的(技术选型的考量),如果可以最好举一反三,这样子的涉及跟哪方面的知识有共通之处
阿里淘宝一面
1.redis消息队列你是如何实现的
消息队列是什么,作用是什么(解耦、控流、异步);redis 怎么实现(redis 的list 以及生产消费者模型);redis 实现消息队列的缺点(消息重复消费、消息丢失、)解决方式
2.如何保证缓存与数据库一致性、(这块面试官追问了很久)
这块我不敢说自己能解决的很明白,没有绝对固定的答案,重点是有自己的考量
3.InnoDB与myslarm区别
事务、锁、索引文件(myslarm索引和数据文件不在同一地方);InnoDB 特性:两次写(解决表持久化到一半出事);change buffer;
4.jvm内存结构
八股文系列;在此之外我加点自己的料证明自己不是背的面试题 栈的两种异常:不能动态扩展是StackOutOfMemery ,能动态扩展导致OutOfMemery 方法区 1.7 与1.8区别,直接内存,堆内存不是绝对意义上的共享(H神有相关文章),PC寄存器在多线程调度层面的意义作用
5.堆内存内部结构、栈内存涉及的异常、堆外内存的接口
6.垃圾发现算法和垃圾回收算法CMS 和G1 垃圾回收器区别以及底层原理、
7.jvm调优实战用什么工具主要涉及什么参数、
8.MySQL索引在业务中的运用、
9.布隆过滤器底层原理、
10.如果有亿级别的数据,布隆过滤器初始化怎么办、
11.布隆过滤器的误判概率是固定的么
因为本身的数据结构BitMap,会有所谓的重合;意思是证明不存在有误判<