985、211毕业一年,面试八家大厂,四面拿美团offer(Java后端)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本人三年开发,985硕士,211本科,专业都是软件工程,一直投的是Java后台开发,只投过一次网易的测试,技术不是太牛,但是比较努力。实验室没有项目,so项目经验是0,在去年这个时候看到实验室师兄找工作的艰难,因此开始复习的时间比较早。

自我介绍

本人三年开发,985硕士,211本科,专业都是软件工程,一直投的是Java后台开发,只投过一次网易的测试,技术不是太牛,但是比较努力。实验室没有项目,so项目经验是0,在去年这个时候看到实验室师兄找工作的艰难,因此开始复习的时间比较早。

复习经历写在文末

关于复习最后悔的是leetcode没有刷,有时间一定要刷,有时间一定要刷,有时间一定要刷,对解题思路很有帮助。因为没有项目经验,就在网上找了一个项目,对于项目中的问题一定要很熟,用到的技术不仅要会用,还要理解底层,反正每次都会被问,感觉面试官对什么高并发的东西挺感兴趣的。

我主要是想找成都的公司,但是最开始海投的时候,不管公司在哪里,我都投了,反正投的公司有几十家,我认为多面几家公司可以多增加一点面经。多关注一些技术群,有很多内推信息(很多公司内推可以免笔试,这是很爽的!!),我的前两个offer都是内推的(美团和携程),因为美团是成都的,自己也比较满意,所有后面很多公司的面试都没有去,但是建议还投的时候还是都投,先拿一个心里有底。

排名按面试时间

蚂蚁金服(内推)

面了3面技术,面hr (在池子中泡了3个多月,最后还是gg了)。

一面

这是我秋招的第一次面试,别提多紧张了,声音都在发抖,自我介绍都不知道说什么。。。

  1. 自我介绍(说的很乱)
  2. 序列化的底层怎么实现的
  3. synchronized的底层怎么实现的
  4. tomcat集群怎么保证同步
  5. 了解nosql吗?redis?
  6. 怎么解决项目中超卖的问题
  7. int的范围
  8. 有什么想问的?

二面

清楚的记得二面是在晚上7点左右,刚走到教研室楼下,看见是杭州的电话,顿时激动了,然后一接,果然是阿里,因为下面很吵,我就一口气跑到5楼,然后喘着粗气进行自我介绍。。尴尬

  1. 问了项目中超卖的问题怎么解决
  2. 你熟悉什么数据结构
  3. 说说快排,我说了快拍实现的过程,相当于口述代码,然后问了复杂度
  4. int的范围,我说的是2的-31次方到2的31次方-1,面试官说具体点,我就不知道了
  5. 乐观锁vs悲观锁
  6. gc
  7. concurrenthashmap分段锁的细节
  8. 设计模式怎么分类,每一类都有哪些
  9. 并发包里了解哪些
  10. b树,b+树,b*树
  11. 字节与字符的区别

三面

一二面只隔了2,3天,三面和二面隔了2周,当时一直以为自己挂掉了,接到电话也很突然。

  1. 自我介绍
  2. 项目
  3. 知道哪些服务器?答:JBoss,Apache,weblogic。问:区别?
  4. Java有什么后端技术
  5. springIOC优点
  6. jdk动态代理 vs cglib动态代理,他们底层分别怎么实现的
  7. synchronizedMap知道吗?他和concurrenthashmap分别使用于什么场景?
  8. https过程?公钥能用公钥解吗?在客户端抓包,看到的是加密的还是没加密的?当时乱猜的加密,面试官说不对,是没加密的
  9. 描述一下java线程池。
  10. 怎么保证redis和db中的数据一致
  11. 设计模式怎么用到项目中?
  12. 类加载

hr面

不记得3面和hr面之间间隔多久了,也是晚上6,7点收到的电话。

  1. 自我介绍
  2. 有什么优点?
  3. 有什么缺点?
  4. 项目中遇到的困难?怎么解决
  5. 意向城市 时间已经过去太久了,只记得这么多,可能有些问题不是阿里面试官问的,但都是在面试过程中遇到的,希望能帮到更多的人。

携程(offer)

内推-只有一次视频面。

  1. 链表的定义
  2. 怎么实现链表翻转
  3. 怎么判断链表是否有环
  4. 二叉平衡树,怎么用一维数组存储
  5. 讲讲jvm分区
  6. 讲讲jvm gc
  7. 怎么求数组的最大子序列和
  8. final关键字4种用法
  9. sleep用法
  10. await关键字
  11. 线程池
  12. spring ioc,aop以及其优点
  13. 栈和堆的定义

现在记得的只有这么多了。

美团

成都提前批(收到offer)。

在河畔上看到的内推消息,然后就发了邮件,3、4天后,收到邮件让去公司面试,在天府三街附近。

一面

先给了一个A4纸,上面写满了题,然后就做题。做完题就自我介绍,说项目,问项目里的东西(自己一定要对项目里用的东西很熟,还要明白底层原理,我用了redis,面试官就问了redis怎么实现),然后就问java基础,面了40分钟吧,然后就让我在外面等,过了一会,二面面试官来了。

试卷题目,只记得部分

一、简答题

1.浏览器访问一个网址的时候都有哪些过程(还要了解DNS查找的过程)

2.tcp三次握手,四次分手

3.线程池

4.你了解的设计模式(面试官说什么单例模式就不用说了)

二、编程题

1.二分查找

2.树的中序遍历

三、智力题

给你一个5L和3L桶,水无限多,怎么到出4L

二面

面试官问我觉得一面面的怎么样,我。。。。然后就看我做的试卷,我竟然连二分查找都写错,面试官说不对,然后我改了改就好了,然后面试官就问还有什么可以优化的地方吗?我只说出来一个。。然后又是自我介绍,说项目,问项目,问基础。差不多也是40分钟。

三面

过了几天,收到3面邮,应该是部门boss,也是自我介绍,然后出了两个题。

1)一个n*n的矩阵,按副对角线打印

2)4个瓶盖换1瓶酒,要和150瓶酒,他自己最少多少瓶?然后问了职业规划。感觉有1个小时。

hr面

北京的电面,就随便聊聊。

58现场面试(offer)

两面技术,一面hr,然后就让我回来了。

技术一面

1.自我介绍

2.根据58笔试题,看着问的 服务器之间怎么通信,写了一个链表反转,项目中nginx怎么配置的,什么硬件条件可以实现多线程,什么情况下多线程才能发挥作用,mysql索引底层是什么,b 树和hash应用场景 技术二面 讲项目,什么是乐观锁,以后的规划。

hr面

1.项目流程

2.项目中遇到的问题,怎么解决

3.自己最大的缺点

4.喜欢和什么样的人合作,不喜欢和什么样的人合作

5.了解58吗

6.找工作有区域限制吗?家人支持吗

7.讲了讲学生活动,一个活动怎么组织的

8.有其他公司offer吗?

中兴(一面挂)

所有人在一个大厅里面,很多面试官,每个人两个面试官。

1.自我介绍

2.手撕代码1)怎么写多线程2)1,2,3,4组成的不重复三位数,都用代码写出来

3数据库会不会,我说可以,他问会什么,我说索引,然后让写sql,让我建一个表,我说这种我都是百度的,然后让我写了两个查询

4.问项目

5.会linux吗?答不怎么用,会常用命令

6.愿不愿意转测试,答不愿意,问看不起测试吗?答不是,只是自己喜欢研发

7.意向城市,答成都,只有成都吗?答,嗯

滴滴(二面挂,现场面)

一面

1.一来就手撕代码,给你三个string s1,s2和s3,判断s3能不能由s1和s2组成,s1和s2内部元素相对位置不能变,比如a 和bc,可以组成的有abc bac bca,我写的暴力的,在面试官的指导下改为了动态规划,不过最后还有不对的地方

2.自我介绍

3.hashcode和equals区别

4.实现一个类,要求要放在hashset里

5.你了解哪些设计模式?我说了一些,然后让写了一个单例,我用枚举写了一个,感觉面试官不懂,说再写一个,然后写了一个双重检查的

6.你还有什么要问的?

二面

1.说项目,被批的很惨

2.写了四次分手的图,然后问若客户端和服务器之间,1s会发生5000到6000次短链接,会发生什么问题

3.手撕代码,不断优化,最后应该是对了

4.你有什么问的吗?

招银网络(offer,现场面)

一面

  1. 自我介绍
  2. 问项目
  3. 用过log4j吗?把他输出到数据库用过吗?
  4. 一致性hash,怎么解决hash冲突
  5. 除了写代码,有什么爱好
  6. 怎么保证写的代码出错少
  7. 写自己项目中类的函数声明
  8. 有没有遇到什么有印象的bug

二面

项目,没什么好说的,反正问的很深,被怼死了。

hr面

自我介绍;得过哪些奖;家是哪里;选公司的标准;抗压的能力;父母是做什么的,具体一点;父母对于你找工作的意见。

对开发工作的要求,我本来说的不想做android,后来我问他们公司业务时,听hr的意思就是,如果一个项目用c写,你就用c,如果用c#,你就用c#,如果是ios,你又用iso,具体用什么语言都不确定的,然后我就说我什么都愿意做。。。。就酱。

华为(offer,现场面)

一面

1.自我介绍

2.自己实现一个链表,写了以后也不说对不对

3.说项目,问了很多,还让画框架图

4.写生产者消费者代码,我用的阻塞队列

5.说我不适合研发,让转测试或资料

6.说发的论文的算法

二面

1.自我介绍

2.平时怎么提高自己的编程能力,我说刷题,他问频率,我说不忙的时候一天一次,然后他说既然刷那么多次,怎么笔试成绩还这么低。。。感觉自己给自己挖了一个坑

3.意向城市

4.自己的缺点,怎么改进

5.项目中遇到的最大的困难

6.在课题中遇到的最大困难

7.你们4人合作项目是怎么分工的

8.你有什么想问的

贝贝网

一面

1.自我介绍

2.java同步机制有哪些

3.equals和hashcode区别和联系

4.进程和线程讲讲

5.equals和==区别

5.代码题,没让写,只说了思路,有n个长方形,每个的长宽为x,y,从下往上堆,要求上面的长宽小于下面的长宽,求最多可以堆几层

6.在浏览器输入一个网址到得到页面的过程,越详细越好

二面

1.自我介绍

2.问项目,问的很深,还有什么可以改进的

3.同1面的6题

4.进程vs线程

5.平时怎么学习

6.写sql

hr面

hr和二面在一起,先二面然后hr面

1.你本来不是杭州人,愿意来杭州工作吗?为什么

2.有关注杭州其他企业吗

3.周末平时干什么

4.还有什么问题

面试前我是如何“啃”书复习,刷题提升的

面试前一段时间我不断找资料学习,也通过很多渠道和朋友要到一份美团架构师写的Java面试宝典(284篇)我把美团架构师给我的一份Java面试宝典啃完了,从而还找了Java后端以及一些大厂的面试场景和面试题不断刷题提高自己的眼界

Java核心面试宝典复习知识

答案获取方式

可以点击此处来获取就可以了!

这本Java核心知识把每个知识点解析的很深,对大家应该很有帮助,它把大部分的Java知识集结在一起深入的解析出来(非常建议大伙看一看)

这本文档覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、Redis、数据结构、算法、大数据等大量知识点。

Java部分:Java基础,集合,并发,多线程,JVM,设计模式

数据结构算法:Java算法,数据结构

开源框架部分:Spring,MyBatis,MVC,netty,tomcat

分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等

微服务部分:SpringBoot,SpringCloud,Dubbo,Docker

求来的大厂面试场景(为了学习提升可以没脸没皮,啊哈哈哈)

我针对这些大厂的面经场景也找了很多题刷,对自身的提升也是非常大(还特意要了份面试答案)

面试答案

既然是要面试,那么就少不了刷题,实际上面试前,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

根据自身面试经历整理以及不断收集的(珍藏版)

相关的电子书、底层源码

阿里巴巴面试必备知识想进大厂的朋友们可以获取看看(对面试进大厂帮助很大)

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。

以上内容中所有的学习资料、面试资料,均可以免费提供,希望大家金三银四面试顺利,拿下自己心仪的offer!

答案获取方式

可以点击此处来获取就可以了!

相关文章
|
15天前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
31 4
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
117 2
|
3天前
|
Java 程序员
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
92 60
|
2天前
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
43 16
|
4天前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
37 12
|
5天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
19 2
|
5天前
|
前端开发 NoSQL Java
【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
本文介绍了如何配置和启动基于Java的若依(RuoYi)项目,涵盖后端和前端的详细步骤。首先,准备Redis、MySQL以及IDE(如Idea和VS)。接着,通过GitHub获取代码并导入到IDE中,执行必要的SQL文件和配置数据库密码。然后,启动Redis并进行相关配置。最后,按照前端配置步骤克隆前端代码库,打开终端执行命令完成前端配置。整个过程详细记录了每一步的操作,帮助开发者顺利部署若依项目。 如果你觉得有帮助,请点赞、关注和收藏,这将是我持续分享的动力!
84 1
|
15天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
15天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
15天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题

热门文章

最新文章