前言
3月随着LeetCode-cn的每日一题开始,面试也就没停过。
由于身处上海,可选择的其实不多,自己定的方向是后端开发,跨专业的,就死抓Java了,复习内容后面会提。基于技术栈,选定的目标是:美团、字节、阿里、腾讯、外企。
开始挺没自信的,不知道自己准备的全不全面,知识点背了忘,框架原理也不想看,刷题也是隔天忘。可能大部分跨专业的人和我都有类似的担忧吧,会担心自己基础不够扎实。但在面试的过程中,其实常考的就那些知识点,在基础的理解之上去Google一下英文的解释,比如csdn满篇的两次三次四次握手,又臭又长,Google一下Why TCP three handshake,啥都给你讲明白的,所以拥抱Google吧。
这么说的原因在于,只背面经没前途,千篇一律的回答面试官也提不起兴趣。怎么解决呢?知乎+Google,比如进程和线程,一般的回答就是它俩是xxx的单位、各自有啥结构,但如果从OS和CPU的角度来看,进程和线程只不过是资源分配的不同粒度上的区分。
总的来说,要对知识点有自己的理解。
面试内容:
只写一下算法的内容,其他东西一是记不清,二是其他面经都覆盖了,三是最后会总的聊一下
阿里:
阿里云提前批(一二面)
1,3 Sum
2,线程并发题,一个类中有三个方法,分别会被三个线程调用,保证他们的执行顺序,比如外面调用顺序BAC,要求执行顺序ABC
3,求矩阵中最大连通分量的元素数
腾讯CSIG(一二三面)
1,手写堆
2,手写快排
3,赛马问题
4,随机数问题:rand7 -> rand10
微软上海(一二三面)
1,大数乘法
2,leetcode-662
3,字符串中的最长回文子串
美团(一二面)
1,求n以内的素数
2,数组中只出现一次的数字
字节跳动(一二三面)
1,删除有序链表中的重复元素
2,最近公共祖先
3,树的层序遍历
4,BlockingQueue
5,打印DAG的拓扑序列
VMWare
1,反转链表
2,TOP K
PayPal
1,反转链表
结果:腾讯、字节、美团、VM、PayPal都拿了offer
复习准备:
1,马老师的视频(重中之重)
2,面外企必须准备英语,各个方面的。自我介绍,项目(difficulty、how to solve、what you learn from this),规划(短期的,长期的)
3,Core Java:Collections, JUC, Lock, JVM
4,MySQL:锁,事务,索引
5,redis:优势,数据结构,持久化
6,spring:IOC、AOP
7,MQ:常见MQ产品比对,如何保证消息不丢失,处理重复消息
8,RPC:原理,dubbo和springcloud的对比
9,算法和数据结构:查询类、排序类、LRU
10,剑指offer,leetcode TOP100、TOP Interview
笔者这里还有一些整理好的面试资料,和复习时看的文档资料,感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来免费获取
面试资料
文档资料
最后
面试不仅是考察知识点、算法和数据结构,还有很重要的一部分是你的表达能力。你肯定无法记住所有知识,但要给面试官一种你很稳,稳如狗的感觉,不要露出你的紧张。
会的东西放慢语速,有条理的说出来;不会的东西先打预防针 “这个我记不清了,但我可以试着讲一下”,然后往自己熟悉的点上靠,举个栗子:duboo会不会?dubbo具体原理没有深入了解过,但我知道dubbo是一种RPC框架,我对于RPC的原理有了解过,它是xxxx。
手撕代码一定要先确保对方认可你的思路,面微软时的深刻教训!!!
大伙加油,奥里给!
閱讀更多 Java高級碼農 的文章