近期很多童鞋在准备校招了,找了蚂蚁的一位童鞋,给大家分享一波面试经验,以及面试心得,希望能帮大家在秋招拿到一个好结果
我自己的22届春招实习算是告一段落,给自己做个总结,也给大家分享一下金三银四的一些心得。
一、首先介绍一下自己的情况上海某渣硕年毕业电子信息专硕(两年制),今年研一java后端开发(半路出家)暑期大厂实习offer:
阿里巴巴—蚂蚁金服—支付宝技术部—java腾讯—PCG—看点搜索中心—c++字节跳动—电商业务-转到西瓜视频—go美团—美团平台—服务体验部—java携程—国际化旅游业务—java...
最终选择了去阿里实习,有以下几个原因:
超级大厂,java体系成熟,技术沉淀深实习不想花太多的时间花在转语言上,继续升华java阿里转正留用机会大,秋招竞争力大在上海读书,想在上海实习,感受一下坐拥外滩的场景二、学习经验首先我总结了一下java面试可能会从哪些方面考察,针对每一块,我不会涉及到一些具体的技术原理,而是去分享一下我自己对他们的看法,也只代表我个人的理解和看法,欢迎各位大佬共鸣或者给我建议!
我会从以下几个方面去分享,每一个小类都会有对应的面试题目汇总,可以在牛客网、github等自己搜索,也可以和我私信!给你分享我的资料!之后也想专门抽空出一期我学习的资料!这里面就不做介绍了!
计算机基础:计算机网络、操作系统、数据结构与算法、数据库java:语言基础、集合源码、多线程、JVM框架类:开发框架、中间件分布式类:分布式组件、分布式思想项目2.1、计算机基础首先,我自己本科是电气工程专业,所以没有学过计算机网络、操作系统和数据库这类的专业课,应该也和大部分同学一样。但是计算机基础,是每个大厂必问的问题,绝对不能忽视。
计算机网络、操作系统强烈建议:
面试之前通过面经学习,面经上都是比较重要的知识点,这部分没有太多的实战技巧,多记多背,还有一点大家容易忽略的一点,要多说!把你知道的知识点用嘴巴说出来,很多同学脑子里有货,说不出来,组织不了语言,也是很致命的一点!在面试的途中,遇到不会的问题即时记录,学习并且消化!你的能力不是说现在70分,面完10家公司还是70分,**在不断面试的过程中,反复积累反复消化!**就像西天取经越来越厉害。数据结构和算法强烈建议:
刷LeetCode,这个对于找工作来说,太重要了,这里直接讲我刷leetcode的方法,我大概刷了多道题,一共刷过3个来回。入门:我最开始刷遇到的问题和大家一样,在不了解算法和数据结构的情况下,很难想出这一题的思路,那么很简单,利用答案学习,拿到题目就看答案,对着答案写代码。初级:当我看了一定数量的题目的时候(大概前题),基本的算法,数据结构都有所了解,接下来就遇到一个问题,那就是拿到题,知道大概的思路,写不出对应的代码,我的建议是,自己先写,不管是api忘记了还是怎么样,先把你想到的东西都写出来,然后看答案,再自己改自己的代码。中级:当你刷的题数上来的时候(大概题),你已经大概有点算法感觉了,现在你要做的就是回头看,不用去写新的代码,因为信心很重要,再去刷前面的代码,这时候要多写多练。不用看别人刷了多少题,你把一个题刷透彻才有实质性的提高,找工作够用了。高级-地狱:等待各路大神补充笔试:笔试的时候是ACM模式,详情可以参考牛客网,一定要提前去准备(会写输出输出、导包,自定义数据结构)数据库(深入)数据库我觉得一定是一个作为我们应届生面试值得深入的地方
除了传统的CRUD之外,我们需要了解一些数据库的底层知识(mysql)
InnoDB存储引擎架构设计数据库内存区域、磁盘区域:redolog、undolog、bufferpool、MVCC、隔离级别、事务控制索引(底层)explain执行计划...这个一定是你能够和面试官自信的侃侃而谈的一个重要的点。
2.2、Java语言基础、集合源码、多线程这三个部分,大家在学习java的这条路线上面都有过学习,我给大家的建议就是,看面经,因为这个考来考去也就是那么多,万变不离其宗。
这里着重说一下,集合类比如说HashMap等一定要自己看源码,自己看源码,网上博客很多,结合博客看源码,印象会更深刻。
JVM(深入)jvm和mysql应该是我本人作为面试的时候最能谈的两块,也推荐大家去深入了解哈哈哈~也可以私信和我交流
jvm是java大厂都必问的知识点,包括一些其他非java厂也都会看你的知识掌握是否牢固(腾讯、字节都问过我jvm相关问题)
JVM的话无非就是以下几个点,内容不算很多:
JVM基本工作原理(GC、GC原理、内存区域、核心参数等)各种垃圾回收器和对应的垃圾回收算法JVM内存分配思想(不一定有实际生产经验,一定要有想过)OOM内存溢出问题分析(不一定有实际生产经验,一定要有想过)...2.3框架类开发框架需要掌握:ssm、springboot、Mybatis等
开发框架其实在面试中被问的并不是很多,因为大厂里面基本上都是自己的自研框架,基本上被问到也就是面经上常见那些问题,问题很少。比较容易准备。
中间件面试中间件的时候,据我了解,可能你简历上面没有写相关的东西,问的不是很多,但是只要你能够深入了解某一个中间件,它的设计思路、架构原理等等,一定是一个加分项。楼主学习中间件的路线大概如下:
redis:基本使用实战、分布式环境、集群dubbo、zookeeper:深入一个rpc框架也是不错的加分项,学有余力的:可以学习netty手写一个简易版dubbo,也是你面试的一个谈资mq:rocketMQ、kafka、rabbitMQ,了解性能优势,可以选一个深入~netty:网络编程加分项,也能够促进你对计算机网络的理解,可以自己搭建rpc框架2.4分布式类微服务和分布式流行,大厂都会使用到,咱们也有必要去了解学习,面试中或多或少会问到,我把他分为两类,一个是分布式思想,一个是分布式组件
分布式思想由于我们大部分没有分布式高并发等实战经验,所以能够学习这方面的思想,是很重要的一点,大部分面试官不会在这一点去为难我们,这个可以去找好的博文去进行学习和阅读!
分布式组件我学习的分布式组件主要有:SpringCloud、SpringCloudAlibaba
建议大家可以利用这个去自己搭一个简单的服务提供与消费的网关,加上一些熔断限流等功能。学习如何使用~
2.5项目很多同学在为没有项目而苦恼,你也知道可以通过在b站上找一些优质的项目教程,跟着完整的做一遍。但是你要足够熟悉!
接下来我还给大家分享一个小经验,仔细想想我们项目是为了什么,就是为了面试能说,能够展示我们会什么就行了呀,所以我觉得大家不一定可以做一个完整的项目,可以找某一个模块去深入。这里给大家推荐几个小模块,针对某个模块去深入了解,在这一个模块跟面试官讲半个小时他不香吗?
认证授权微服务网关redis分布式锁...相信你也能够有不错的收益!
三、面试经验首先我给大家介绍一下据我了解各大厂的笔试、面试平台以及一些面试流程~
3.1大厂面试流程阿里(3+1)流程:内推直接进部门、投进池子等捞、面试流程会到每一个具体面试官那边,面试官和你沟通面试时间(我因为面试官休假流程卡了15天!!!)
笔试:牛客网笔试(ACM模式)、阿里自研平台(记事本形式)
阿里应该比较注重笔试、一定努力不要得0分,不然会加试
面试:面试官开心就好,电话面试,视频面试面试官自己选,电话面居多,重视hr面
腾讯(2~3+1)流程:内推基本上用处不大,投具体的事业群,否则进池子里等捞,挂了继续会池子里等捞
笔试:实习生好像不用笔试(虽然会发笔试连接,但是我没做,一样oc)
面试:腾讯自研平台、腾讯会议
字节(3+1)流程:内推或者