.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的用户?
用哈希表将同一个用户的订单划分到一个数据库中,之后用堆将每个用户的订单数进行排序。
算法题
手撕快速排序
.05.20 美团二面 50min
专业基础与项目
代码的逻辑之美体现在哪里?
看过哪些书?在哪些网站上面进行学习?
《Java核心技术》看过哪些章节?印象最深的是哪一章?
介绍一下dubbo的原理?
深挖项目。
泛型的原理是什么?解决什么问题?
了解过Java中的类加载器吗?
springboot和spring的区别?springboot的启动流程是怎样的?
项目的开发过程中或是学习的过程中,解决过的一个最难的技术问题是什么?
项目中最大的收获是什么?你说提高了代码能力?哪方面有提高?
反射的原理是什么?主要解决什么问题?
如果一个类没有任何权限修饰符,它的作用域为?
++i和i++的区别?
手撕代码
一个男女同学的队列,重新排列,使得男女交错排列,且原队列中男、女同学的相对顺序分别保持不变(原队列中男同学的相对顺序保持不变,原队列中女同学的相对顺序保持不变)