赞
踩
目录
1,竞赛(比如ACM区域赛之类)、项目(最好是和投递职位有关联,比如投递java最好填和java相关的项目)、学历(越高越好)至少要有一个;
2,越早准备越好,准备越充分越好(建议寒假期间打磨好简历及项目。2月份就可以投递一些公司,外企截止时间比较早,参考亚马逊、微软。3月初最好做足准备开始投递简历,建议先投小厂熟悉流程。最好不要拖到三月中旬,因为流程推进也需要时间)
3,提前批难度较大但也是机会,如果不会影响后面的面试可以尝试,切忌丧失信心!阿里有三个志愿,但是第一志愿挂掉后,其他两个志愿也很难通过,其他面试官可以看到面评。字节有两个志愿,投递较晚的话,流程会慢一些,但整体来看字节的面试推进速度还是极快的
4,刷题,刷题,还是刷题!(力扣Hot100、CodeTop)
5,不要过早躺平,一切皆有可能发生!即使到了hr或者过了hr也不能掉以轻心,互联网的寒冬不只是说说(锁hc、毁意向等等o( ̄┰ ̄*)ゞ);
6,投简历时提前打听好部门是否卡学历,比如只收本科211及以上的。就算过了简历关,也很有可能被hr吊着;
7,面试拼的不仅是技术更是战术,在擅长的领域拖的时间越久,越不容易暴露自己的缺点。项目、竞赛、博客都是为了这一刻而准备;
8,如果后端开发卷不下去,前端也是不错的选择;
9,对于后端开发:Java需求量大,需要掌握的八股文也多,难度也较高,但整体来看不是不可到达的高度。go的八股比Java少,且缺口大,相对而言优质的参考学习资料较少。C/C++不是真正的高手,请慎重选择。python还是只把它当成工具吧,需求量少;
10,有不会的问题不要紧,可以思考一会然后告诉面试官不是很熟悉这部分内容,关键是会的领域能钻多深、思考问题的过程是否合乎逻辑并且具有一定深度。此外如果问到的问题没有思路,可以尝试把话题引到与之相关并且自己熟悉的领域;
Java面试重灾区:
03.01 简历投递
03.02 笔试邀请
03.05 参加笔试
03.10 一面
03.16 二面
03.22 OC意向一起发(没有hr面)
五道编程题,4算法+1工程。难度中等偏上。具体题目记不太清了,比较灵活,偏场景些;
a了两题,额外偷了0.6,总共应该是2.6题;
1,分布式锁在项目中的作用?锁的key?发送端吞吐量?redis分布式锁底层实现机制大概讲一下?
2,spring启动经历的过程?bean生命周期?
3,一次http请求中request和response过程?http请求头部包括哪些信息?http协议中request和response内容?
4,给一段代码,大致意思是String s = "",s循环加上int类型的i(i从1~100000),逐行分析jvm内部发生了什么?(字符串常量、包装类、字符串拼接及优化、垃圾回收)
5,ArrayList扩容机制?
6,编程题:给定有序数组查找指定元素第一个出现的位置,该元素存在,二分查找模板题
小结:
1,在学校学了哪些课程?聊一聊对中断的理解?从键盘上敲下一个按键开始,到记事本上显示出来敲下的字符,中间经历了哪些步骤?越详细越好
2,堆排序的空间复杂度,时间复杂度,建堆和排序时间复杂度各是多少?自顶向下和自底向上建堆时间复杂度区别?简单推导一下
3,编程题:二分查找模板题,和一面差不多,但是如果找不到的话返回最接近目标元素的左边的值,比如查找7,数组中只有6和8,则返回6
小结:
03.03 简历投递
03.03 心理素质测评(时间随意,不是决定性因素,但也要认真对待)、笔试邀请
03.14 参加笔试
03.16 一面
03.22 二面
03.22 流程终止
单选、多选、三道编程题。选择题覆盖计网、数据库、操作系统、Linux等基础知识。算法前两题中等难度;
a了两道,第二题需要用到dp;
1,三次握手、四次挥手(没有要求详细介绍参数)
2,http和https区别?端口?http请求中有几种方法?返回的状态码?(问的也比较浅。没想到状态码真的问了)
3,虚拟机内存区域,运行状态
4,多线程间数据共享?
5,垃圾收集算法?分代收集?
6,内存溢出排查?用哪些命令看大的对象?用过相关工具吗?
7,数组和链表区别?循环遍历效率差别?ArrayList扩容机制
8,Java基本数据类型有几种
9,知道几种设计模式(还以为要详细说,就没敢讲太多。。。)
10,wait和sleep区别?
11,synchronize在哪修饰?可以修饰对象吗?可以修饰int类型吗?
12,mysql查询第10w页的第1000条?如何优化?
13,隔离级别种类,MySQL的隔离级别,MySQL几种引擎?区别?
14,redis如何实现分布式缓存?或者说redis数据库如何防止超卖?不同地域如何处理?
15,autowaire和resource注解区别?
16,spring实现事务一般用transectional,一个类中两个方法都使用该注解修饰,并互相调用,事务会生效吗?为什么?
17,编程题:1)判断线索二叉树。2)简单的统计排序,具体记不清楚了(用hashmap+优先队列)
小结:
1,博客主要有哪些内容?
2,计算机为什么使用二进制?
3,java中,在文本中写入代码到机器执行,这个过程发生了什么?虚拟机加载class到真正在物理硬件里执行机器码中间的步骤?不同类型的数据在java内存中的存储方式?Java虚拟机如何知道从内存中具体哪个地方加载使用具体的类 或者 说class在虚拟机内部是怎么描述的?(这里面试官提醒的已经十分明显了,但是当时没有太深入的了解虚拟机内部的东西,回答的比较尴尬)
4,ThreadLocal为什么会出现内存泄露?如何避免这种现象?
5,多线程中有几种级别的锁?轻量级锁和重量级锁区别?轻量级锁实现原理?
6,输入网址到返回页面,中间发生了哪些步骤?
7,项目核心难点?详细的技术方案?当数据量进一步增大的话该如何扩展?备选的消息中间件有哪些?各种中间件的优势?相比于redis,可靠性更高的原理?你觉得消息中间件要怎样设计?核心要关注哪些功能?消息发送到消息中间件后,如何消费消息?(以上问题可以回答不知道,如果还是追问的话,可以给出一个自己觉得有道理的解决方案并且明确这是自己的猜想,并未看过具体的设计。比如消费消息可以考虑在本机中设计循环队列来存入、去取出数据,通过指针移动的方法表示消息已经被消费,分布式场景下则需要考虑rpc调用等问题)
8,项目中遇到过哪些异常或者bug,解决比较久的(这个问题就是考察到底有没有真正做过项目,就算没有也要编一个!不然很可能就认为项目不是你自己做的)?这些过程在博客上有记录吗?
9,个人觉得不错的博客是哪一篇?讲一讲里面的内容?
10,除了简历上的还有其他技术实践吗?
11,有研究过设计模式吗?介绍一下熟悉的设计模式?具体实践中用到哪些?代理模式如何实现?(当时回答成了底层实现,应该回答项目中怎么使用的)
12,平时学习新知识的途径?看过哪些书?比较感兴趣的是哪个方向?自己的长处和短处?
小结:
02.25 简历投递
02.26 笔试邀请
02.27 参加笔试
03.14 一面
03.18 终面
04.06 感谢信+流程中止
05.09 hr通知还有hc问来不来(wl轮到了,但是没想到这么多人鸽微软(っ °Д °;)っ)
三道编程题,签到题、dfs、寻找范围内出现的1的个数;
a了两道,第三道暴力写了出来,无法通过最大规格的测试用例;
1,问项目,背景、遇到的难点、解决办法等
2,编程题:1)有序双向链表的插入删除。
小结:
1,问项目,主要关注项目整体的逻辑,对细节部分扣的比较深,但没有问如何扩展自己的系统
2,编程题:1)给一个日志文件,记录了ip的访问信息,计算每五分钟内访问次数,需要考虑日期格式等边界问题(字符串处理、日期格式处理真是噩梦,用到好像是格林尼治时间,毫秒部分精确了7位,用Java转换时间戳时会出现时区问题。一开始就被这些繁琐的细节给搞晕了,忘记了工程题目的大忌,应该自顶向下逐步抽象的解决问题,搞一个方法假装它已经实现了某个功能)。
小结:
03.06 简历投递
03.11 一面
03.15 二面
03.21 三面
03.23 hr面+OC
03.24 offer审批完毕,确认任职时间
04.01 意向书(愚人节快乐!真快乐)
有一说一,字节的面试推进过程真的超级快,点名表扬!据说有同学一天就完成了所有技术面试。
参加了学校的内推,没有笔试流程
1,项目的吞吐量?如何保证高可用?写redis之前还是之后写入mysql?分布式锁在项目中的使用场景?
2,项目使用maven,引入了很多不同依赖包,引入相同的依赖,该如何选择版本?
3,mybatis查询sql整体流程?
4,配置一些动态sql,通过sql、查数据库、返回结果这个过程?
5,mybatis中$和#区别?
6,spring的ioc和aop?
7,循环依赖怎么办?三级缓存通过提前曝光的形式一定能解决所有循环依赖吗?
8,spring事务传播机制?
9,分布式锁当主节点挂掉,会出现什么情况?
10,redis集群搭建协议?
11,redis使用rdb持久化方式,如果保存快照后宕机,数据不一致该如何恢复?
12,redis集群新增节点会出现什么问题?讲讲一致性hash
13,编程题:1)二分查找模板题。对,很基础的那种(●'◡'●)。
小结:
1,问项目,对细节进行深入的探讨,项目做了多久?
2,对并发控制比较好的数据结构有哪些?HashMap的底层结构以及扩容机制?处理哈希冲突的其他方法?
3,java的锁了解过哪些?synchronize消耗的是哪些资源?
4,volatile和synchronize区别?
5,线程池的一些参数?如何工作?
6,java内存空间是如何划分的?常见的垃圾回收算法?
7,熟悉哪些排序算法?堆排序原理?平均和最差的时间复杂度?
8,redis常见数据类型和数据结构?
9,redis缓存一致性解决方案?
10,MySQL事务解决什么问题?
11,数据库索引的数据结构?设计索引需要遵循哪些基本原则?
12,编程题:1)判断是否为平衡二叉树,需要自己构建树并验证。
小结:
1,问项目,明确指出了项目中不太合理的地方,比如技术选型方面的缺陷,业界常用的做法等。一次请求到完成时延大概是多少?介绍下项目中redis的分布式锁?
2,介绍下对redis的了解?redis的持久化机制?aof持久化机制中文件过大怎么办?文件重写功能有了解过吗?redis如何保证高可用?
3,java线程池机制?executor原理?线程状态的切换?线程池的回收机制?为什么要采用线程池的机制?
4,java实际应用过程中节省gc开销的措施?
5,select * from A where x=1,x为一个索引值,内部执行过程?优化器有了解过吗?有用过MySQL索引吗?索引失效场景?
6,网址中输入url到页面渲染的整个过程?页面渲染完毕后连接不关闭吗?为什么要四次挥手?三次握手中某一次失败会怎么样,所有情况都列举一下?
7,编程题:1)手写一个简单的阻塞队列。2)设计数据库表来实现学生、课程、教室、老师之间的映射关系
小结:
1,博客主要内容?如何吸引这么多关注呢?写博客的动机?一句话概括博客带来的收获?
2,做过最成功的一个项目?在团队中发挥的作用?做过最不满意的一个项目?
3,遇到最大的困难?
4,你的朋友有提到自己的缺点吗?
5,确认下实习信息:毕业时间、最快到岗时间、远程实习最早工作时间
小结:
03.06 简历投递
03.17 笔试邀请
03.20 参加笔试
03.29 一面
04.02 二面
04.13 bp(类似于hr面了)
04.14 OC
04.21 意向书
和阿里类似,选择+三道编程题;
a了两道,最后一题拿了0.3,一共2.3道;
mhy的面试和笔试内容是高压线,不方便透露。主体内容还是和其他面试差不太多的,同样也是非常注重基础,可能考察角度会更灵活些,类似于美团,抛出场景题,针对具体的场景进行分析,并给出自己的解决方案。此外对简历上提到的所有内容必须非常熟悉,比如项目、博客之类的。
至于数据开发,个人没有接触过太多大数据组件相关的知识,面试官也就没有为难,最后还提到不了解问题不大,除了专门开设大数据课程的学校,其他学校也没有重点介绍,对在校生要求不会特别严格,基础扎实更重要。
面试过程不一定会有算法题,要看具体的面试官。
小结:
基础,基础,还是基础!每次面试完都会问面试官最看重实习生哪方面的素质,毫无例外全都提到了基础,其他诸如思维逻辑、解决问题能力等等是仁者见仁了。
1,春招实习过程真的超级幸运,遇到了贴心的内推学长、温柔的面试官、心仪的岗位等等。幸运的同时也让我惶恐,常常会问自己自己的实力是否能配得上这份幸运,但想太多也没有用,还是踏踏实实的走好每一步,不够聪明就用努力来弥补,还年轻,不要害怕失败。
2,有时间多和同学沟通交流面试经验。非常感谢身边同学真诚的意见,在和同学交流中,及时发现了自己的问题,然后拼命复习基础、面试、整理复盘,大概有两个星期左右,两点睡早上七点自然醒,醒了继续复习o( ̄┰ ̄*)ゞ。没办法,找工作和单纯的项目demo区别很大,平时学校的课程重点又比较散,计网、嵌入式、大数据、云计算都是摸一点,浅尝辄止,写不到简历上,稍微问深一点就罚站了,所以一定要对学习和工作间的落差做好心理准备。
3,不要自暴自弃。发现问题然后努力去解决就是了,考虑其他杂七杂八的事情只会徒增烦恼。
4,学历很重要,说真的,可能之前没有太大感觉,但是从今年的春招实习情况来看,学历很重要,即使是华五研究生,本科学历也很重要。本来名额就少,投的简历又多,我是hr我也这么搞。学历不行的话就要靠技术来弥补了,比如ACM牌子、大型比赛奖项、实习经历等。
5,写博客是个好习惯。而且相比于比赛而言,能够沉淀下来的东西也更多。
6,拿到offer不要急着拒绝,比如今年就有公司在三月底毁意向,这时候去哪找实习?你不仁别怪我不义,人不能太老实。
7,人的时间和精力有限,要学会协调自己的工作、学习、娱乐和生活。
8,命要紧,其他都是次要的。
最后,真诚祝愿每一位努力的人都能得到应有的回报。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。