我的面经经验分享(阿里、腾讯、百度、网易等),您get到了吗

他说可以用cat | grep 管道处理。

18 Linux的swap了解么,完全不懂。

19 Redis和MySQL最大的区别

20 讲一下Tomcat的基本架构和组件,以及请求的整个流程。说了一下connector和container架构和servlet请求过程。

21 MySQL的存储引擎,有什么区别。

22 范围1到1000的数,原本有1000个,互不重复,现多出来1个重复的数,怎么找到他,统计次数,太慢,求和相减。

23 N个糖果,每次只能取1个到6个,不能不取,你先取,请问是否有必胜策略,怎么取。

刚开始说不太记得了,面试官提示了几个例子,找出规律不能为7的倍数,每次取到只剩7的倍数个糖果即可。

二面:

1 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程

2 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。

3 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。

先说了一下dfs递归实现。面试官说要优化。

说了一下用迪杰斯特拉的思路,说可以。

4 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。说了好几种方案,面试官引导我优化了一下,但是还是不满意,最后他说跳过。

5 hashmap的实现,hashtable,concurrenthashmap实现。

6 MySQL的索引,B+树性质。

7 Linux的cpu 100怎么排查,top jstack,日志,gui工具

8 Linux大文件怎么查某一行的内容。

9 Redis内存数据库的内存指的是共享内存么

10 Redis的持久化方式

11 秒杀系统的架构设计

三面:

1 十亿个数的集合和10w个数的集合,如何求它们的交集。

集合的数字不重复。

我讲了两次循环,两次hash,以及排序或者合并等方式。。都不对。后来面试官说是对小数组做hash,然后遍历大数组即可。我完全想错方向了。

2 十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。

3 TCP和UDP的区别,具体使用场景呢。

4 TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。

5 对于socket编程,accept方法是干什么的,在三次握手中属于第几次,可以猜一下,为什么这么觉得。

6 Linux操作系统了解么,了解一点点,就没问了。

7 对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab,然后就没问啦。

8 除了单例模式,知道适配器模式怎么实现么,有什么用

9 回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么,说了几个不太对,他说要避免广播风暴,答不会。

10 Redis和MySQL有什么区别,用于什么场景。

11 问了一下最近看什么书,什么时候开始写博客的

12 问了还有几轮面试,他说这轮我可以过,有点小惊喜

四面:

三面过了半个多月,终于安排四面了。

1 自我介绍

2 项目,收获

3 Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。

4 TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。

5 TCP的四次挥手,time wait状态有什么意义。

6 说完这个他问我有什么想问他的了。

7 我问他为什么隔了这么久才面试,而且之前三面都只是初试,然后他说最近他在休假,所以就。。。害我担心了好久。他说接下来等HR面就行了。

HR面

1 自我介绍

2 实习收获

3 台湾交流体验

4 之前实习公司的情况,拿到offer了吗,会如何选择呢

5 排一下公司,部门,薪资和城市等因素。

6 你的优缺点,如何改进

7 学生时代最成功的事

8 你的预期薪资

百度智能云 数据库部门

一面:

1 数据库的事务,四个性质说一下,分别有什么用,怎么实现的。一致性没讲好。

2 讲到了redo和undo日志,问我分别有什么用,说redo日志说错了。

3 数据库的隔离性如何保证,使用悲观锁和乐观锁有何区别。MVCC的设计目的是什么,怎么使用版本号判断数据的可见性。

4 问了一道算法,1到N的所有数字,按照字典序打印,怎么做。

说了用数组排序,问复杂度,扯了半天。

怎么优化,按照数字特征顺序打印,问这个东西和什么结构比较像。提示是树,然后说了个多叉树,问我怎么实现,最后其实使用dfs遍历树的每个分支。

5 多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。

6 我说了用cyclicbarrier实现,互相等待await。

然后他问我怎么用信号量实现,并且提示可以再用一个线程。

然后我说了个方案。

7 问了项目

8 如何把优化递归的代码

改成尾递归或者循环。

面试官说不是,引导说用栈实现递归。

问我栈中需要压入哪些数据。他说应该是方法参数,返回值,以及返回地址。

二面:

1 自我介绍,项目 10分钟过去

2 服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器。

3 TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。

4 数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决。

5 今天面试太多了,记不清了。。。

6 开源的技术看过用过么,分布式存储的了解么。

7 想做什么方向的开发。

8 Linux查看cpu占用率高的进程

9 查看占用某端口的进程和某进程监听的端口

10 如何查询日志文件中的所有ip,正则表达式

三面:

数据库部门真的很严格,问题都挺难的。

1 讲一下项目

2 平时了解什么操作系统

Linux,说一下Linux排查问题常用的命令,ps,top,netstat,free,du等等

3 Linux的内存管理算法,问了一下是不是页面置换算法,他说是。

说了lru和fifo,问我lru有什么缺点,没答上来。

4 Linux的文件系统了解么,讲了一下inode节点,文件和目录的原理。他问我了不了解具体的文件系统ext2,ext3,答不会。。

5 进程通信方式有哪些,问我分别怎么使用,管道有哪些类型,各有什么优缺点。

6 问我服务器硬件了解么。。一脸懵逼,问了我懂不懂Raid,瞎扯了几句就说不懂了。

7 shell了解么,没怎么写过。

8 听说你会Java,说一下JVM内存模型把,有哪些区,分别干什么的

9 说一下gc算法,分代回收说下。

10 设计模式了解么,说了7种,问我分别怎么用,实际应用过吗,稍微扯了一下。

11 MySQL的引擎讲一下,有什么区别,使用场景呢。

12 查询最新的10条数据,想了好一会,order by id desc limit 10

13 MySQL的union all和union有什么区别,我瞎掰了一下,应该不对。

14 MySQL有哪几种join方式,底层原理是什么,答不会,只知道表现形式。

15 Redis了解哪些啊,数据结构和基本原理把。

问我Redis怎么做集群,答了主从哨兵和cluster。

Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。

16 Redis使用哨兵部署会有什么问题,我说需要扩容的话还是得集群部署。

17 分布式系统了解么,说一下Hadoop了解啥。

我说基本组件稍微了解过,简单搭过环境。

18 MapReduce的combiner干啥的,我说是合并结果的,问我啥时候会用到,答不知道。

19 Hadoop分发任务时,有个job失败了,hadoop会怎么处理,我答不知道,猜是会继续执行。。

20 hadoop分发任务,如果有一个节点特别慢拉慢了整体速度怎么办。我猜测是通过yarn分配相同的资源给每个任务,可以避免这种情况,他好像不太满意。

21 hadoop答得很烂。问了我两个10g文件比较,2g内存,重复率很高,筛选出不同的内容。我说拆成十份hash,每份两两比较hash的结果集,貌似他说OK。

22 排序算法了解哪些,巴拉巴拉。

23 用队列计算一个树的高度,我说用层次遍历记录节点高度。

24 一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计,我说布隆过滤器。

25 还是上一题,说这个黑名单可能需要动态地增删改,如何设计才能避免访问响应太慢。我没思路,瞎扯了一下加硬件,用内存存,都被驳回了。然后他说算了。

26 上一题的黑名单做成分布式,怎么做。说了分片的方案,根据地址的hash值确定分片所在节点。

27 分布式数据库了解么,我不太明白他问的是啥,说不了解,感觉应该是问数据库的分布式方案。

28 有什么想问的,据他所说还有2-3轮面试,惊了。

全程50分钟,可以说是迄今为止难度最大的一个?

百度智能云 账号和消息部门

一面:

1 项目

2 讲一下AOP吧

3 动态代理和静态代理有什么区别

4 TCP和IP报文是否会分片,分别在什么情况下会分片。

TCP分包之后是否还会进行ip分片

5 做个题

无限长轨道。两辆车同方向开,车会滴水,怎么让他们相遇。这题简直像脑筋急转弯。

6 写一个斐波那契数列

递归式,要求改进

dp方式,要求优化空间

用三个变量代替数组进行dp,要求改进

我说数学公式,OK。

7 讲一下Linux的内存结构,我说只会JVM的,他让我说一下。

两者的内存如何映射,是什么关系,不会。

8 没了

二面

1 项目讲一下,10多分钟去了。

2 排序算法,复杂度,比较。快排的空间复杂度是logn

3 讲一下OSI七层模型,我说了5层模型,然后他让我再补充一下,问了每层的作用,问了wifi属于哪一层。

4 线程间的同步用什么方式,说了object方法。

问我使用hashmap时重写哪两个方法,为什么要重写,巴拉巴拉,什么场景下重写。

5 平时用过什么数据结构,list用哪些有啥区别。

6 Spring中的ioc和aop。ioc的注解有哪些。

autowired和resource有什么区别,作用域有哪些。

autowired如何配置两个类中的一个吗

7 写一个单例模式,有点忘却了,巴拉巴拉搞出一个双重检测的,中间改了多次。

8 Java会有内存泄漏吗,三个区分别什么情况下会产生内存泄漏

百度智能云

一面

1 项目

2 队列和栈区别

3 两个栈实现队列,两个栈实现最小值栈

4 数据库的事务性质,如何实现这些性质

5 事务隔离级别有哪些,默认是什么级别。

6 已提交读有什么问题,用于什么场景

7 二叉树了解么,平衡二叉树呢,有什么场景会用到呢。

8 僵尸进程和孤儿进程是什么,分别有什么危害。

9 主从复制怎么实现。

10 Redis你用来做什么,为什么不用mq做异步队列

11 分布式文件系统了解么,HDFS讲一下原理

12 Java中一般用什么类型表示价格。

13 Java如何把byte类型转换成字符串

14 Java的string类型为什么是不可变的

15 有什么问题

百度核心搜索

一面:

1 自我介绍

2 docker和k8s了解多少

3 研究生学了哪些课程

4 操作系统了解么,讲一下进程和线程

5 死锁和处理方式

6 内存,虚拟内存和页面置换

7 网络了解么,讲一下三次握手和四次挥手

8 数据库了解多少,mysql索引,事务,锁讲了一些

9 Redis呢,讲了一下数据结构,持久化方式,使用场景

10 分布式了解哪些,负载均衡有哪些方式,说了dns,nginx,lvs和硬件,一致性问题怎么解决,说了2pc,3pc,raft和paxos,zab

10 mysql大表数据查询,怎么优化,分表,分库。

11单链表判环

使用快慢指针解决

12 完全二叉树判断:

public boolean all(Node root) {

if(root == null) return false;

Queue queue = new LinkedList<>();

queue.add(root);

int flag = 0;

while(queue.isEmpty()){

Node p = queue.pop();

if (p.left != null && flag == 0) {

queue.add(p.left);

}else if (flag == 1) {

return false;

}

else {

flag = 1;

}

if (p.right!= null && flag == 0) {

queue.add(p.right);

}else if (flag == 1) {

return false;

}else {

flag = 1;

}

}

return true;

}

二面:

1 项目

2 docker和kubenetes的原理和了解程度

3 docker的cgroup了解么

4 kubenetes的架构,扩容是怎么完成的。

5 Java的四种引用

6 Java的线程通信方式

7 Linux的进程通信方式

8 Java的线程池

9 算法

1 - N + 1这些数中取出N个,问剩下的是哪个。。

我说加起来相减,面试官说取巧了,不能这样。

我说比较数组下标,他还是说取巧。

于是我让他提示我一下,他说了排序再找。。额

然后想了两个空间换时间的办法,一个是用hashmap遍历两个数组。一个是合并数组后统计数字出现次数,也是hashmap

10 给定一串数字,找出所有可能的IP地址组合,比如192168111,组合是192.168.1.11,192.168.11.1。

应该LeetCode的题。之前自己没写完整,现场憋出来了。

这个代码应该没错。面试官看了二十分钟才说ok。

然后我们就这样沉默了20分钟,中间他就说了几句话。

public void ip (String s) {

List list = new ArrayList<>();

List<List> allList = new ArrayList<>();

dfs(s, 0, 0, list);

}

public void dfs(String str, int cur, int num, List list) {

if (num == 4 && cur == str.length()) {

allList.add(new ArrayList(list));

return;

}

for (int i = cur;i < cur + 3 && i < str.length();i ++) {

String ss = str.substring(cur,i + 1);

if (legal(ss)) {

list.add(ss);

dfs(str,i + 1, num + 1, list);

list.removeAt(list.length() - 1);

}

}

}

public boolean legal(String s) {

if (s.charAt(0) == ‘0’ && s.length != 1)return false;

if (Integer.parseInt(s) <= 255 && Integer.parseInt(s) >= 0) {

return true;

}

return false;

}

网易云音乐Java面经(共三面)

一面:

1 Java的集合类,hashmap如何处理冲突,除了使用红黑树和重写hashcode外还有哪些方法。

2 Java的多线程的使用方法,用过哪些。

3 Java的单例模式写一下,写了枚举类。

4 设计模式的几个原则说一下

5 spring的单例模式是怎么实现的。

6 类加载机制说一下,除了双亲委派,再说一下更具体的过程,什么时候进行静态变量的初始化。

7 mysql的索引讲一下,一级和二级索引的区别,什么时候可以不用查一级索引。答覆盖索引。

8 MySQL的事务性质怎么实现的,其中的持久性和隔离性说一下。隔离级别有哪些,解决哪些问题,默认级别是哪个,通过什么实现的。

9 redis了解哪些数据结构,使用keys的话会有什么问题,如何解决这个问题。

10 什么时候会发生死锁,有哪些必要条件,有哪些解决办法。

11 http请求过程会发生什么。

12 算法题,云音乐的歌单列表,调整顺序后需要保存到数据库,如何让每次保存的数据量最小,答使用数组标识该歌单是否有顺序调整,最后只更新有发生变化的那些数据。

二面:

1 说一下你擅长的东西,博客里写了什么东西。

2 Java的集合类,说一下hashmap都用到了啥。

3 Java的hashmap,头插法和尾插法有什么区别呢,会有什么问题。

4 1.7和1.8有哪些区别,chm呢。aqs呢

5 多线程了解哪些,说一下闭锁和屏障的用法和原理,写一个多人赛跑的线程实例,同时出发并且记录所用时间。

写了半天,然后巴拉巴拉

6 说一下springboot,说一下他有什么优点。并且他的注解是怎么使用的,有哪些注解,其实我忘了。

Java的反射讲一下,如何获取重载方法和私有吵架。

7 springmvc中的内容讲一下。disp。。说下,怎么使用的,做了哪些事情,如何进行初始化的。我说了它两个父类的作用,然后说了基本的转发过程。

http协议有哪些内容,cookie是哪个字段,在文本中如何确定哪个是字段哪个是值。巴拉巴拉,问的很详细。

8 web.xml怎么使用的?有哪些组件,怎么配置的。

9 servlet有哪些方法,init方法实在什么时候执行的。

10 有哪些自己觉得比较好的地方说一下

巴拉巴拉了网络编程,分布式,大数据,云计算。

11 Linux命令了解哪些说一下。

hr面:

hr小姐姐有点好看的。点赞。

1 自我介绍

2 实习经历

3 实习收获

4 评价一下云音乐,和qq音乐比较一下。

5 有什么爱好

6 城市选择,公司选择啥的

头条后台研发面经(共三面)

一面:

1 写一个题,找一个无序数组的中位数

2 写了个快排,然后让我找到无序数组第k大的一个数,我说先排序再找,实际上可以用快排的partition函数。

3 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少,nlgn。

4 操作系统了解么,Linux和windows

5 说说Linux的磁盘管理,一脸懵逼

6 Linux有哪些进程通信方式,五大件

7 Linux的共享内存如何实现,大概说了一下。

8 共享内存实现的具体步骤,我说没用过

9 socket网络编程,说一下TCP的三次握手和四次挥手,中间网络不好,面试官都没听清楚,很尴尬

10 跳过网络,问了项目的一些东西

11 问我如何把docker讲的很清楚,我从物理机,虚拟机到容器具体实现稍微说了下。

12 问我cgroup在linux的具体实现,不会。

13 多线程用过哪些,chm和countdownlatch在实习用过

14 不得不吐槽下今天牛客的视频网速,不知道啥原因卡的一比,明明下载网速很正常啊,牛客视频每秒才20k。。疯狂掉线搞得很蛋疼。

二面:

1 自我介绍

2 Java的集合类哪些是线程安全

3 分别说说这些集合类,hashmap怎么实现的,扯了很多

4 MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。

5 MySQL的事务隔离级别,分别解决什么问题。

6 Redis了解么,如果Redis有1亿个key,使用keys命令是否会影响线上服务,我说会,因为是单线程模型,可以部署多个节点。

7 问我知不知道有一条命令可以实现上面这个功能。不知道

8 Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么,不清楚。

9 Redis的list是怎么实现的,我说用ziplist+quicklist实现的,ziplist压缩空间,quicklist实现链表。

10 sortedset怎么实现的,使用dict+skiplist实现的,问我skiplist的数据结构,大概说了下是个实现简单的快速查询结构。

11 了解什么消息队列,rmq和kafka,没细问

12 写题时间到。第一题:写一个层序遍历。

最后

腾讯T3大牛总结的500页MySQL实战笔记意外爆火,P8看了直呼内行

腾讯T3大牛总结的500页MySQL实战笔记意外爆火,P8看了直呼内行
排的partition函数。

3 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少,nlgn。

4 操作系统了解么,Linux和windows

5 说说Linux的磁盘管理,一脸懵逼

6 Linux有哪些进程通信方式,五大件

7 Linux的共享内存如何实现,大概说了一下。

8 共享内存实现的具体步骤,我说没用过

9 socket网络编程,说一下TCP的三次握手和四次挥手,中间网络不好,面试官都没听清楚,很尴尬

10 跳过网络,问了项目的一些东西

11 问我如何把docker讲的很清楚,我从物理机,虚拟机到容器具体实现稍微说了下。

12 问我cgroup在linux的具体实现,不会。

13 多线程用过哪些,chm和countdownlatch在实习用过

14 不得不吐槽下今天牛客的视频网速,不知道啥原因卡的一比,明明下载网速很正常啊,牛客视频每秒才20k。。疯狂掉线搞得很蛋疼。

二面:

1 自我介绍

2 Java的集合类哪些是线程安全

3 分别说说这些集合类,hashmap怎么实现的,扯了很多

4 MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。

5 MySQL的事务隔离级别,分别解决什么问题。

6 Redis了解么,如果Redis有1亿个key,使用keys命令是否会影响线上服务,我说会,因为是单线程模型,可以部署多个节点。

7 问我知不知道有一条命令可以实现上面这个功能。不知道

8 Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么,不清楚。

9 Redis的list是怎么实现的,我说用ziplist+quicklist实现的,ziplist压缩空间,quicklist实现链表。

10 sortedset怎么实现的,使用dict+skiplist实现的,问我skiplist的数据结构,大概说了下是个实现简单的快速查询结构。

11 了解什么消息队列,rmq和kafka,没细问

12 写题时间到。第一题:写一个层序遍历。

最后

[外链图片转存中…(img-cOsVuXgg-1720109128190)]

[外链图片转存中…(img-DSI1p2P7-1720109128191)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值