分享一位球友的字节大数据基础架构部门的实习生面经,还是热乎的,嘿嘿!
一面 2.17
- 自我介绍
- 接口和抽象类的区别
- 了解过啥设计模式
- 单例模式是啥
- 工厂模式的作用,为什么要用工厂模式?
- 建造者模式的实现方式
- 在设计模式中你使用抽象类还是接口比较多
- 了解哪些 Java 锁
- 死锁的必要条件
- MySQL 索引了解吗(那时候不会就直接说不会了)
- MySQL 事务隔离级别
- 说一下你用过的 Java 框架 (说了 Spring 的 ioc/aop 还没说 aop 就下一问了)
- 项目中如何使用 git 和 maven 的
- 写一个快排 :快排是否稳定、什么情况下会退化、如何优化、时间复杂度
- 写一个二分查找:复杂度(代码题写的太快了, 然后他说时间还没到在问几个问题)
- 了解分布式吗(NO)
- 说一下 Java 基础类型
- 为什么 int 是 2 的 31 次方
- 了解 Docker 吗
- 什么是 Java 同步和异步
反问:
- 部门的业务
- 对我的评价
二面 2.18
- 进程之间的通信
- 说一下你了解的锁
- 说一下 synchronized 和 reentranlock
- 介绍一下 Reentrantlock
- 单例模式中变量前加的关键字(volatile)
- 单例模式并发下实现方式
- 双重检查锁(DCL)
- 内部类、枚举类
- volatile 的作用是什么
- 防止 JVM 的指令重排 ,还有一个重要的作用就是保证变量的可见性
- 会主动刷新存储
- 聚集索引和非聚集索引的区别
- MySQL 三大范式说一个你了解的
- MySQL 的 ACID 是什么
- Maven 包冲突怎么解决
- 介绍一下 HashMap
- HashMap 扩容了解吗?说一下扩容因子(loadFactor)
- 红黑树的特点,
- 为啥红黑树比较二叉树快
- Redis 为什么快?
- Redis 缓存机制
- LeetCode 25 困难:K 个一组反转链表改版(最后 n 个不足也反转)
三面 Leader 面 - 2.21(挂)
- Object 类里有什么方法
- 对 hashCode() 与 equals() 的了解
- 有用过 Object 类中相关锁的方法吗
- Java 垃圾回收的方法新生代和老年代的不同的算法
- 设计模式中有用到锁的模式
- 如果没有使用两个锁单例会有什么问题
- MySQL 使用还是对他的原理有什么了解
- 在开发项目中有什么问题吗, 然后最后解决了的
- LeetCode 101 简单:对称二叉树(还是题刷的不够多,没写到这题也没多写二叉树,我居然用 BFS 写的)
参考答案
你可以在下面两份参考资料中找到详细的参考答案:
- JavaGuide 在线阅读版:https://javaguide.cn/
- 《Java 面试指北》
·········· END ··············