java开发,百度面经
武汉场
## 一面
ConcurrentHashMap的原理。
ARP协议,如果返回的主机不是本身也返回怎么办。
UDP和TCP的区别。使用场景
聚集索引和非聚集索引的区别。使用场景。
数据库锁有几种(行级锁和表级锁)
CAS会有什么问题。解决办法
Synchronized。
https的ssl。
项目里面的接口限流是怎么做的
做题:
一个m*n的方形中有多少个小长方形。
一个字符串中的最长回文子串(写代码)
## 二面
讲bean的加载过程。
mybatis的创建以及调用过程。
BeanFactory和FactoryBean的区别。
循环引用怎么解决
多线程的非公平锁,怎么实现非公平,AQS为什么这么实现。为什么不直接用list,然后notifyAll。
redis的基本数据类型。
zset的底层是什么实现的。跳跃表的查找,跳跃表如何插入一个数据。
ConcurrentHashMap,segment是怎么分的。1.7和1.8有什么区别。segment扩容的时候会变大吗?
ConcurrentHashMap获取size怎么获取的。modCount获取size大小的时候,是一直循环吗?(不是,通过判断modCount来获取size多次之后如果还是没有获取成功,需要锁住全表进行获取size大小)这个回答让面试官很满意,感觉有戏。
题目:
第一个是一个二维矩阵。1表示墙壁,0表示可以走。从起点到一个终点,判断是否可以到达。选择一个方向之后必须一直走到撞墙位置,然后换一个方向。终点必须是撞墙达到而不是路过。
第二个是找到一个节点的兄弟节点
```
x
x x
x -> x -> x
```
使用层次遍历,一个节点的下一个节点就是答案。
面试官要求使用递归的方式。记录父节点。
1、如果是一个节点的左子节点并且有右子节点。则答案是右子节点。
2、如果是一个节点的左子节点并且没有右子节点,或者是一个节点的右子节点,那么他的兄弟是父节点的兄弟节点的左子节点或者右子节点。
ConcurrentHashMap的原理。
ARP协议,如果返回的主机不是本身也返回怎么办。
UDP和TCP的区别。使用场景
聚集索引和非聚集索引的区别。使用场景。
数据库锁有几种(行级锁和表级锁)
CAS会有什么问题。解决办法
Synchronized。
https的ssl。
项目里面的接口限流是怎么做的
做题:
一个m*n的方形中有多少个小长方形。
一个字符串中的最长回文子串(写代码)
## 二面
讲bean的加载过程。
mybatis的创建以及调用过程。
BeanFactory和FactoryBean的区别。
循环引用怎么解决
多线程的非公平锁,怎么实现非公平,AQS为什么这么实现。为什么不直接用list,然后notifyAll。
redis的基本数据类型。
zset的底层是什么实现的。跳跃表的查找,跳跃表如何插入一个数据。
ConcurrentHashMap,segment是怎么分的。1.7和1.8有什么区别。segment扩容的时候会变大吗?
ConcurrentHashMap获取size怎么获取的。modCount获取size大小的时候,是一直循环吗?(不是,通过判断modCount来获取size多次之后如果还是没有获取成功,需要锁住全表进行获取size大小)这个回答让面试官很满意,感觉有戏。
题目:
第一个是一个二维矩阵。1表示墙壁,0表示可以走。从起点到一个终点,判断是否可以到达。选择一个方向之后必须一直走到撞墙位置,然后换一个方向。终点必须是撞墙达到而不是路过。
第二个是找到一个节点的兄弟节点
```
x
x x
x -> x -> x
```
使用层次遍历,一个节点的下一个节点就是答案。
面试官要求使用递归的方式。记录父节点。
1、如果是一个节点的左子节点并且有右子节点。则答案是右子节点。
2、如果是一个节点的左子节点并且没有右子节点,或者是一个节点的右子节点,那么他的兄弟是父节点的兄弟节点的左子节点或者右子节点。
## 三面
三面被面试官怼,主要是不想招人吧,当天三面的java开发就三个人。怼我linux不行(问我根本没听过的命令),怼我项目不行(反怼一面面试官说基础可以,项目以后进公司有的是项目),反正就是凉凉。一共写了三个题目。有一个思路不够清晰,他最后告诉我巴拉巴拉,但是后来一想,他说的根本不对。
#百度##Java工程师##面经##校招#