七月第一周面试群总结

174 阅读7分钟

七月第一周面试群总结:

1京东一面

  1. 自我介绍
  2. 讲一下dubbo这个rpc框架的调用方式
  3. dubbo配合zookeeper怎么进行服务注册与发现
  4. springboot是怎么读取dubbo.xml文件的,启动spring项目的时候是怎么实例化dubbo里面的类的,分析具体细节与源码
  5. zookeeper和eureka注册中心的区别,cap定理,zookeeper选举过程
  6. 平时怎么优化mysql的,mysql的索引结构,每个结点怎么存,mysql一张表最大能存多少数据。b+树的树深度怎么计算。叶子结点存了什么
  7. 聚簇索引和非聚簇索引的区别与底层原理
  8. sychronized关键字底层实现,lock底层实现
  9. lock底层AQS怎么实现,CLH队列怎么存储数据,具体细节
  10. aqs中的state字段作用,如果这个程序突然挂了,锁着的资源怎么做,aqs里面的执行流程
  11. volatile原理,底层怎么可见性和保证有序,说一下mesi缓存一致性协议具体
  12. 锁的升级,对象的32位或者64位都存了啥
  13. 用过redis么,用redis都做了什么 Redis 系列
    1. Redis的删除策略,过期删除有哪些过期策略
    2. Redis的持久化,rdb和aof区别,redis服务挂了怎么恢复数据,具体恢复过程
    3. Redis的选举过程
  14. mq的作用,用过哪些 (深入的不够)
  15. hashmap底层原理,为什么线程不安全,扩容的具体思路,有没有线程安全的map
  16. 讲一下currenthashmap的原理,1.7和1.8区别,扩容,协助扩容
  17. ThreadLocal源码,怎么解决哈希冲突
  18. 场景题,数据库里面有两列数据,id和score,数据量上百万。用线程池创建线程进行多线程累加score,怎么设计。从创建线程池到取数据累加存储结果。
  19. 场景题,怎么设计一个高并发接口

1 上海-叮咚买菜(20-08-18)

  1. ArrayList的扩容机制
  2. HashMap的底层原理,扩容机制,如果多线程一边size(),一边put()会发生什么,ConcurrentHashMap的原理,1.8有个很大的改动是什么
  3. 怎么创建一个线程,线程池的几个参数和运行原理,核心线程什么时候回创建,能不能初始就创建核心线程,怎么回收核心线程(allowCoreThreadTimeOut)。
  4. synchronized和Lock的原理是什么,有什么区别,是不是重入锁(原理),是不是公平锁,可不可以中断,锁的膨胀
  5. JVM内存模型。垃圾回收算法,讲讲什么是分代收集算法
  6. IOC和DI,实现原理,AOP的实现原理
  7. SpringMVC的工作原理
  8. SpringBoot有什么用,讲一讲常用注解,SpringBootApplication这个注解用了哪些注解。
  9. Redis的失效策略,什么是Redis的缓存穿透和缓存雪崩,怎么解决。
  10. 事务的四种隔离级别,常用的传播级别。假设A方法不带@Transaction注解,B方法带@Transaction注解,A方法调用B方法会发生什么。
  11. Oracle的隔离级别是什么,Mysql的隔离级别是什么
  12. InnoDB和MyISAM的区别。
  13. 聚簇索引和非聚簇索引,什么情况下索引会失效

2 美团外卖(一面)

  1. mybatis工作流程?
  2. 为什么 接口和配置文件要分开?
  3. 事务注解 失效的情况
  4. 描述下 一个 事务 注解 从 spring 到 mybatis 到 mysql 的工作流程
  5. 开启事务 和回滚事务 在spring mybatis 都做了什么处理
  6. cglib 为什么不需要接口
  7. mysql 回滚事务 底层是做了哪些
  8. redo undo 谁先写入
  9. Dubbo 系列
    1. dubbo 工作流程
    2. dubbo 服务端 因为网络原因调用不通会做什么处理
    3. dubbo 缓存列表存放在哪里
    4. N多个客户端访问 坏掉的服务节点 此时dubbo 会做什么处理
    5. 现在这个服务忽然能运行了(缓存列表已经不在了) 客户端如何知道
    6. N多个客户端访问 坏掉的服务节点 此时dubbo 会做什么处理
    7. 现在这个服务忽然能运行了(缓存列表已经不在了) 客户端如何知道
    8. N多个请求进来 访问zk 压力大 dubbo 是怎么处理的(除了缓存列表)
    9. 现在这个服务忽然能运行了(缓存列表已经不在了) 客户端如何知道
    10. 多个请求进来 访问zk 压力大 dubbo 是怎么处理的(除了缓存列表)
  10. Hystrix 线程池中的等待队列有哪几种,内部都是怎么实现的,多个请求进来排队是阻塞还是非阻塞 Hystrix 除了线程池还有几种限流配置
  11. JVM 系列
    1. G1 染色 区域 按什么划分,有几个维度
    2. 标记耗时还是整理耗时
    3. 标记为什么耗时
    4. 跨代 标记 如何做的
  12. 算法 :合并两个数组变成一个有序的数组*(还是比较简单的*)

3 字节跳动

  1. HashMapd的原理,扩容。线程安全的Map有哪些,ConcurrentHashMap的原理,size()操作会发生什么
  2. 线程池的几个参数和运行原理。
  3. synchronize和lock的区别,是否可重入,怎么实现的。
  4. TCP和UDP的区别,TCP三次握手和四次挥手,time_wait等待多久。
  5. http和https的区别。
  6. Redis的5种数据结构,SortSet怎么实现的(跳表) zset(也是跳表)
  7. Redis的持久化机制。
  8. Redis的分布式锁怎么实现的,数据到期失效了怎么办。
  9. 算法题目 : 两数之和还是比较简单的 leetcode我记得是第一题(难度*)

在这里插入图片描述算法题目 在这里插入图片描述

3.云学堂

  1. 注解的原理是什么?怎么实现注解功能?springmvc中扫描组件的注解是什么?
  2. spring中事务怎么实现?实现原理是啥?
  3. 线程的创建方式有哪些?最好的是哪种?为什么?
  4. 我们可以创建哪些类型的线程池?
  5. 现在有三个线程t1、t2、t3,我想控制按我要的顺序执行怎么做?(我回答,用join),追问join的实现原理?
  6. mysql的存储引擎有哪些?有什么区别?
  7. dubbo中同步和异步怎么实现的?
  8. hystrix使用遇到过哪些问题吗?
  9. nacos实现配置中心的原理?即我在控制台配置后,后台怎么获取到配置的
  10. 接口幂等性的实现怎么做的?

4.奖多多

  1. volatile了解吗?干嘛用的?为什么要禁止指令重排?
  2. jvm内存结构说说?堆结构?为什么要搞幸存者0区和幸存者1区两个?
  3. 你们线上用的垃圾回收器是哪个?
  4. 悲观锁和乐观锁的区别?比如现在我把value=1值更新成value=2,用乐观锁怎么实现?
  5. 给了个sql,a、b字段为整型,select * from table where a>? and b=?;如何优化?
  6. 你用过哪些设计模式?举例下场景
  7. http和https的区别?
  8. 对称加密和非对称加密的区别?
  9. 给你一个容器,一边往里面随机放入整型数据,一边从里面取出最大的那个数,你怎么实现?

5.云极客

  1. 说说你用过哪些并发类?(juc)
  2. 线程创建的方式有哪些?
  3. 比如用shard-jdbc分表后,怎么实现分页查询和优化查询让查询效率更高?
  4. 分布式锁怎么实现的?
  5. redis数据类型有哪些?缓存穿透是怎么解决的?
  6. RabbitMQ的工作流程是怎么样的?
  7. vue.js会写吗?
  8. Nginx的负载均衡策略?那springcloud中服务降级怎么做的?如果现在想在gateway里做服务限流,该如何实现?
  9. JVM内存结构及各部分都干嘛的?
  10. 给你一组数,怎么找这组数的中位数?

有需要的可以关注走一波,私聊我加群,送福利 群内更新内容:

hashMap 扩容/hash冲突/put过程

HashMap扩容hash冲突put过程juc.correntHashMap /HashTable 进行对比
Redis数据结构redis set 过程redis 过期策略(定时/LRU)redis 分布式锁/锁超时/从机宕机的情况