腾讯实习

一面

  1. 反射是什么,使用场景
  2. 反射的性能问题
  3. ArrayList扩容
  4. HashMap 实现原理
  5. HashMap 实现线程安全
  6. ConcurrentHashMap 实现原理
  7. ConcurrentHashMap在哪里使用了CAS
  8. volatile原理
  9. synchronized原理
  10. G1收集器特性
  11. jstack
  12. MySQL事务隔离级别
  13. 可串行化隔离级别的实现原理,如何避免幻读的
  14. 索引的设计原则
  15. 索引的底层结构
  16. 为什么主键用自增不用UUID
  17. Redis为什么快
  18. Redis 两种持久化方式
  19. 写RDB文件的时候fork 调用的原理,为什么这样性能表现良好
  20. SpringMVC的工作流程
  21. SpringMVC的处理器拦截器的使用场景
  22. 链表倒数第K个节点

字节飞书实习

一面

  1. Java8之后的更新趋势
  2. G1收集器特性
  3. ConcurrentHashMap 版本更新及实现原理
  4. 数据库索引底层结构,为什么用B+树不用B树
  5. 数据库事务ACID特性是怎么实现的
  6. Redis除了做缓存还有什么用
  7. Redis 中用到哪些数据结构
  8. 项目里的Redis是单机的吗,如果单机的话 Redis 分布式锁有没有什么问题
  9. 分布式锁是怎么用的
  10. 分布式锁是怎么实现的,用了啥命令
  11. 为什么选用Kafka,和RocketMQ有什么区别
  12. 出现OOM问题怎么定位
  13. Socket如何处理并发连接
  14. TCP三次握手
  15. 死锁的出现场景
  16. 死锁有哪些危害
  17. 为什么用DDD,有什么优势
  18. 算法题:有效的括号

二面

  1. 算法:合并区间
  2. 觉得哪门专业课学得比较好
  3. 说说malloc的执行过程
  4. 说说操作系统中堆的结构
  5. 写过系统级别的代码吗
  6. 说说项目
  7. 为什么做这个项目
  8. 在项目中学到了什么
  9. 后端的知识会哪些

阿里云文件存储实习

一面

  1. 算法:LRU
  2. Redis定期键删除策略
  3. 项目为啥要用这些组件
  4. 项目中如何实现数据—致性
  5. 处理万一 Redis 崩了怎么办
  6. MySQL和Redis数据同步方式或相关组件
  7. MySQL索引
  8. 进程通信的方式
  9. 并发数据,QPS
  10. 这么低的QPS,是不是直接用MySQL就行了

阿里云块存储实习

一面

  1. 介绍两个项目
  2. 对线程安全的理解
  3. 什么是死锁
  4. 如何解决死锁问题
  5. Java 中创建线程的方式
  6. Java 中线程的状态
  7. sleep和wait的区别
  8. volatile 和synchronized
  9. 悲观锁和乐观锁
  10. CAS
  11. 三次握手过程
  12. 四次挥手过程
  13. 为什么需要三次握手
  14. TIME_WAIT状态
  15. 什么是拥塞
  16. TCP 拥塞控制
  17. TCP和UDP的区别
  18. 数据库类型
  19. 什么是数据库事务
  20. 事务隔离级别是什么
  21. 脏读、幻读、不可重复读
  22. MySQL常用存储引擎
  23. InnoDB和MyISAM的区别
  24. 分布式系统中的一致性问题
  25. CAP理论
  26. MySQL主从复制

字节抖音日常实习

一面

  1. 介绍项目
  2. Redis 分布式锁干嘛用的
  3. 消息队列怎么处理数据—致性的
  4. 处理数据一致性的消息发送,在Redis 分布式锁的范围内吗
  5. 分布式锁的过期时间是多长
  6. 事务性消息
  7. 进程和线程的区别
  8. 为什么进程上下文切换开销比线程大
  9. 进程和线程上下文切换具体需要保存哪些信息
  10. 内存分段管理中,包含哪些段
  11. —次HTTP的请求涉及哪些网络知识
  12. 有一个服务器,上面存储了很多静态的文件、图片等内容,如何设计来做优化
  13. LRU和LFU
  14. CDN协议
  15. 逻辑题:在原点上,第一次可以走一步,第二次可以走两步,以此类推。如何判断能否到达数轴上一个指定位置,如下标为100的位置。

二面

  1. 介绍项目
  2. 项目中有没有涉及到多数据库间数据—致性的处理
  3. MySQL各个隔离级别分别是怎样实现的
  4. MySQL中的锁有哪些
  5. MySQL中自增列是怎样实现的
  6. select in share mode和select for update的区别
  7. TCP四次挥手中的状态变化
  8. 为什么需要TIME_WAIT
  9. 流量控制和拥塞控制为什么我们都需要

阿里云弹性计算暑假实习

一面

  1. 抽奖策略是啥
  2. 游戏抽奖中,如何在要求十连抽保底的前提下,依然维持概率
  3. 规则引擎怎么实现的
  4. SpringBoot Starter 的配置文件
  5. 如果需要更轻量级的实现,如何替代你的 Kafka、Redis、Dubbo
  6. 分库分表系统的ID 如何选择
  7. 父子线程之间ThreadLocal的值如何共享
  8. ThreadLocal在线程池中的特殊处理
  9. 电脑突然卡一下是一般是什么指标会明显不正常:负载

阿里云ECS暑假实习

一面

  1. 为什么重写equals 还要重写hashCode
  2. StringBuiler、StringBuffer 和String
  3. HashMap、HashTable和ConcurrentHashMap
  4. 三次握手
  5. 两次握手可以吗HTTPS
  6. TCP拥塞控制
  7. 数据库事务ACID属性
  8. 索引种类
  9. b树索引和b+树索引

支付宝商家开放平台暑假实习

一面

  1. 介绍项目
  2. 项目基于什么需求,在其中做了什么
  3. 为什么做了一个分库分表组件,而不是其他的中间件如RPC
  4. 悲观锁和乐观锁
  5. 讲讲CAS
  6. Java中的四种引用级别
  7. 五种IO模型
  8. Java 中泛型的定义,应用场景
  9. 泛型的底层实现
  10. Java对象创建过程
  11. 分布式事务常见解决方案
  12. 常见的加密算法
  13. 在软件开发中,如何保证软件质量
  14. 白盒测试和黑盒测试
  15. Java中的单元测试框架
  16. 项目有什么功能
  17. 领域模型的架构
  18. 拿到一个商城系统的需求,如何去做

钉钉文档协同

一面

  1. 项目的背景
  2. 为什么做分库分表中间件
  3. 有没有在抽奖系统的层次上做什么校验
  4. 如果奖品或者活动没有库存了,会发生什么
  5. 用户有没有自己的可以参加活动的次数,如何做处理的
  6. 如果你来设计支付宝集五福活动,会怎样设计
  7. 在系统中有什么原子的操作吗
  8. 分布式锁的设计
  9. Redis的主从复制机制
  10. 既然Redis的从服务器复制不是同步的,那么你如何信任你的高可用缓存系统呢
  11. 分库分表中间件中如何用到扰动函数的
  12. 为什么分表操作中表的修改不在业务层做,而是反射获取表名并修改

阿里云日志暑假实习

一面

  1. 两个抽奖策略的应用场景
  2. 讲—下怎么用分布式锁的
  3. 数据库事务是什么
  4. 为什么奖品那里用数据库行锁,数据库行锁怎么保证线程安全的
  5. 垃圾回收机制
  6. 怎样减少Full GC的次数
  7. Java中的内存泄漏

支付宝搜索工程暑期实习

一面

  1. 介绍项目
  2. 为什么用消息队列
  3. 为什么用 Redis
  4. 为什么要用Redis 分布式锁,而不是原子的库存扣减
  5. Redis 字符串的实现
  6. Redis 哨兵模式和集群模式的区别
  7. 哨兵模式和集群模式分别满足CAP理论中的什么情形
  8. 用Executors创建线程池的问题
  9. 线程池的处理流程
  10. 商用垃圾回收器的演进过程