美团一面
本帖最后由 chris3will 于 2023-3-24 09:52 编辑研究生 暑期实习2023.03.24 到店
- 自我介绍
- 简历上的两个项目挨个讲解
- 项目中写的一定不能忘记细节,忘了Java压力测试的常用工具JMeter
Java
- 并发变成三大特性,原子性,有序性,可见性。这部分面试官想考察volatile的细节和作用,自己没答好,只能说个内存屏障,忘记提防止指令重排序了
- 讲讲ThreadLocal,结合线程池的一些内容,提到了inheritableThreadLocal,ThreadLocal的key为什么是弱引用?
- 线程池核心参数,什么时候创建新的worker,什么时候不会创建。怎么触发的拒绝策略。 [线程池原理](https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html)
- 线程池中的线程不是在线程池创建的时候就创建的,线程池默认初始化后不启动Worker,等到有请求时才启动。每次调用execute()方法时,会添加一个任务,线程池根据如下逻辑进行判断:
- 如果正在运行的线程数量小于corePoolSize,则会立即创建新的线程运行任务。
- 如果正在运行的线程数量大于等于corePoolSize,则会将这个任务放入队列中。
- 如果步骤2队列已经满了,而且运行的线程数量小于maximumPoolSize,则会创建非核心线程立即运行任务。
- 如果任务队列满了,而且正在运行的线程数量大于等于maximumPoolSize,那么线程池会抛出RejectedExecutionException异常。
- 当一个线程完成任务后,线程池会从队列中取下一个任务来执行。当一个线程空闲时间超过keepAliveTime后,线程池会判断:如果当前运行的线程数量大于corePoolSize,则此线程会被终止,当线程池里的所有任务完成后,线程大小最终会缩到corePoolSize的大小。
- Java的锁用过吗?回答Synchronized和Lock,介绍了一些细节,也说了无锁,偏向锁,轻量级锁和重量级锁。面试官还问还有什么锁吗?
- 阻塞队列用过什么,ArrayBlockingQueue,底层原理知道吗?AQS
MySQL
- 聚簇索引、非聚簇索引、覆盖索引。
- 聚簇索引是主键索引,非聚簇索引就是一些二级索引,查的是主索引的键,需要回表,如果我们建立联合索引,符合最左匹配原则,则可以实现索引覆盖,避免回表。
- 知道哪些引擎,MyISAM和InnoDB
- gap锁和MVCC,事务隔离级别,会有什么问题?
- 为什么有mvcc还要有gap锁?这要看是当前读还是快照读,当前读的话行锁加间隙锁可以解决幻读的问题,但是影响了性能,如果是快照读的话,是由mvcc来负责的。
- 知道哪些情况下会索引失效吗?
- 慢查询怎么优化的?
- explain
- Sql注入可以怎么避免?
- 服务器防止攻击,SQL预编译
- Mybatis 底层实现原理知道吗 ?
Redis
- 讲讲数据类型,hash,set,zset,SDS
- 知道hash底层实现吗?压缩列表底层实现知道吗?
- 讲讲持久化方案,rdb和aof
- Redis集群如何保持数据一致性?
算法题
- [整数拆分](https://leetcode.cn/problems/integer-break/)
反问
---
面试官真的会十分发散的去考察面试人员,提到什么就会深挖,或者结合一个场景向你发问。
整个面试过程确实收获不少,查缺补漏。
目前还在等反馈,加油吧。 哈哈,问的真多。。。。 哈哈,可以可以 面试造航母,工作还得靠百度 今天中午两点多,收到了二面邀约,选在了周一晚上,继续准备 ytw6176 发表于 2023-3-24 14:13
面试造航母,工作还得靠百度
面试难度真的不小,喜欢深挖考考面试者理解的深度广度吧
过了吗?看着像是后端的面试 咋这么多问题 这难度...... 是在招配送员吗 几年经验考这些?
页:
[1]
2