美团Java一面面经
美团,Java后台开发
8.31 15:00,时间51分钟
- 自我介绍
- 问项目
- 为什么考虑使用redis
- 有没有用到其他关系型数据库
- 考虑redis的时候,有没有考虑容量?大概数据量会有多少?
- 优先队列实现关注,具体详细说一下。对耗时的敏感要求比较高吗?
- 用了异步发送后,本身的事件处理会不会没有及时得到处理结果?
- String占多大内存?
- 简单讲讲JVM的垃圾回收。(从可达性分析算法说到了二次标记,又到了CMS)
- 是否了解堆外内存?
- 说说safepoint,又说到了安全区
- 项目里面有没有用到多线程?
- 轮询list的线程是怎么写的?直接开一个线程有什么需要注意的地方吗?什么时候对线程进行销毁?
- 讲讲多线程里面的原子性和可见性。
- 线程B怎么知道线程A对变量进行修改了呢?
- 用什么方式实现可见性?(volatile)
- volatile能保证有序性吗?扯到了内存屏障
- 了不了解happens-before。
- Linux有研究吗?
- 写了一个mysql运行比较慢(说到了索引)
- 索引有什么需要注意的方面?
- 比如有一个字段是性别,需要加索引吗?又扯到了位图索引
- B+树的基本原理
- MySQL是怎么用B+树
- 堆栈和队列有什么了解,分别是什么特性?
- 实现一个栈怎么实现?(说了用链表)
- 那在push和pop操作头结点有什么变化吗?(不是很理解,答了指针的变化操作)
- 查这个栈里面最小的元素。(再设一个栈,里面存储更小值)
- 旋转有序数组,找到其中一个值。
感觉问的还不算是特别难,都是基础,但是有很多细节自己还是不***楚,不知道能不能过,发一个面经,造福社会,攒攒人品。PS:面试官小哥哥的声音特别有磁性。。。
#美团##Java工程师#