Java程序员回顾19年秋招面试总结(腾讯/蚂蚁/百度/字节跳动)

今天给大家分享我在这次“金九银十”期间跳槽面试的几个大厂经历,总结了这次跳槽中整理的Java面试合集,其中大部分都是这次面试过程中的面试题,可以对照这查漏补缺。

腾讯SNG研发岗

大概是9月初投的简历,刚投不到两天,就被抓去面试;

一周内就面完了三次面试,接着就开始无尽的等待,整整等了一周半左右,终于完成了四面和HR面。

整个过程还是比较曲折的,技术面试的难度也挺大的,不过他们部门也是Java线,所以还比较有的聊。结果目前还不知道。

一面

1、有序数组排序,二分,复杂度
2、常见排序算法,说下快排过程,时间复杂度
3、有N个节点的满二叉树的高度。1+logN/
4、朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度,过程。
5、单元点最短路的方法,时间复杂度
6、如何实现关键字输入提示,使用字典树,复杂度多少,有没有其他方案,答哈希,如果是中文呢,分词后建立字典树?
7、hashmap的实现讲一下吧,讲的很详细了。讲一下红黑树的结构,查询性能等。
8、Java中的垃圾回收讲一下,讲了分代,gc算法,gc root可达性分析等
9、讲一下两个项目你都做了什么把。
10、除了代码之外你还学习了什么技术,框架。
11、死锁是怎么产生的
12、线程和进程的区别
13、进程的通信方式
14、CPU的执行方式
15、代码中遇到进程阻塞,进程僵死,内存泄漏等情况怎么排查。通过ps查询状态,分析dump文件等方式排查。
16、Linux了解么,查看进程状态ps,查看cpu状态 top。查看占用端口的进程号netstat grep
17、10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。MapReduce分割文件处理。

二面

1、快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程
2、100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。
3、一个矩阵,从左上角到右下角,每个位置有一个权值。
4、四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。
5、hashmap的实现,hashtable,concurrenthashmap实现。
6、MySQL的索引,B+树性质。
7、Linux的cpu 100怎么排查,top jstack,日志,gui工具
8、Linux大文件怎么查某一行的内容。
9、Redis内存数据库的内存指的是共享内存么
10、Redis的持久化方式
11、秒杀系统的架构设计

三面

1、十亿个数的集合和10w个数的集合,如何求它们的交集。集合的数字不重复。
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、说完这个他问我有什么想问他的了。

HR面

1、自我介绍
2、实习收获
3、之前实习公司的情况,拿到offer了吗,会如何选择呢
4、排一下公司,部门,薪资和城市等因素。
5、你的优缺点,如何改进
6、学生时代最成功的事
7、你的预期薪资

蚂蚁金服

之前面了阿里中间件的提前批,不过没走流程。同期还面了蚂蚁中间件的两轮面试,被告知不走流程就不能面了,所以也没面完。

后来走了蚂蚁金服财富事业群这边的流程。前几天刚刚面完HR。

正好今天分享一下面经,大家可以多交流交流哈。

  • 蚂蚁中间件(面了三次,两次一面,一次二面)

  • 蚂蚁财富(1+2+交叉+HR)

蚂蚁金服中间件一号机

一面

1、自我介绍
2、Java中的多线程了解么,线程池的增长策略和拒绝策略了解么,说一下。
3、讲一下线程增加的过程和拒绝策略的执行。
4、讲了一下fixthreadpool的增长策略,然后几种拒绝策略。
5、高并发情况下,如何使用线程池,用哪个,问了一下线程结束要多久,是否在下一个线程结束前完成
6、表示并发量比较大,所以我说可以考虑并发量是否大于队列长度加上最大线程数量和,如果不超过的话可以是用fixthreadpool。
7、并发juc了解么,有哪些线程安全的list。
8、HTTP协议了解么,和tcp有什么区别。
9、http1.0和2.0的区别。
10、Java的网络编程,比如NIO和Socket了解么。
11、说下BIO和NIO的区别
12、说一下NIO的类库或框架
13、倒排索引了解么,我说不了解。
14、索引什么时候会失效变成全表扫描
15、分布式的paxos和raft算法了解么
16、中间件知道哪些
17、平时看什么书,怎么学习的。
18、Spring和Springmvc讲一下。

蚂蚁金服中间件二号机

一面

1、自我介绍
2、讲一下ArrayList和linkedlist的区别,ArrayList的扩容方式,扩容时机。
3、hashmap的实现。
4、NIO了解么,讲一下和BIO的区别,AIO呢。阻塞,非阻塞,异步。具体。
5、你说了解分布式服务,那么你怎么理解分布式服务。
6、你说了解Tomcat的基本原理,了解的是哪一部分,基本架构,connector和container
7、你在项目中怎么用到并发的
8、docker和虚拟机讲一下。
9、有什么想问的

蚂蚁金服中间件二面

1、项目
2、说一下Spring源码把,它的架构,流程。
3、Spring的bean如果要在实例化过程中修改其某一个成员变量,应该怎么做呢。不通过构造方法,并且AOP也并不能实现。
4、Tomcat的类加载器了解么
5、自定义类加载器怎么实现,其中哪个方法走双亲委派模型,哪个不走,不走的话怎么加载类(实现findclass方法,一般用defineclass加载外部类),如何才能不走双亲委派。(重写loadclass方法)
6、布隆过滤器了解么,讲了ip地址过滤的布隆过滤器实现。
7、讲一下docker的实现原理
8、项目中遇到的最大挑战。
9、项目中学到最多的东西
10、有什么想问

蚂蚁财富事业部

一面

1、亿级ip地址过滤
2、排序算法和适用场景
3、数据库的事务有什么用
4、数据库的悲观锁和乐观锁
5、数据的索引有什么用,怎么实现
6、联合索引的匹配原则
7、数据库万级变成亿级,怎么处理。分库分表,分片规则hash和取余数。使用mycat中间件实现。
8、redis这种nosql和mysql有什么区别
9、Spring了解不,用到了哪些设计模式
10、web请求的过程
11、你的职业规划

二面

1、项目中的多线程,为什么用chm,还有什么可以避免并发问题。
2、平时在看什么书
3、dubbo了解么
4、dubbo的基本架构,几个组件说一下
5、服务生产者和消费者怎么进行rpc调用
6、怎么进行服务注册发现 zk实现具体说说
7、dubbo的负载均衡怎么做,讲一下具体代码实现。
8、dubbo的服务容错怎么做,怎么知道服务器宕机了 zk的心跳机制维持服务器连接

交叉面

隔壁部门的技术主管,问了一道算法题。。就没问别的了。。

题目是链表的排序,扯了4、5种方案,转成数组,直接排序,拆分再排序,顺序连接等等。。然后我表示不能再优化了。他就说没别的问题了。。。

HR面

1、兴趣爱好
2、三年到五年的职业规划
3、意向公司和城市
4、实习经历和收获
5、实习中最大的困难
6、为什么换公司
7、你的缺点和优点
8、你觉得你比其他人优秀的地方说三个
9、为什么想来我们部门
10、。。。。。

百度智能云研发岗

百度我投了两份简历,都是智能云的,一个是控制台方向,另一个是数据库部门

智能云控制台方向

一面

1、自我介绍,项目
2、static关键字有什么用,static修饰不同东西时有什么作用,内部类用static修饰和不用static修饰有何区别。
3、hashmap,hashtable,concurrenthashmap区别和场景
4、volatile关键字有什么用
5、jvm分区讲下,作用讲下,gc算法讲一下,gc是否会有停顿或者延迟。
6、讲一下OOM和内存泄漏的例子,为什么有GC还会出现内存泄漏和内存溢出呢
7、线程和进程的区别,通信方式的区别。
8、悲观锁和乐观锁,说一下Java和数据库分别怎么实现的。
9、数据库索引说一下,除了B+树索引还有什么索引。
10、倒排索引说一下,如果关键字很多,怎么优化。使用前缀树和hashmap优化。
11、前缀树的结构和原理说一下。
12、浏览器发起http请求过程,越详细越好。
13、缓存和数据库的一致性怎么保证
14、网上写代码,写了一个快排

二面

1、自我介绍
2、项目中难点,用到的技术
3、多线程,说一下线程的状态和状态转换,详细问
4、多线程的sleep方法和wait方法为什么来源不同,一个是object方法,一个是Thread的方法。
5、为什么object的wait和notify必须在同步块中使用,不在同步块使用会报错么,编译报错还是运行报错。
6、jvm讲一下gc吧,两个对象的引用循环依赖,会不会被垃圾回收,什么情况下会什么情况下不会呢
7、GC root是哪些位置呢
8、数据库了解哪个。Redis说一下为什么是单线程的,不会很慢么,有什么好处。
9、Redis的IO请求模型,是不是IO多路复用呢。
10、Spring的interceptor和filter有什么区别。
11、网络这块,说一下dns请求的过程吧,dns是否会访问缓存呢,缓存在本地和浏览器,还有dns服务器上是不是都有。
12、get和post的区别讲一下,底层的实现有区别么,都是基于TCP,那么如何限制get的url长度,在哪一层限制的。
13、数据结构熟么,讲一下树和图吧,树的层次遍历使用什么结构,相应的图的遍历呢。讲讲最小生成算法,还有迪杰斯特拉。
14、数组,找到唯一一个出现两次的数。
15、一个10000以下的数组,内存够。里面只有1,2,3。排下序。
a 普通排序O(nlogn)
b 荷兰旗问题,双指针解决。O(N)
c 统计数量,重放数组O(2N)
d 另外搞一个数组,把1放头,3放尾,也是双指针。O(N)。空间复杂度O(N)

百度智能云 数据库部门

一面

1 、数据库的事务,四个性质说一下,分别有什么用,怎么实现的。
2、讲到了redo和undo日志,问我分别有什么用
3、数据库的隔离性如何保证,使用悲观锁和乐观锁有何区别。MVCC的设计目的是什么,怎么使用版本号判断数据的可见性。
4、问了一道算法,1到N的所有数字,按照字典序打印,怎么做。
5、多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。
6、问了项目

二面

1、自我介绍,项目 10分钟过去
2、服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器。
3、TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。
4、数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决。
5、开源的技术看过用过么,分布式存储的了解么。
6、想做什么方向的开发。
7、Linux查看cpu占用率高的进程
8、查看占用某端口的进程和某进程监听的端口
9、如何查询日志文件中的所有ip,正则表达式

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

1、讲一下项目
2、平时了解什么操作系统
3、Linux的内存管理算法
4、Linux的文件系统了解么
5、进程通信方式有哪些,问我分别怎么使用,管道有哪些类型,各有什么优缺点。
6、问我服务器硬件了解么。
7、shell了解么
8、说一下JVM内存模型把,有哪些区,分别干什么的
9、说一下gc算法,分代回收说下。
10、设计模式了解么
11、MySQL的引擎讲一下,有什么区别,使用场景呢。
12、查询最新的10条数据
13、MySQL的union all和union有什么区别
14、MySQL有哪几种join方式,底层原理是什么
15、Redis了解哪些啊
16、Redis使用哨兵部署会有什么问题
17、分布式系统了解么,说一下Hadoop了解啥。
18、MapReduce的combiner干啥的
19、Hadoop分发任务时,有个job失败了,hadoop会怎么处理
20、hadoop分发任务,如果有一个节点特别慢拉慢了整体速度怎么办
21、排序算法了解哪些
22、用队列计算一个树的高度
23、一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计
24、还是上一题,说这个黑名单可能需要动态地增删改,如何设计才能避免访问响应太慢。
25、上一题的黑名单做成分布式,怎么做。
26、分布式数据库了解么

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

字节跳动

一面

1、写一个题,找一个无序数组的中位数
2、写了个快排,然后让我找到无序数组第k大的一个数
3、快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少
4、操作系统了解么
5、说说Linux的磁盘管理
6、Linux有哪些进程通信方式
7、Linux的共享内存如何实现
8、共享内存实现的具体步骤
9、socket网络编程,说一下TCP的三次握手和四次挥手
10、问了项目的一些东西
11、问我如何把docker讲的很清楚
12、问我cgroup在linux的具体实现
13、多线程用过哪些

二面

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实现的
11、了解什么消息队列
12、写题时间到。第一题:写一个层序遍历。
13、第二题:写一个插入树节点到一颗排序树的插入方法,使用递归方式找到插入位置即可。
14、第三题:一个有向图用邻接矩阵表示,并且是有权图,现在问怎么判断图中有没有环。
15、第四题:一个二叉树,找到二叉树中最长的一条路径。

三面
三面的面试官真的高冷啊,不苟言笑就算了,我问他他都不爱搭理的,搞得我内心慌得一比,感觉凉凉。

1、介绍一下项目
2、chm和countdownlatch怎么使用的
3、为什么要这么处理,使用线程池是不是也可以。
4、操作系统的进程通信方式,僵尸进程和孤儿进程是什么,如何避免僵尸进程
5、计算机网络TCP和UDP有什么区别,为什么迅雷下载是基于UDP的
6、操作系统的死锁必要条件,如何避免死锁。
7、写一个LRU的缓存,需要完成超时淘汰和LRU淘汰。

最后

由于篇幅原因,这些题目解析就不做全部展示了,这些题我已经整理成pdf文档免费分享给那些有需要的朋友,同时整理了一些电子书籍以及架构视频,花费了蛮多时间,有需要的朋友可以进我的一个学习交流群:909666042 找管理免费获取!

部分资料图分享

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容