【面经】百度+字节+滴滴+虾皮

今天申请了离职,周四正式离职。突然不想学习了,也不想搬砖了,那就分享下最近面的几家公司的面经吧。
本人非科班,两段校企合作项目,两段实习经历。所以面试基本上都是项目为主,然后再问问基础知识。大部分问题都是根据项目扩展出来的,不具备参考性。而且很多都是现场或者连续面,所以只记录了还记得的问题,仅供大家参考。
目前滴滴和虾皮的 sp 专场已挂,百度口头 offer,字节等面试结果。发面试经验求字节 oc。

一、滴滴 【sp专场】

一面:

1、网络协议:A往B发一个消息:从五层网络架构分析下这个过程;

2、TCP 能有多少个连接,TCP 三次握手;

3、vachar 字段非常大,数据库怎么进行优化存储

4、数据库的架构

5、数据库事务的隔离级别

6、项目:多线程并发查询、分布式事务怎么实现的、自己做的事情、难点

二面:

1、自我介绍 + 项目

2、类加载器有哪些?

3、怎么实现自定义类加载器?需要注意什么事项?

4、Java 内存数据区

5、public static final 分配在哪

6、垃圾回收策略

7、CSM 和 G1

8、UDP 和 TCP 的区别

9、HTTP 的过程:输入一个地址访问后的过程

10、HTTPS 的过程、服务端伪造怎么处理,怎么知道是不是真正的服务端?CA证书行不行?

11、锁:悲观锁和乐观锁:有什么区别

12、设计模式:宽泛的说了下知道哪些

13、实现多线程的几种方式

14、怎么实现固定大小数目的线程池?

15、线程池的7个参数、饱和策略

16、HashMap、HashTable、ConcurrentHashMap 的区别

17、怎么实现动态***?

18、Java 中序列化是什么?描述下一台机器将一个对象插入数据库,另一台机器读这条数据,这个过程中用到的序列化和反序列化的API

19、Java 中的 IO 流:简单介绍了字节流和字符流

20、父线程怎么收集子线程的信息

21、ThreadLocal

写代码:
Java最快的方式读写文件:快速的读取一个文件中的内容,再输出到另外一个文件

扩展:
设计一个高并发、大数据量的系统,会从哪几个方面入手

二、虾皮 【sp 专场】


1、算法题:说思路 --> 怎么找到一个数组中的最小值?

2、手写算法题:两个为 String 类型的数组相加?

3、HTTP 简单说下:说了方法、状态码

4、HTTPS 加密的过程,对称加密和非对称加密

5、TCP 有什么特点

6、操作系统内存管理

7、进程和线程的区别  各有什么优点?

8、Java 中的 ConcurrentHashMap 的实现?

9、加锁会有什么问题?--> 死锁   怎么解决死锁? --> 顺序性

10、volatile 的实现,有什么作用?内存屏障怎么实现的?读内存屏障和写内存屏障有什么区别?

11、数据库的索引有什么用?怎么实现的?

12、数据库的事务,分别问了脏读、幻读、不可重读对应的场景

13、联合索引有什么特点

二面:

1、自我介绍

2、项目:做了什么

3、volatile 怎么实现内存可见?为什么没有volatile就不可见,操作系统层面是怎么实现的?

4、HTTPS和HTTP的区别、HTTPS的加密过程,加密算法

5、逻辑题:100个苹果分到7个篮子里,随便输入一个数(1-100)都可以是若干个篮子中苹果的数量和【贪心算法】

可能是逻辑题说的不好,面试官开始闲扯:

6、老师和同学对你的评价?优缺点?

7、对虾皮的认识

8、对未来公司的定位

三、百度【现场面】

一面:

1、自我介绍

2、怼项目:问项目细节、项目扩展:redis 、kafka

3、线程与进程

4、HTTPS 的流程、加密算法

5、主线程怎么收集子线程执行的结果

6、手写代码:二叉树的序列化和反序列化

二面:

1、自我介绍

2、项目介绍、可靠消息实习分布式事务

3、垃圾回收:运行时数据区、垃圾回收算法、垃圾回收策略

4、手写代码:二分查找、KMP

5、线程池参数、线程数的设置

6、HashMap的扩容过程

7、ConcurrentHashMap 的实现原理

三面:

1、自我介绍

2、各阶段项目描述+项目扩展问题

3、最有成就感的一个项目,为什么?

4、浏览器实现 url 提示的数据结构

5、Trie 树和二叉树的区别

6、TCP 和 UDP 的区别

7、TCP 怎么保证可靠传输

8、后面进入HR模式,各种优缺点、未来选择问题

四、字节面【牛客视频】

一面:

1、进程与线程的区别?进程更耗费资源,具体指的是哪些资源?

2、有哪些情况下可能发生死锁?

3、线程间通信方式?进程间通信方式?

4、手写代码:连续子数组最大和问题(边界问题:大数,结果使用 double)

5、说一下对 HTTP 协议的理解

6、怼项目

二面:

1、UDP 和 TCP 的区别

2、数组建堆的过程

3、手写代码:二叉树的层序遍历,每一行对应一层(记录当前层和下一层的节点数量)

4、MQ 和 Redis:Kafak  RabbitMQ 宽泛的自己讲一讲,在什么场景下会使用到

5、垃圾回收:自己讲 、类加载

6、怼项目

7、自己怎么实现一个 HashMap

8、三次握手、四次挥手(为什么需要四次:双工)

三面:

1、重载和重写的区别

2、数组和链表的区别

3、HTTP 的状态码,304具体是什么错误( https://blog.csdn.net/huwei2003/article/details/70139062

4、手写代码:单例模式(双重校验锁+静态内部类)

5、项目:分布式事务,可靠消息

6、Linux 的命令  lsof( 列出当前系统打开文件的工具)、问了一堆不会的指令

6、目前 offer 情况

7、自己的优缺点

#百度##滴滴##面经##实习##Java工程师#
全部评论
楼主怎么知道sp专场已挂?我投了那个新锐计划,一面二面结束了,上周一个hr给我打电话说恭喜过了前两面的筛选,之后会有三面,具体啥时候等联系。。
点赞 回复 分享
发布于 2019-08-19 22:10
分布式项目太强了吧
点赞 回复 分享
发布于 2019-08-19 22:36
算法拿了,谢谢分享😁
点赞 回复 分享
发布于 2019-08-19 22:52
Java最快的方式读写文件:快速的读取一个文件中的内容,再输出到另外一个文件
点赞 回复 分享
发布于 2019-08-19 23:23
楼主面的是什么岗呀
点赞 回复 分享
发布于 2019-08-19 23:29
楼主,请问你这个 vachar 字段非常大,数据库怎么进行优化存储问题是怎么回答的呢
点赞 回复 分享
发布于 2019-08-20 17:17
楼主字节base哪里呢
点赞 回复 分享
发布于 2019-08-20 17:50
楼主百度投的是哪个部门,我也想找后端开发的-百度
点赞 回复 分享
发布于 2019-08-22 01:06
4、HTTPS和HTTP的区别、HTTPS的加密过程,加密算法 我看基本都问你这个,简历里面有写相关的吗?
点赞 回复 分享
发布于 2019-10-03 15:17

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
8 170 评论
分享
牛客网
牛客企业服务