百度校招Java面经
7/27 一面
- 自我介绍,讲一讲简历里的项目。
- TCP和UDP区别。二者的使用场景。TCP三次握手、四次挥手。为什么TIME_WAIT是2MSL。
- OSI七层模型,五层模型。
- 哈希表,哈希冲突。
- 进程死锁,四个条件,打破死锁。
- 进程,线程。
- Synchronized,乐观锁和悲观锁,CAS,自旋锁。
- 红黑树,B-树,B+树。
- 哈希表为什么先用链表,再改成红黑树。
- String,StringBuilder,StringBuffer。
- String中字符数组为什么是final的。
- 多线程。start,run。Thread里面的run和start。
- ==和equals。重写equals为什么要重写hashCode。
- 单例模式里面为什么写了volatile。
- 数据库索引,聚簇索引,非聚簇索引。
- 了解哪些排序算法。各算法的最差和平均复杂度。
- 线程池,执行流程。
- 堆化的过程。
- 序列化和反序列化。
- 类加载的过程。
- Spring中Bean的作用域。
- Spring的AOP和IOC。写过哪些动态代理。
- Spring Boot 与 Spring MVC各自的优缺点。
- Jvm区域。堆,栈,常量池等。
- 代码:单例模式双重检查锁。
- 代码:反转链表。
- 代码:堆排序。
顺序忘记了。。想到什么写什么吧。
许愿二面。
7/29 二面
- IO多路复用。select、poll、epoll。
- ThreadLocal。
- Redis是否了解。
- 数据库索引。唯一索引。
- OOM如何定位。栈溢出和内存溢出。
- Synchronized和Lock。
- User-Agent。
- Socket,Tcp,Http。
- BufferedReader,BufferedWriter。
- 讲一讲装饰模式,JDK中哪里使用了装饰模式。(给说成外观模式了,惨。。。)
- 脏读和幻读。MySQL的MVCC。
- MySQL分页。
- PageCache。
- xss攻击。(没听过。。。)
- 代码:实现String.indexOf。
- 两个文件,包含上亿个URL,只有4G内存,如何找出两个文件相同的URL,讲思路就行。
许愿三面机会。。