百度面试 4.17(已OC)
一面4.17
项目
八股
Java基础
-
深拷贝和浅拷贝的区别?
-
迭代删除list元素方式?有什么问题?
JVM
-
说下JVM的内存模型?
-
你知道Java创建对象的过程吗?(虚拟机接收到创建对象指令,它会首先做什么,执行步骤是什么?)
-
JVM堆的划分?
-
介绍下垃圾回收器以及垃圾回收算法吧?
-
CMS和G1回收的过程?
-
Full GC的触发时机
-
JVM常见的调优参数?
多线程
-
线程的状态?
-
讲一下线程池?
-
讲一下有哪几种线程池?
-
线程池的拒绝策略说下?
-
自定义线程池的有哪些参数,及参数的含义?
-
当线程池初始化之后,线程池中线程的数量是多少?
-
线程池submit方法和execute方法的区别?
-
ThreadLocal讲一下?
-
ThreadLocal的实现原理?
-
你刚刚提到的threadLocalmap是存在哪个对象里面的,定义在ThreadLocal里面的吗?
-
ThreadLocal的应用场景有哪些?
-
ThreadLocal之前存在内存泄漏问题,后来解决了,你知道它是怎么解决的吗?
-
Synchronized了解吗?讲一下?
-
说下Synchronized的实现原理?
-
讲一下Synchronized锁升级的过程?
-
锁升级的底层实现原理?
-
说下CAS和ReentrantLock的区别?
MySQL
-
聚簇索引和非聚簇索引有什么区别?
-
他们两者在使用上有什么区别?
-
说下回表吧?
-
常见的索引类型?
-
事务的四大特性?
-
事务并发带来的问题?
-
事务隔离级别?
-
说下MVCC吧?
Redis
-
说下缓存穿透,缓存击穿,缓存雪崩?
-
假设Redis有一亿个Key,有10万个Key是固定开头的,怎样把他们快速找出来?
假设固定前缀是A
(1)keys A*,因为redis是单线程,所以key太多会导致其他访问redis的应用进入等待状态,所以不推荐使用keys。
(2)scan 0 match A* count 100000 无阻塞提取出指令数据
算法
-
快速排序
-
时间复杂度,空间复杂度
二面 4.17
项目
-
介绍下渗透测试的几种方式?
八股
Java基础
-
Java创建字符串的方式?哪种方式比较好?
集合
-
HashMap的实现原理?
Redis
-
Redis的应用场景?
-
Redis的淘汰机制?
-
Redis持久化机制?
算法
-
两个线程交替打印1-100
-
将字符串中的单词翻转
- mysql:查询总成绩大于260分的学生姓名
三面 4.17
项目
-
项目难点是什么?
八股
-
volatile在并发场景下可以实现原子性吗?
-
CAS的优点是什么?
算法
-
删除排序链表中的重复元素 II
其他
-
讲下你自己的学习方法?
-
两个空水壶,一个5L,一个6L的水壶,怎么取出3L的水?