美团社招Java高级开发一面,二面,三面,四面合并面,已拿offer

程序员白楠楠 2020-11-10 23:18:31
java 面试 spring redis CAS


美团点评社招java一面

1、做一下自我介绍吧,简单说一下你的项目?
2、有遇到过内存泄漏吗?你们是怎么解决的?这个前阵子确实遇到过一次,还算运气比较好。
3、java的基本类型有哪几个?String是不是java的基本类型?String为什么要是final类型的?
4、反射机制的底层实现是什么?动态呢?动态的实现原理?
5、hashmap了解吗?说一下hashmap相关的一些东西?hashmap是线程安全的吗?为什么是线程安全的?concureenthashmap了解吗?他是如何实现线程安全的?你刚才说1.8基于cas?cas的ABA问题怎么解决?
6、说一下JVM的线程模型?这些区域都分别是干啥用的?java线程模型和jvm线程模型注意区分、总结下,网上很多文章都是错的。
7、说一下java类加载器的工作机制?类加载在那个区域进行的?
8、说一下java的线程模型?violate了解吗?他的原理是什么?violate是线程安全的吗?为什么不是?
9、保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读
10、数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优做过吗?说说你是怎么做的?
11、redis了解吗?你说说怎么用redis实现分布式锁?
12、spring中Bean的作用域,springMVC的controller是线程安全的吗?怎么去保证线程安全呢?
13、消息队列有用过吗?说说你怎么用的?你这么用感觉不大对吧。。大写的尴尬。。
14、计算机网络了解吗?说一说TCP三次握手和四次挥手吧,感觉这个真的是计算机网络必考知识点啊,每次问到计算机网络都会问这个。time_wait状态产生的原因是什么?,有什么危害?可以如何避免?
15、leetcode153. 寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [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

你手里有哪些offer了?最快什么时候能入职呢?还有什么问题想问的?然后说会有hr联系你,第二天就接到了hr约二面时间的通知。

总结下来,面试问的东西还是挺宽的,而且问的很细,一个知识点基本都是问到答不上来为止。还是有很多东西需要加强?在美团的面试中还是学到了一些东西。

美团点评二面

1.首先还是问项目。问的比较细,比较全。
2.String,StringBuffer,StringBuilder的区别,为什么String是不可变的,StringBuffer和StringBuilder哪个是线程安全的,他们分别适用于什么场景。
3.java类加载过程是怎么样的,说一下volatile。
4.并发包了解吗?假如几个线程之间相互等待,可以用哪个并发类来实现,他的原理是什么?
5.数据库慢查询优化了解哪些?说了很多,面试官说假如这些都已经做好了还是很慢怎么办?最后不清楚问了下面试官,面试官主要想了解数据库分区的知识。
6.说一下spring容器的启动过程?
7.讲一下分布式锁,基于zookeeper实现和redis实现在性能上有什么差异?
8.kafka如何保证不丢消息又不会重复消费。了解大数据相关的一些技术吗?
9.最后写了道题,leetcode55. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。

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

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

示例 1:

输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。

示例 2:

输入: [3,2,1,0,4]
输出: false
解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。

最快什么时候能过来?有什么问题想问的?然后说后面有hr再和你联系。

美团点评三面

面试官首先问了很多简历中的一些基本信息.画一下你这个项目与哪些工程交互,它在你们的产品中处于什么样一个位置

画一下你们这个项目的架构图,挑一个你觉得比较难的业务场景来讲一下,

你们这个项目中都遇到了哪些问题呢?说说你们最后都怎么解决的

写了一段代码,问这个代码最后输出什么?申请多大的内存空间,都在什么位置申请的

public class Test {

public static void main(String[] args) {

String str = "hello";
        test(str);
        System.out.println(str);
    }

public static void test(String str){
        str = str + "world";
        System.out.println(str);
        int[] a = new int[1024];
    }
}

hashmap了解吗?他的set和get的时间复杂度是多少?为什么是O(1),说下详细过程,hashmap是线程安全的吗?
Jvm了解吗?jvm中哪些可以作为垃圾回收的gcroot?为什么呢?
什么时候能过来上班?然后就说等会hr面。

美团点评四面,hr面

问了下基本情况,什么时候能过来,为什么想换工作?在上家的绩效和薪水情况,期望工资是多少。

 

版权声明
本文为[程序员白楠楠]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4800383/blog/4711750

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云