首先介绍一下我可个人背景,鄙人小康家庭,父母都是普通职业,供我读书长大不容易,好在我也算争气,高考发挥正常,考了个还算不错的大学,华南地区某211。今年的金三银四本是想好好拼一把,奈何受到疫情影响,只能将自己的计划缩减又缩减,所以第一家选择去面试的百度,奈何三面被虐得“体无完肤”,好在自己并未气馁,复习30天后去面试了字节,最终4面拿下了offer。
百度三面面经
百度一面面试题:
- 自我介绍
- 聊聊项目,时间大概15种左右,面试官会根据项目的一些设计点来提问,提前做好准备,别自己坑了自己
- 分布式锁是锁住一部分还是整个系统,既然是锁住整个,为什么不用消息队列?
- 详细讲下怎么用 mq 实现的最终一致性,还有怎么利用的消息事务?
- tcp 于 http 的关系,如何基于 tcp 实现 http
- Java 打开一个 http 流不关闭的后果
- io 流是基于抽象类还是接口实现的
- 数据库的乐观锁和悲观锁是什么
- 乐观锁实现原理,讲到一半,来写一个乐观锁吧
- java 的类中有什么方法
- 线程安全是什么?
- volatile 和 synchorized 的区别
- 假如有一个类 A 和一个 类 B,这两个类都有一个变量和一个自增操作,A 类的变量用 volatile 修饰,B 类没有用,B 类的自增操作用 synchorized 修饰,他们都是线程安全的吗,如果都是,那为什么要用 synchorized ,volatile 不是更轻量吗,synchorized 有什么作用。
- 智力题:岛上有群人,各自戴着红帽子或者白帽子,但都不知道自己帽子颜色,只有知道自己帽子颜色,第二天才能出岛,这时候有个人进来说了句“你们之中至少有一个人戴了顶红帽子”,问岛上的人最后的离开情况
- 算法:矩阵中的最长上升序列
百度二面面试题:
- 自我介绍
- 项目介绍
- java集合框架全部介绍,从list set queue到map
- hashmap底层扩容线程安全问题
- 如果一个对象 要作为hashmap的key需要做什么?
- Threadlocal类以及内存泄漏
- 线程同步方式,具体每一个怎么做的
- jvm类加载双亲委派模式,有没有能破坏这个模式的方法?类加载整个过程解释
- 垃圾回收算法,垃圾回收器有什么?
- synchronized用在静态和非静态方法的区别