互联网科技

十分钟带你快速体验阿里字节蚂蚁等大厂研发岗面试究竟有多难?

2020-08-04  本文已影响0人  风平浪静如码

每个人都拥有大厂梦,我也不例外,公司的程序员有光环加身,自带流量,走到哪里只要说出你公司的名字,就能引来一片关注。比如在一个全新的场合,有人介绍你是阿里巴巴的程序员,可能稍后会有很多人加你微信,但如果介绍你说是小A公司的程序员,那就不好说了。

以下分享这次面试阿里中间件和蚂蚁,百度等大厂的面试题,另外还对自己的面试做了一些总结,总结里含有一些学习方法和资料,需要的朋友可以直接在文末免费领取!

字节跳动(三面)

字节一面

  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淘汰。

阿里中间件(四面)

Java中间件一面技术

技术一面考察范围:

技术一面题目:

Java中间件二面

技术二面考察范围:

技术二面题目:

Java中间件三面

技术三面考察范围:

技术三面题目:

Java中间件四面

最后,你懂的,主要就是HR走流程了,主要问了未来的职业规划。

腾讯(三面)

腾讯一面

腾讯二面

腾讯三面

蚂蚁中间件团队(三面)

蚂蚁中间件一面

  1. 自我介绍
  2. JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法?
  3. 新生代和老年代的回收机制
  4. 讲一下ArrayList和linkedlist的区别,ArrayList与HashMap的扩容方式
  5. Concurrenthashmap1.8后的改动
  6. Java中的多线程,以及线程池的增长策略和拒绝策略了解么?
  7. Tomcat的类加载器了解么?
  8. Spring的ioc和aop,Springmvc的基本架构,请求流程
  9. HTTP协议与Tcp有什么区别,http1.0和2.0的区别?
  10. Java的网络编程,讲讲NIO的实现方式,与BIO的区别,以及介绍常用的NIO框架
  11. 索引什么时候会失效变成全表扫描?
  12. 介绍下分布式的paxos和raft算法

蚂蚁中间件二面

  1. 你在项目中怎么用到并发的?
  2. 消息队列的使用场景,谈谈Kafka
  3. 你说了解分布式服务,那么你怎么理解分布式服务?
  4. Dubbo和Spring Clound的区别,以及使用场景
  5. 讲一下docker的实现原理,以及与JVM的区别
  6. MongoDB、Redis和Memcached的应用场景,各自优势
  7. MongoDB有事务吗?
  8. Redis说一下sorted set底层原理
  9. 讲讲Netty为什么并发高,相关的核心组件有哪些?

蚂蚁中间件三面

  1. 完整的画一个分布式集群部署图,从负载均衡到后端数据库集群
  2. 分布式锁的方案,Redis和Zookeeper哪个好,如果是集群部署,高并发情况下哪个性能更好?
  3. 分布式系统的全局id如何实现?
  4. 数据库万级变成亿级,你如何来解决?
  5. 常见的服务器雪崩是由什么引起的,如何来防范?
  6. 异地容灾怎么实现?
  7. 常用的高并发技术解决方案有哪些,以及对应的解决步骤?

百度智能云(三面)

百度智能云 数据库部门

百度一面

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、分布式数据库了解么

面试答案

这份面试文件涵盖了Java开发1至5年的面试常见技术问题,包含了分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!需要的朋友,点击【 这里,就是这里 】即可免费领取!

Java经典面试问题(含答案解析)

阿里巴巴技术笔试心得

更多就不做展示了,这份Java高频面试体系文档是免费分享的,整理不易,有需要的朋友,直接点击(这里,就是这里)免费获取!

上一篇下一篇

猜你喜欢

热点阅读