写点什么

从安卓转到 Java 开发,我吃透了这份 pdf,终于 4 面拿下美团 offer

用户头像
Java~~~
关注
发布于: 2 小时前
从安卓转到Java开发,我吃透了这份pdf,终于4面拿下美团offer

开篇:为什么转 Java?

先说说个人情况吧,坐标广州,16 年从一所普通二本大学毕业,毕业后在一家小公司干 android 开发,年薪在 15w 左右。转 Java 的契机是认识到了一个朋友,做 Java 后台的,经常跟他聊相关的内容,经过慎重考虑及个人的发展规划,所以就决定转型了。

从安卓转 Java,肯定不能是说转就转的,需要耗费大量的时间和精力,所以在工作之余是一定要抽出自己的时间来学习。好在付出终是有回报的,简历上不说敢写精通,熟练是没多大问题的,最终 4 面拿下了美团 offer。

以下主要分享面经和个人学习方法,会包括很多 PDF 文档,如面试题库(含答案+解析)、学习笔记、实战文档和脑图等等,均可以免费分享,添加微信:mxh5261。


美团点评面试场景还原,最真实的面经

美团点评第一面:

  1. 做一下自我介绍吧,简单说一下你的项目;

  2. 有遇到过内存泄漏吗?你们是怎么解决的?

  3. Java 的基本类型有哪几个?String 是不是 java 的基本类型?String 为什么要是 final 类型的?

  4. 反射机制的底层实现是什么?动态呢?动态的实现原理?

  5. HashMap 了解吗?说一下 hashmap 相关的一些东西?hashmap 是线程安全的吗?为什么是线程安全的?

  6. concureenthashmap 了解吗?他是如何实现线程安全的?

  7. 你刚才说 1.8 基于 cas?cas 的 ABA 问题怎么解决?

  8. 说一下 JVM 的线程模型?这些区域都分别是干啥用的?、

  9. 说一下 Java 类加载器的工作机制?类加载在哪个域进行的?

  10. 说一下 Java 的线程模型?

  11. violate 了解吗?它的原理是什么?violate 是线程安全的吗?

  12. 保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读

  13. 数据库的索引有哪几种?为什么要用 B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC 机制了解不?MVCC 机制有什么问题?怎么去解决这个问题?mysql 慢语句调优做过吗?说说你是怎么做的?

  14. redis 了解吗?你说说怎么用 redis 实现分布式锁?

  15. spring 中 Bean 的作用域,springMVC 的 controller 是线程安全的吗?怎么去保证线程安全呢?

  16. 消息队列有用过吗?说说你怎么用的?

  17. 计算机网络了解吗?说一说 TCP 三次握手和四次挥手吧

  18. time_wait 状态产生的原因是什么?,有什么危害?可以如何避免?

  19. 寻找旋转排序数组中的最小值

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

请找出其中最小的元素。

你可以假设数组中不存在重复元素。

示例 1:

输入: [3,4,5,1,2]

输出: 1

示例 2:

输入: [4,5,6,7,0,1,2]

输出: 0

美团点评第二面:

  1. 首先还是问项目。

  2. String,StringBuffer,StringBuilder 的区别,为什么 String 是不可变的,StringBuffer 和 StringBuilder 哪个是线程安全的,他们分别适用于什么场景。

  3. java 类加载过程是怎么样的,说一下 volatile。

  4. 并发包了解吗?假如几个线程之间相互等待,可以用哪个并发类来实现,他的原理是什么?

  5. 数据库慢查询优化了解哪些?

  6. 说一下 spring 容器的启动过程?

  7. 讲一下分布式锁,基于 zookeeper 实现和 redis 实现在性能上有什么差异?

  8. kafka 如何保证不丢消息又不会重复消费。了解大数据相关的一些技术吗?

  9. 最后写了道题:跳跃游戏;


给定一个非负整数数组,你最初位于数组的第一个位置。


数组中的每个元素代表你在该位置可以跳跃的最大长度。


判断你是否能够到达最后一个位置。


示例 1:


输入: [2,3,1,1,4]


输出: true


解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。


示例 2:


输入: [3,2,1,0,4]


输出: false

美团点评第三面:

  1. 自我介绍

  2. 项目介绍

  3. 怎么管理项目成员

  4. 当意见不一致时,如何沟通并说服开发成员,并举个例子

  5. 怎么保证项目的进度

  6. 数据库的索引原理

  7. 非聚簇索引和聚簇索引

  8. 索引的使用注意事项

  9. 联合索引

  10. 从底层解释最左匹配原则

  11. Mysql 对联合索引有优化么?会自动调整顺序么?哪个版本开始优化?

  12. Redis 的应用

  13. Redis 的持久化的方式和原理

  14. 技术选型,一个新技术和一个稳定的旧技术,你会怎么选择,选择的考虑有哪些

  15. 说你印象最深的美团点评技术团队的三篇博客

  16. 最近在学什么新技术?

  17. 你是怎么去接触一门新技术的?

  18. 会看哪些书

  19. 怎么选择要看的书

  20. 为什么要转 Java?

美团点评第四面:

  • 在原公司的哪一段时间是比较享受的?

  • 为什么现在出来看机会呢?看什么类型的机会?

  • 同事或者朋友之间如何评价你?

  • 平时如何学习呢?有没有什么技巧?

  • 你对我们的业务方向有了解吗?

  • 你的职业规划是什么?

  • 你的一些优点有哪些?

  • 目前还在看哪些机会呢?手里还有别的 Offer 吗?

  • 转 Java 之后有遇到哪些困难?怎么解决的?

美团 4 面面试题完整答案(详细解析版):


篇幅有限,面试题答案和下文的文档资料,添加微信:mxh5261~

从安卓转到 Java,我经历了哪些?如何才敢挑战美团?

(一)清楚自己要什么:调整心态,多给自己勇气,重新规划目标

安卓转 Java,这个想法是需要比较大的勇气的,前后我大概是纠结了一年多的时间才做出了决定,期间的心态是比较复杂和焦虑的,最主要的是“担心”,所以要想成功转到 Java,首先第一个难关就是自己的心态问题。这个过程中,我不断给自己加油打气,重新规划目标,才得以冷静且稳定下来,重新规划了自己的目标。


(二)清楚自己学什么:重新梳理知识结构,整理知识脉络

做安卓的,都是具备一定的 Java 基础的,所以相对其他语言来说,转 Java 要容易不少。但要想成为合格的 Java 后台开发,具备的技术肯定是远远不够的,因此需要重新去梳理一遍自己的知识结构,整理 Java 的知识脉络,清楚目前掌握了多少,需要学习哪些内容。


另外,我手上也有一本 Java 核心知识点的 pdf,Java 知识点整理得非常齐全,我之所以能够拿下美团 offer,也多亏我自己努力把这份文档给吃透。需要我分享的可以私信获取~

Java 部分:Java 基础,集合,并发,多线程,JVM,设计模式数据结构算法:Java 算法,数据结构开源框架部分:Spring,MyBatis,MVC,netty,tomcat 分布式部分:架构设计,Redis 缓存,Zookeeper,kafka,RabbitMQ,负载均衡等微服务部分:SpringBoot,SpringCloud,Dubbo,Docker


(三)清楚面试问什么:飞速提升,恶补开源,刷题备战

当自己学习到一定程度后,需要的就是准备面试及工作了,所以这一步就需要让自己有一个飞速的提升,要优化自己所学,要清楚 Java 面试会问一些什么?因此接下来的安排就是要读一些书籍笔记,开始刷题备战面试了。

  • 实战系列:Spring 全家桶+Redis 等


  • 其他相关的电子书:源码+调优


  • 大厂面试题题库:阿里巴巴、腾讯、美团、字节跳动、网易、拼多多等


写在最后

说了这么多,不善言辞,也是随性发挥,想到啥说些啥,更多是对自己开发历程的一些感受和自己学习的方法。不过,最后我想表达的是,在开发过程中每一行代码,每一种设计模式的使用,思考的重点和角度都会有所不同。所以,能够尝试不同的技术栈,从不同的视角来思考并解决问题,融会贯通,才是我个人追求的技术之“道”。

以上内容中,我谈及到的学习方法、学习面试资料,均可以免费分享给大家,希望大家在今年的金九银十里能够发挥顺利,进到自己想进的公司,共勉!

资料免费获取,添加微信:mxh5261。

发布于: 2 小时前阅读数: 3
用户头像

Java~~~

关注

还未添加个人签名 2020.11.03 加入

添加小助理VX:MXH5261获取进阶资料哦

评论

发布
暂无评论
从安卓转到Java开发,我吃透了这份pdf,终于4面拿下美团offer