七月第一周面试群总结:
1京东一面
- 自我介绍
- 讲一下dubbo这个rpc框架的调用方式
- dubbo配合zookeeper怎么进行服务注册与发现
- springboot是怎么读取dubbo.xml文件的,启动spring项目的时候是怎么实例化dubbo里面的类的,分析具体细节与源码
- zookeeper和eureka注册中心的区别,cap定理,zookeeper选举过程
- 平时怎么优化mysql的,mysql的索引结构,每个结点怎么存,mysql一张表最大能存多少数据。b+树的树深度怎么计算。叶子结点存了什么
- 聚簇索引和非聚簇索引的区别与底层原理
- sychronized关键字底层实现,lock底层实现
- lock底层AQS怎么实现,CLH队列怎么存储数据,具体细节
- aqs中的state字段作用,如果这个程序突然挂了,锁着的资源怎么做,aqs里面的执行流程
- volatile原理,底层怎么可见性和保证有序,说一下mesi缓存一致性协议具体
- 锁的升级,对象的32位或者64位都存了啥
- 用过redis么,用redis都做了什么 Redis 系列
- Redis的删除策略,过期删除有哪些过期策略
- Redis的持久化,rdb和aof区别,redis服务挂了怎么恢复数据,具体恢复过程
- Redis的选举过程
- mq的作用,用过哪些 (深入的不够)
- hashmap底层原理,为什么线程不安全,扩容的具体思路,有没有线程安全的map
- 讲一下currenthashmap的原理,1.7和1.8区别,扩容,协助扩容
- ThreadLocal源码,怎么解决哈希冲突
- 场景题,数据库里面有两列数据,id和score,数据量上百万。用线程池创建线程进行多线程累加score,怎么设计。从创建线程池到取数据累加存储结果。
- 场景题,怎么设计一个高并发接口
1 上海-叮咚买菜(20-08-18)
- ArrayList的扩容机制
- HashMap的底层原理,扩容机制,如果多线程一边size(),一边put()会发生什么,ConcurrentHashMap的原理,1.8有个很大的改动是什么
- 怎么创建一个线程,线程池的几个参数和运行原理,核心线程什么时候回创建,能不能初始就创建核心线程,怎么回收核心线程(allowCoreThreadTimeOut)。
- synchronized和Lock的原理是什么,有什么区别,是不是重入锁(原理),是不是公平锁,可不可以中断,锁的膨胀
- JVM内存模型。垃圾回收算法,讲讲什么是分代收集算法
- IOC和DI,实现原理,AOP的实现原理
- SpringMVC的工作原理
- SpringBoot有什么用,讲一讲常用注解,SpringBootApplication这个注解用了哪些注解。
- Redis的失效策略,什么是Redis的缓存穿透和缓存雪崩,怎么解决。
- 事务的四种隔离级别,常用的传播级别。假设A方法不带@Transaction注解,B方法带@Transaction注解,A方法调用B方法会发生什么。
- Oracle的隔离级别是什么,Mysql的隔离级别是什么
- InnoDB和MyISAM的区别。
- 聚簇索引和非聚簇索引,什么情况下索引会失效
2 美团外卖(一面)
- mybatis工作流程?
- 为什么 接口和配置文件要分开?
- 事务注解 失效的情况
- 描述下 一个 事务 注解 从 spring 到 mybatis 到 mysql 的工作流程
- 开启事务 和回滚事务 在spring mybatis 都做了什么处理
- cglib 为什么不需要接口
- mysql 回滚事务 底层是做了哪些
- redo undo 谁先写入
- Dubbo 系列
- dubbo 工作流程
- dubbo 服务端 因为网络原因调用不通会做什么处理
- dubbo 缓存列表存放在哪里
- N多个客户端访问 坏掉的服务节点 此时dubbo 会做什么处理
- 现在这个服务忽然能运行了(缓存列表已经不在了) 客户端如何知道
- N多个客户端访问 坏掉的服务节点 此时dubbo 会做什么处理
- 现在这个服务忽然能运行了(缓存列表已经不在了) 客户端如何知道
- N多个请求进来 访问zk 压力大 dubbo 是怎么处理的(除了缓存列表)
- 现在这个服务忽然能运行了(缓存列表已经不在了) 客户端如何知道
- 多个请求进来 访问zk 压力大 dubbo 是怎么处理的(除了缓存列表)
- Hystrix 线程池中的等待队列有哪几种,内部都是怎么实现的,多个请求进来排队是阻塞还是非阻塞 Hystrix 除了线程池还有几种限流配置
- JVM 系列
- G1 染色 区域 按什么划分,有几个维度
- 标记耗时还是整理耗时
- 标记为什么耗时
- 跨代 标记 如何做的
- 算法 :合并两个数组变成一个有序的数组*(还是比较简单的*)
3 字节跳动
- HashMapd的原理,扩容。线程安全的Map有哪些,ConcurrentHashMap的原理,size()操作会发生什么
- 线程池的几个参数和运行原理。
- synchronize和lock的区别,是否可重入,怎么实现的。
- TCP和UDP的区别,TCP三次握手和四次挥手,time_wait等待多久。
- http和https的区别。
- Redis的5种数据结构,SortSet怎么实现的(跳表) zset(也是跳表)
- Redis的持久化机制。
- Redis的分布式锁怎么实现的,数据到期失效了怎么办。
- 算法题目 : 两数之和还是比较简单的 leetcode我记得是第一题(难度*)
在这里插入图片描述算法题目
3.云学堂
- 注解的原理是什么?怎么实现注解功能?springmvc中扫描组件的注解是什么?
- spring中事务怎么实现?实现原理是啥?
- 线程的创建方式有哪些?最好的是哪种?为什么?
- 我们可以创建哪些类型的线程池?
- 现在有三个线程t1、t2、t3,我想控制按我要的顺序执行怎么做?(我回答,用join),追问join的实现原理?
- mysql的存储引擎有哪些?有什么区别?
- dubbo中同步和异步怎么实现的?
- hystrix使用遇到过哪些问题吗?
- nacos实现配置中心的原理?即我在控制台配置后,后台怎么获取到配置的
- 接口幂等性的实现怎么做的?
4.奖多多
- volatile了解吗?干嘛用的?为什么要禁止指令重排?
- jvm内存结构说说?堆结构?为什么要搞幸存者0区和幸存者1区两个?
- 你们线上用的垃圾回收器是哪个?
- 悲观锁和乐观锁的区别?比如现在我把value=1值更新成value=2,用乐观锁怎么实现?
- 给了个sql,a、b字段为整型,select * from table where a>? and b=?;如何优化?
- 你用过哪些设计模式?举例下场景
- http和https的区别?
- 对称加密和非对称加密的区别?
- 给你一个容器,一边往里面随机放入整型数据,一边从里面取出最大的那个数,你怎么实现?
5.云极客
- 说说你用过哪些并发类?(juc)
- 线程创建的方式有哪些?
- 比如用shard-jdbc分表后,怎么实现分页查询和优化查询让查询效率更高?
- 分布式锁怎么实现的?
- redis数据类型有哪些?缓存穿透是怎么解决的?
- RabbitMQ的工作流程是怎么样的?
- vue.js会写吗?
- Nginx的负载均衡策略?那springcloud中服务降级怎么做的?如果现在想在gateway里做服务限流,该如何实现?
- JVM内存结构及各部分都干嘛的?
- 给你一组数,怎么找这组数的中位数?
有需要的可以关注走一波,私聊我加群,送福利 群内更新内容:
hashMap 扩容/hash冲突/put过程
HashMap | 扩容 | hash冲突 | put过程 | juc.correntHashMap /HashTable 进行对比 |
---|---|---|---|---|
Redis | 数据结构 | redis set 过程 | redis 过期策略(定时/LRU) | redis 分布式锁/锁超时/从机宕机的情况 |