菜鸟2023暑期实习Java面经
4.4 电话
多线程
- 介绍线程池
- 任务提交后,什么流程?
- 线程的状态,状态转化
- 如何保证线程安全
- CAS是什么,CAS有什么问题
Java集合
- ArrayList和LinkedList区别:
- HashMap底层实现:
- HashMap线程安全吗?
- 有哪些线程安全的集合,怎么实现的?
JVM
- JVM内存模型
- 什么时候触发垃圾回收
- 双亲委派机制的作用
MySQL
- 介绍索引,为什么需要索引
- 使用索引一定会变快吗
- 慢索引怎么排查,怎么调优
Redis
- 数据结构
- 持久化机制
- 缓存雪崩,击穿,穿透分别是什么,如何避免
算法题
- 介绍排序算法
- 大数组,获取最小的k个数字
- 大跟堆 O(nlogk)
- 还有更快的嘛
- 快速排序 O(n)
4.13 电话
- Java线程和操作系统线程有啥关系,不一样的地方
- 操作系统用户态和内核态概念
- socket传输过程
- java读文件,字节流和字符流,涉及什么类,参数是什么,分别适用哪些场景
- 序列化和反序列化的定义
- Hessian和JSON是一个层面的东西吗
- 动态代理
- Linux命令实现:统计文件中某个字符串的个数
- 创建线程池涉及什么类,参数;提交线程的流程
- 布隆过滤器概念,功能,怎么实现的
- 为什么算法转开发
- chatgpt了解吗
- 后面开始闲聊,面试官说我对开发并不熟悉,为什么要投开发岗,到底喜欢开发吗。