2021.05.13 美团一面 1h30min
JVM
- JVM数据区域的划分?
- 介绍一下JVM的垃圾回收
- 新生代和老年代使用的的垃圾回收器和垃圾收集算法分别是怎样的?
JAVA基础
-
equals()和==的区别
-
final和finalize()的区别
-
如何能够改变final所修饰的类的一些行为?
-
finally的使用场景?如果try代码块中有个return的命令,执行finally块中的代码与执行return指令的顺序是怎样的?
-
static的使用
-
static修饰的变量存放在哪里?
-
ThreadLocal的底层实现?
-
ThreadLocal的使用中什么时候容易报OOM?
ThreadLocal在用完之前,释放资源的时候会调用remove方法,如果对象被弱引用释放,而又同时被其他对象强引用,最终会出现内存泄漏。多次内存泄漏后会导致OOM。
-
Java的多线程的四种实现方式?
-
继承Thread类和实现Runnable接口的区别?
并发编程
- 对volatile关键字的理解
- 线程间是如何通信的?
- 介绍一下多线程并发时的线程安全问题?
- 如何保证线程安全?
- 什么条件下会产生线程间的死锁?
- JUC包中用过哪些类?
- ConcurrentHashMap如何保证线程安全?
- HashMap的底层结构?
- HashMap什么情况下会进入由于线程不安全导致的死循环?
- 线程池用过哪些?线程池的三大核心参数?线程池的主要处理流程?
操作系统
- 进程与线程的区别
- 进程通信的方式
- 了解进程通信中的管道通信方式吗?
- 了解进程通信中的信号量的通信方式吗?
dubbo
-
dubbo的实现原理?
-
dubbo的负载均衡策略?
-
dubbo的负载均衡策略最终都是在哪里实现的?
客户端会去注册中心获取到服务提供者地址列表,服务提供者地址列表中记录着服务名与服务器地址的映射关系,最终是客户端直接向服务端地址发送请求。
场景题
-
现在有一大堆用户的订单数据存放在好几个数据库中,这些数据完全是混乱的,如何统计每一个用户的订单数?并找出订单数TopN的用户?
用哈希表将同一个用户的订单划分到一个数据库中,之后用堆将每个用户的订单数进行排序。
算法题
- 手撕快速排序
2021.05.20 美团二面 50min
专业基础与项目
-
代码的逻辑之美体现在哪里?
-
看过哪些书?在哪些网站上面进行学习?
-
《Java核心技术》看过哪些章节?印象最深的是哪一章?
-
介绍一下dubbo的原理?
-
深挖项目。
-
泛型的原理是什么?解决什么问题?
-
了解过Java中的类加载器吗?
-
springboot和spring的区别?springboot的启动流程是怎样的?
-
项目的开发过程中或是学习的过程中,解决过的一个最难的技术问题是什么?
-
项目中最大的收获是什么?你说提高了代码能力?哪方面有提高?
-
反射的原理是什么?主要解决什么问题?
-
如果一个类没有任何权限修饰符,它的作用域为?
-
++i和i++的区别?
手撕代码
- 一个男女同学的队列,重新排列,使得男女交错排列,且原队列中男、女同学的相对顺序分别保持不变(原队列中男同学的相对顺序保持不变,原队列中女同学的相对顺序保持不变)