热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2021年春招小tip分享,java后端面试总结+心得分享+面经!

个人情况介绍楼主北京某理工类大学本硕,家在包邮区3+1的1,实验室摸鱼菜鸡,从大四开始一路使用Java语言到现在2020年时间表1-2月:放寒假回家快乐地玩耍3月:发现实验

个人情况介绍

楼主北京某理工类大学本硕,家在包邮区3+1的1,实验室摸鱼菜鸡,从大四开始一路使用Java语言到现在

2020年时间表

  • 1-2月:放寒假回家快乐地玩耍

  • 3月:发现实验室的小伙伴都在准备实习,开始焦虑中学习,慢慢的开始笔试面试

  • 4月:感谢美团收留我给了我第一份实习offer,拒掉了OPPO的offer

  • 5月:陆陆续续收到网易、华泰证券、趋势科技、邮储软开的实习offer;月底实习入职美团

  • 6月:在阿里的系统里留下了第三个已回绝流程,咱也是经历过HR面后挂掉的人了

  • 7月:快乐实习,发工资的时候是最快乐的;同时秋招提前批开启,准备面试

  • 8月:美团转正答辩后离职,全力准备秋招;投递科研论文,月底收到录用通知

  • 9月:写完论文初稿,中期答辩;陆续收到阿里、腾讯、猿辅导、美团的offer,面了快手和网易

  • 10-11月:签约猿辅导三方,线下报考中间某部委某涉密单位,全力准备国考

  • 12月:不要问!问就是室友、啤酒和烧烤!开始纠结秋招的选择是否正确,想回家工作

  • 2021年1月:炒了半个月的股亏了1300,怒而退市;下定决心回家工作,开始投递简历和面试

  • 2022年2月:哈哈哈还不知道呢

找实习经历

先说一下我的简历吧,刚开始我的简历上就俩项目,其实都是刚进实验室的时候的3个月技术培训做的东西,一个是类似于微博的web系统,一个是用Java原生NIO做的IM即时通讯系统,当然了我后来用Netty又写了一遍。

刚找实习那会其实还算是很快乐的,面试官问的基础的问题我还是接的很流畅的,特别是收到了美团的实习录用意向书以后,信心暴涨。

结果等到了4月底5月初就开始变噩梦了。首先是被阿里巴巴打击了,一开始投递的蚂蚁,催了无数次面了二面后拖了我半个月给我挂了,那会我没少跟朋友吐槽这件事。然后被某部门捞起来接着面,很顺利面到了Hr面结果等了半个月又给我挂了,我问hr为什么他说hc满了。后来部门tl加我微信,说我对分布式(降级、熔断等)的知识了解的不好,希望我去别的公司实习下秋招再来面他们,然后开始PUA我。这tmd不是死循环吗?阿里说好的实习只问基础呢?我当然忍不下这口气,在牛客发帖吐槽了一下。接着就是连续的京东挂、360挂、腾讯挂挂挂等等,还有好多连面试机会都没给。

后来想想算了,何必这么折腾自己呢,于是在5月底入职了美团。这里给大家安利下美团金服,新人培养做的是真的好。你一入职就会有一对一导师,制定详细的时间表告诉你每周要干什么,要掌握哪些中间件的使用。

实习的时候,我闲的没事就会去美团内网学城上扒拉东西,知道自己分布式差就要多学一点,慢慢的开始了解、熟悉分布式的一些知识。接的第一个需求也是偏架构的需求,涉及两个系统之间的信息交互。一开始真的是焦头烂额,乍看起来很简单,其实重难点是在高并发下的异步解耦、限流、高可用和保障数据一致性上。但是真的完成了需求以后,这反而成了我最强的一块。秋招面试的时候谈到实习经历,面试官着重问的也是这一块,真的感谢这段经历。

秋招找工作

秋招我放弃了广撒网的策略,算起来七七八八的也就投了10家左右的公司,最后拿到了5家公司的不错的offer,整体上真的比春招好太多了。

首先谈的还是阿里巴巴,我与阿里的不解之缘。一开始找了一个北邮的师兄内推,他在杭州工作,我就默认他给我推到杭州,就没有确认内推base。自然是很顺利的到了hr面,面试的时候hr小姐姐也是杭州,问我选择北京的部门还是杭州的部门,我义愤填膺地说:我打死不留北京一定要去杭州。结果刚面完hr面师兄就火急火燎的在微信找我,问我hr面怎么答的,这个时候才知道师兄给我推的是北京的岗位。结果自然是毫无悬念地挂掉了,因为他们认为我不会接。后来被某部门捞起来,闲着无聊也去面了面,结果就发意向书了。但是部门和工作内容不太喜欢吧,加上tl打电话给我谈薪的时候态度不怎么好,一直觉得自己高高在上,一直在PUA,所以我就干脆麻溜给拒绝了。

其次要说一下字节跳动,字节我一直以为流程块面试官好,结果我居然也碰到了少数的奇葩。杭州抖音挂掉之后,我是心服口服的,因为确实技术上太菜被面试官吊打了哈哈哈,不愧是核心部门。后来被某部门捞起来,顺利到三面但是答得不太好,所以有一轮加面。加面面试官我感觉就不缺人,一开始就在不了解业务场景下一直在说:你觉得你们这样设计不low吗?行,您流批,一下子把整个团队做的系统都否了。之后我说的用缓存做了防止新用户重复注册导致的薅羊毛问题,结果就一直在怼我你知道什么叫薅羊毛吗?你知道薅羊毛的定义吗?你这就叫薅羊毛的吗?我俩针对这个词什么意思友好探讨了半个小时,结果是我先败了,主动放弃了面试。

最后是签了意外之喜的猿辅导,给我评级也很好,除了工资还是期权、签字费什么的。

之后被室友***,去参加了某部委涉密单位的线下宣讲,线下报名了国考,去部委实地取准考证的时候有幸进了配楼,感叹不愧是部委的大楼就是气派。10-11月努力学了俩月的行测和申论,按照多次粉笔模考的结果看我以为我稳进面的,结果国考的时候申论爆炸,只考了46分,差两分进面,一度心态爆炸。后来尝试过江浙的人才引进和选调政策,但是都比较晚了错过了很多,我又等不到2021年的4.5月,也就不了了之了。

最近也是下定决心要毁约猿辅导了吧,还是想回家工作。1月在家参加了一个上海国企和杭州阿里的面试,应该是都过了在等着通知,也有点犹豫要选哪个,目前暂定是始于阿里终于阿里了。

最后是干货时间

面试资料:

  • 神器cyc20***佬的的csnote,基本覆盖Java基础、数据库、分布式、算法大部分的内容

  • Github上的Advanced-java,当然了牛客也有转载,涵盖高并发、分布式、高可用、微服务等领域知识

  • 最重要的还是源码!!!关于Java基础真的多看源码,比如CAS的上锁过程、AQS。我记得我在看泛型的时候,百度搜出来的东西很抽象,然后我就跑去看了眼ArrayList的泛型源码,然后照葫芦画瓢自己也写了写。

  • 计算机网络应该都学过吧,我一直用的是我本科的第五版,高数书都卖了却留下了《计算机网络》哈哈。当然了有些东西是没有的,比如使用RST防止TCP洪泛攻击、http3.0的quic协议(常问的问题就是http只能用tcp实现吗)等。

  • JVM建议去看《Java虚拟机》,看面经是绝对不够的,面试官稍微问得深一点就凉凉,建议重点看编译原理和运行原理。我大概全书来回翻了三遍,连class文件的编写格式都看了。

  • 然后应该就是算法题了吧,如果不是面字节和外企的话,《剑指offer》应该就够了,但是必须要熟悉基本的递归回溯、BFS、DFS、动态规划这些,偷偷说一句并查集常有妙用,建议leetcode每日一题,坚持半年你也是大佬。

经验分享:

项目的话就实事求是地写就好了,千万!千万!千万!不要给自己挖坑!我秋招的简历就删掉了web的项目,因为发现有点忘了,把我研究生期间做的冬奥会的一个计算机视觉的项目的放上去了,纯粹装逼,投递国企的时候更显的高大上。

然后就是简历整得好看点,这里推荐用WonderCV,用过的都说好!注意写项目经历的时候不要一大段一大段的文字,多用些加粗的小标题分割一下,面试官没经历看你长篇大论的;最好把个人技术能力简介放在项目前,列一下自己的技术长处,比如redis、Spring什么的,有利于面试官快速了解你,按照我的面试经验,很多面试官直接看的都是这一块的东西。

然后呢就是早开始,找实习的时候我就是开始慢了,3月份才开始慢悠悠的。如果不是之前有Java基础的话,可能我实习都找不到。2021届校招普遍的都提前了半个月到一个月,所以更要提前准备。

然后有很加分的一项,搭建一个自己的个人博客网站,记录自己的学习。当然了CSDN或者Github也行,总之就是多记录。面试的时候面试官常会问你平时都逛什么网站,这个时候如果你说你自己搭建了一个网站的话会非常非常加分。如果你觉得租阿里云或者腾讯云的服务器太贵的话,可以用GithubIO + hexo搭一个简单的,虽然访问会慢一点,反正也能看,还有很多好看的模版可以选择使用,我就是这么干的。

还有很重要的一点,眼光不要只局限在互联网,外面的世界也是很好的。不要总以为只有互联网钱多,某些国企、江浙深的公务员、核心部委公务员(能接受出国)等等,福利待遇可能没你想象的那么低,还会有些特别的福利比如集体购房优惠等,具体的我就不说了怕被查水表。这里就要提到了,早点确定自己想去的是哪里,找准一个目标,同时如果有精力时间的话,再去尝试别的优质单位,比如参加个国考啊(狗头保命)。我一直觉得,秋招的时候多折腾,总比工作后再折腾要好得多。

然后没什么了,最重要的就是保持心态吧,最好有个小伙伴跟你一起备战,没事发发牢骚吐吐槽什么的。我和我的伙伴找实习的时候都快把阿里骂死了哈哈哈,我三个已回绝他两个,都是很奇葩的面试经历。结果他秋招拿个十几个offer,面啥过啥,都是sp以上,给我柠檬精坏了。

最后的最后

实习+秋招+春招是很漫长的过程,身体最重要。我坚持了大半年的5km跑步,夏天晚上跑,冬天下午跑。别问我为什么不去健身房,问就是不喜欢室内的环境,喜欢室外的感觉。从一开始50分钟上气不接下气,到后来30分钟轻松跑完,也算是见证了自己的进步吧。

昨天交给导师了论文终稿,安安心心修改论文准备毕业啦!希望回学校以后走毁约流程拿到新的三方协议签完,顺利度过盲审和答辩。

最后,希望还在准备春招的同学们找工作顺利!希望2021届的同学们毕业顺利!希望2022届的学弟学妹们找实习顺利!
硬核地分享点面经吧,只有实习的,因为秋招的我没记录hhhh

2.1410:30-10:40 某国企 腾讯视频面

  • 自我介绍:包括学习成绩、竞赛获奖、项目经历、邮储认识、职业规划 1分钟之内
  • 知道Java的序列化吗?什么时候用到序列化?
  • 序列化用在持久化、深拷贝和网络传输
  • 你的方向是图像处理和后台开发,是一直做这个吗?
  • 你学校是北京的,为什么报的是苏州的软研?
  • 说一下线程池的一些的概念和用法?
  • 说了核心线程、堵塞队列、最大线程之间的执行关系
  • 一不小心把数据库连接池c3p0、Druid说进去了
  • 知道Netty吗?Netty怎么解决粘包拆包的问题?
  • 惊呆了,我也就看了一点Netty的粘包、心跳、pipeline
  • 4种 长度域 固定长度 分隔符 换行符
  • 常用基于长度域LengthFieldBasedFrameDecoder 指定帧协议中的字段偏移和字段长度
  • order by 和 group by 执行顺序?
  • 9点半进入待考间,等待着叫号、验证身份证和学生证、检查正装
  • 两个人同时进入面试房间
  • 面试房间一个主持人,一些记录人员和面试官
  • 面试时间一组只有10分钟,所以要尽量的突出自我
  • 面试官问什么,你就答什么,不要和互联网一样发散拓展
  • 面试官基本不会太看你简历上的项目等内容,相关问题可以提一下

2.15 11:00-12:00 某互联网 二面 钉钉视频面

  • 自我介绍
  • 用过哪些框架?Spring相关的知道吗?
  • Java语言中说一下ReetrantLock的底层实现
  • 分布式的RPC知道吗?普通RPC知道吗?
  • 说一下DNS的原理?
  • 说一下Spring的IOC?如果让你实现你准备怎么写?
  • Java的垃圾回收机制?(但是在复制算法,面试官说from到eden也有对象升级机制,多了解)
  • 说一说CMS和G1?比较起来有什么优缺点?
  • 算法:反转链表 判断是否有环 判断环的入口
  • 分布式事务怎么实现?(2PC、3PC、TCC、最终一致性。说了下用redis的list好像也可以)
  • 知道哪些分布式事务的业内框架?(RocketMQ)
  • 事务的隔离级别?默认的隔离级别?可重复读解决不了什么问题?
  • 如果让你实现一个秒杀,从前端到后端要解决哪些问题?
  • 面对流量过多可能将服务器打挂的问题,怎么解决? (限流和分布式缓存)
  • 如果一个分布式事务有一个子操作挂了,怎么解决?(心跳保活、设置做大错误数)
  • 线程和进程的区别?
  • Sprint的AOP的实现知道吗?动态代理知道吗?

2.16 10:30-11:30 某互联网 一面 视频面

  • 自我介绍
  • ArrayList和LinkedList的区别?优缺点?
  • 栈和队列的区别?应用场景?
  • 项目中用过队列吗?(开个阻塞队列存放消息,通过线程完成消息发送)
  • 时间复杂度和空间复杂度的理解?
  • 快排和冒泡排的时间复杂度和空间复杂度?最坏的时间复杂度?
  • 二叉树查找的时间复杂度?(可以用二分查找 logN)
  • 介绍下Java的垃圾收集机制. (我一个人疯狂输出,额外说JC Roots对象和OopMap)
  • 知道Full GC是什么情况吗?
  • 知道full GC的虚拟机调优吗?(空间大小 触发比例 不能太大因为无法处理浮动垃圾)
  • 数据库的sql优化?
  • 为什么索引能够加快速度?
  • 聚簇索引和非聚簇索引?
  • 联合索引的命中规则?
  • 全文索引的命中规则?
  • 知道Linux的IO复用的epoll吗?ET和LT知道吗?
  • 手撕快排
  • 说下互斥锁、共享锁、自旋锁.
  • 线程和进程间的切换主要有什么? 上下文和虚拟内存页表映射。
  • 用到的一些开源组件?FastJson、Hadoop、Hbase瞎扯了一点
  • 列存储对比行存储的区别和优缺点

2.13 20:30-21:00 某互联网 一面 电话面

  • 自我介绍
  • 你为了这次面试做了哪些准备?(看书、源码、整理项目)
  • 项目中做得不好的但是没写在简历上的?
  • 怎么确定业务中的要开启的线程数?公式? (N * (1 + w/c ))
  • 如果CPU飙高怎么排查?(额外说了下阿里的Arthas)
  • 设计个程序,造成CPU飙高的情况?(死循环和死锁)还有吗?
  • 如果Java里删除了异常体系,怎么解决异常?
  • 你说你用过Git,当时多大的项目?
  • 怎么解决提交冲突的问题?强制提交知道吗?
  • 你说你用过Servlet,版本是多少?(2.5)
  • 列举出Java里的三个类,对应三个设计模式?(DataSource、Filter、BufferReader)
  • StringBuffer的append方法是什么设计模式?(我个人觉得是观察者模式)
  • 设计模式的设计原则?(解耦)开闭原则、责任单一知道吗?(不清楚)
  • 自己写代码的过程中做了哪些解耦的设计?
  • 你说你用过MVC设计模式,除了MVC还有哪些?(ORM)
  • 哪些框架用了ORM?(Hibernate)
  • Hibernate一级缓存、二级缓存知道吗?
  • 知道Hibernate的一些缺点吗?(不利于sql优化)
  • 知道怎么做sql优化吗?
  • 知道sql执行计划吗?
  • 如果有一个一万张表的数据库,怎么知道哪些表加了索引?什么命令?
  • 你说你用过Javascript,你觉得他是个面向对象的语言吗?
  • JS怎么实现继承封装和多态?
  • 你还有什么问题吗?
  • 说着说着突然又问了个问题:知道SDK和API的区别吗?

总结

相信大家看了这么多一定有很多收获,那么真正的干货来了!最后为大家准备了java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!

以上资料都是无偿分享给大家的,有需要的朋友关注公众号:前程有光,回复资料即可下载,只希望大家多多支持小编,祝大家都能面试顺利!


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
author-avatar
静心-苑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有