最新美团点评Java团队面试题,感悟分享

helloworld_78018081
• 阅读 2510

1.笔试常见的问题?

面试常见的问题上面给的面试题链接基本都有。我只提几点:

  1. 写SQL:写SQL很常考察group by、内连接和外连接。
  2. 手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。

2.面试流程?

  1. 让你自我介绍
  2. 问Java基础知识
  3. 问项目
  4. 情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。
  5. 你有什么想问面试官的

3.面试常问的知识点?

1)集合相关问题(必问):

  • HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。
  • HashMap和Hashtable的区别。
  • ArrayList、LinkedList、Vector的区别。
  • HashMap和ConcurrentHashMap的区别。
  • HashMap和LinkedHashMap的区别。
  • HashMap是线程安全的吗。
  • ConcurrentHashMap是怎么实现线程安全的。

2)多线程并发相关问题(必问):

  • 创建线程的3种方式。
  • 什么是线程安全。
  • Runnable接口和Callable接口的区别。
  • wait方法和sleep方法的区别。
  • synchronized、Lock、ReentrantLock、ReadWriteLock。
  • 介绍下CAS(无锁技术)。
  • volatile关键字的作用和原理。
  • 什么是ThreadLocal。
  • 创建线程池的4种方式。
  • ThreadPoolExecutor的内部工作原理。
  • 分布式环境下,怎么保证线程安全。

3)JVM相关问题:

  • 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。
  • 垃圾收集有哪些算法,各自的特点。
  • 类加载的过程。
  • 双亲委派模型。
  • 有哪些类加载器。
  • 能不能自己写一个类叫java.lang.String。

4)设计模式相关问题(必问):

  • 先问你熟悉哪些设计模式
  • 然后再具体问你某个设计模式具体实现和相关扩展问题。

5)数据库相关问题,针对Mysql(必问):

  • 给题目让你手写SQL。
  • 有没有SQL优化经验。
  • Mysql索引的数据结构。
  • SQL怎么进行优化。
  • SQL关键字的执行顺序。
  • 有哪几种索引。
  • 什么时候该(不该)建索引。
  • Explain包含哪些列。
  • Explain的Type列有哪几种值。

6)框架相关问题:

  • Hibernate和Mybatis的区别。
  • Spring MVC和Struts2的区别。
  • Spring用了哪些设计模式。
  • Spring中AOP主要用来做什么。
  • Spring注入bean的方式。
  • 什么是IOC,什么是依赖注入。
  • Spring是单例还是多例,怎么修改。
  • Spring事务隔离级别和传播性。
  • 介绍下Mybatis/Hibernate的缓存机制。
  • Mybatis的mapper文件中#和$的区别。
  • Mybatis的mapper文件中resultType和resultMap的区别。
  • Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。

7)其他遇到问题:

  • 介绍下栈和队列。
  • IO和NIO的区别。
  • 接口和抽象类的区别。
  • int和Integer的自动拆箱/装箱相关问题。
  • 常量池相关问题。
  • ==和equals的区别。
  • 重载和重写的区别。
  • String和StringBuilder、StringBuffer的区别。
  • 静态变量、实例变量、局部变量线程安全吗,为什么。
  • try、catch、finally都有return语句时执行哪个。
  • 介绍下B树、二叉树。
  • ajax的4个字母分别是什么意思。
  • xml全称是什么。
  • 分布式锁的实现。
  • 分布式session存储解决方案。
  • 常用的linux命令。

最后

笔者已经把面试题和答案整理成了面试专题文档,有想获取到借鉴参考的朋友:点赞关注后,戳这里即可免费领取

最新美团点评Java团队面试题,感悟分享

最新美团点评Java团队面试题,感悟分享

最新美团点评Java团队面试题,感悟分享

最新美团点评Java团队面试题,感悟分享

最新美团点评Java团队面试题,感悟分享

最新美团点评Java团队面试题,感悟分享

点赞
收藏
评论区
推荐文章
22 22
2年前
【排序算法动画解】简单选择排序
本文为系列专题的第13篇文章。1.2.3.4.5.6.7.8.9.10.11.12.在文章【】中,我们介绍了暴力排序和冒泡排序这两种排序算法,算是一个引子。同时指出暴力排序和冒泡排序的缺点硬伤。本文介绍的简单选择排序则“医治”了上面提到的暴力排序和冒泡排序的“硬伤”。核心思想:从数组的第一个元素开始,将其作为基准元素,然后找出基准
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
java中几种排序的实现
1.最简单的冒泡排序/\\\冒泡排序\/publicstaticvoidbubbleSort(){int\\arr{5,8,1,2,9,8,7,4};System.out.println("排序前的数组为:");for(intnum:arr){System.o
Wesley13 Wesley13
2年前
PHP算法:冒泡排序与快速排序
写一个排序算法,可以是冒泡排序或者快速排序,假设待排序对象是一个二维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的基础知识)//冒泡排序<brfunctionbubble_sort($array)
{
&nbsp;&nbsp;<br$countcount($array);
&nbsp;&nb
Stella981 Stella981
2年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
2年前
mysql 数据库group by 按排序取值
mysql数据库groupby按排序取值 mysql5.7以后,groupby想要按照排序的顺序来取值,在子结果集中要有union,groupby等操作,不然按照id默认排序来取值示例:数据库:score表id user\_id num1 100     952 100     963
Wesley13 Wesley13
2年前
Java面试总结(排序算法)
1.冒泡排序算法描述:两两比较,大的放后面2.选择排序算法描述:在m元数组中找到最小值的位置,然后将最小值的位置和第n(n0,1,2,....m1)位的值对调,排序k次则m元数组中前k(k<m)位的值已经排序好,m元数组中前k位的值不需要再进行排序,此时需要排序的元素只有mk个3.插入排序算
Stella981 Stella981
2年前
JavaScript常用基础算法
基础算法一、排序1.冒泡排序//冒泡排序functionbubbleSort(arr){for(vari1,lenarr.length;i<len1;i){for(varj0;j<
Stella981 Stella981
2年前
Lua 排序算法
冒泡排序(BubbleSort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法步骤1.有一个长度为n
菜园前端 菜园前端
9个月前
什么是冒泡排序
原文链接:什么是冒泡排序(bubbleSort)?冒泡排序是所有排序算法中最简单的一种,当然也是性能最差的一种。冒泡排序的思想其实很简单,就如它的名字一样在水中"冒泡"。水中有很多散乱的小气泡,然后一个个气泡往水面上冒出。例如一组无序的数组,最左边就是水底