【面试总结】阿里、百度等大厂技术面试题汇总

浅浅的花香味﹌ 2022-10-09 03:23 311阅读 0赞

事情是这样的

前段时间面试了阿里,大家也都清楚,如果你在简历上面写着你精通XX技术,那面试官就会跟你死磕到底。

我就是在自己的简历上写了精通MySQL,然后就开启了和阿里面试官的死磕之路,结果就是拿到了一份不错的高薪offer。

我自己有一个习惯,每次面试后我都会进行复盘总结。一来也让我清楚自己对哪方面掌握得还不够;二来也大概清楚了面试的方向,让自己在面试前有侧重点地去复习准备。这样一套下来,面试成功并且拿到高薪offer的几率一定会高很多,大家可以去尝试一下。

c9d35b58bafb88245b41e1d79050eef9.png

一、阿里 (会员中台)

  1. Java

    • 重写hashcode()是否需要重写equals(),不重写会有什么后果
  2. 并发

    • 自旋锁和阻塞锁的区别
    • 公平锁和非公平锁的区别
    • jdk中哪种数据结构或工具可以实现当多个线程到达某个状态时执行一段代码
    • 栅栏和闭锁的区别
    • 如何使用信号量实现上述情况
  3. JVM

    • 新生代和年老代的GC算法分别是什么
    • 标记清除和标记整理的区别
    • 了解过CMS收集器吗
  4. 网络

    • 解释HTTPs
    • HTTPs为什么要用对称加密+非对称加密,相对于只使用非对称加密有什么好处
  5. 数据库

    • 给定一个表,其中有三列(员工名称,工资,部门号),找出每个部门工资最高的员工
  6. 代码

    • LeetCode 863 二叉树中所有距离为K的结点

二、阿里 - 新零售技术事业群(一面挂)

  1. 框架

    • 用过哪些Java开源框架
    • 讲一讲对Spring的理解
    • 看过IOC和AOP的源码吗
    • 它们底层是如何实现的
    • 用过其他什么框架
    • 了解过分布式或者微服务的开源框架吗
    • 讲一讲对分布式系统模型的理解
    • 分布式系统中有一个节点宕机怎么办
    • 分布式系统如何实现负载均衡
  2. 数据库

    • MySQL和Oracle数据库有哪些不同
    • 数据库有哪些锁
    • 表锁和行锁的区别
    • 哪些场景需要加表锁
    • 插入一条数据需要加什么锁
    • 分布式数据库如何保证数据可靠性
    • 了解过MySQL的主从复制吗

海归硕士面试3家大厂挂了2个,成功拿到字节跳动offer,分享面经

三、腾讯 - TEG

  1. 数据结构

    • B+树与红黑树的区别
  2. Java

    • HashMap的底层数据结构,局限性与线程安全
    • 如何实现线程安全的HashMap
    • Collections.sychronizedMap与ConcurrentHashMap的区别
    • HashMap与ConcurrentHashMap的性能比较
  3. JVM

    • 类的编译过程
    • 类的加载过程
    • JVM的内存空间
    • JVM的GC机制
  4. 操作系统

    • 进程与线程的区别
    • 进程间如何通信
    • 共享内存与Socket的优缺点与性能比较
    • 子进程从父进程继承了什么
    • 什么是僵尸进程
    • 线程与协程的区别
  5. 网络

    • TCP的四次挥手
    • TIME_WAIT状态处在哪一方以及为什么需要它
    • TCP与UDP的区别与可靠性
    • 如何实现UDP的可靠传输
  6. 数据库

    • 解释ACID四大特性
    • 原子性的底层实现
    • 数据库宕机后恢复的过程
    • 如何保证事务的ACID特性
    • MySQL日志类型
  7. 分布式

    • 谈谈对分布式系统的理解
    • 分布式数据库的实现
    • 如何保证不同数据库之间的数据一致性
    • 如何实现主从数据库间的同步

四、腾讯 - FIT

  1. 网络

    • TCP三次握手/四次挥手
    • TIME_WAIT状态
    • 网络延迟大的情况怎么处理
    • HTTP请求到响应全过程(服务端)
    • HTTP请求头及其作用
    • HTTP和HTTPs
    • HTTPs的握手过程

海归硕士面试3家大厂挂了2个,成功拿到字节跳动offer,分享面经

五、字节 - 头条(二面挂)

  1. 一面

    • 操作系统
    • 讲一讲进程和线程
    • 讲一讲多线程和线程池
    • Linux的最大进程数限制

WEB

  • 输入URL到页面加载的过程
  • 后端怎么处理前端传过来的文件

JVM

  • GC机制(GC算法,分代收集,收集器,STW)

代码

  • 给定一个数组a[N]和一个整数P,求a[i] + a[j] + a[k] =P,保证i<j<k
  1. 二面

数据库

  • 身份证如何有效建立索引
  • Innodb索引类型
  • 聚簇索引和非聚簇索引的区别
  • 索引失效的情况
  • 写一个分页查询

Java

  • JMM内存模型
  • Classloader双亲委派机制
  • 讲一下ThreadLocal
  • 线程间如何通信

六、字节 - 头条 - 客户端开发(已拿offer)

  1. 一面

操作系统

  • 讲一下进程和线程
  • 讲一下线程安全

智力题

  • 两个人抛硬币,先抛的人赢的概率

代码

  • 单链表排序,奇数位升序,偶数位降序
  1. 二面

WEB

  • HTML,JS,CSS的区别
  • 输入URL到页面加载的过程
  • HTTP的长连接和实现原理

Java

  • 创建和终止一个线程
  • 讲一下熟悉的容器类
  • ArrayList中如何删除某个元素的所有相同元素
  • 讲一下迭代器的实现原理

SQL

  • 学生表 Student (S#,Sname,Sage,Ssex),课程表 Course (C#,Cname),成绩表SC (S#,C#,score),查询平均成绩大于 60 分的同学的学号和平均成绩

代码

Leetcode 283 移动零

  1. 三面

智力题+数据结构+代码

  • 扑克牌的移动

并发

  • 乐观锁和悲观锁的区别
  • 两种锁在Java中的具体实现
  • 两种锁的使用场景

七、阿里 - 供应链平台事业部(二面挂)

  1. 一面

框架

  • 讲一下IOC
  • 对SpringBoot的理解
  • Mybatis中#和$的区别

Java

  • HashMap底层实现和扩容机制

代码

  • Leetcode 206 链表反转

数据库

  • InnoDB和MyISAM的区别

其他

  • SQL注入
  1. 二面

算法和数据结构

  • 讲一下红黑树
  • 红黑节点的个数
  • 红黑树的插入删除查询时间复杂度
  • 讲一下B+树
  • B+树的插入删除查询时间复杂度
  • 讲一下堆的性质及应用场景
  • 建堆时间复杂度
  • 各种排序算法的时间复杂度及稳定性

数据库

  • 讲一下三范式

网络

  • 为什么要三次握手
  • 二次握手有什么问题
  • 三次握手有哪些缺陷
  • TCP是如何控制流量的
  • 发送方发送频率过高造成丢包,TCP是如何解决的
  • 讲一下OSI网络架构
  • HTTP在哪一层
  • HTTP报文结构
  • HTTP首部字段
  • HTTPs加密在哪一层实现

操作系统

  • 讲一下虚拟内存
  • 如果访问虚拟地址时,该地址在物理内存中不存在,会发生什么

Java

  • 讲一下volatile
  • volatile底层实现
  • static修饰用法和区别

JVM

  • 讲一下GC算法
  • JVM内存空间

代码

  • Leetcode 2 链表相加

函数式编程

  • 函数式编程和面向对象编程的区别
  • jdk8为什么要引入函数式编程

机器学习

  • 讲一下梯度下降
  • 梯度下降能保证收敛吗

总结

一般像这样的大企业都有好几轮面试,所以自己一定要花点时间去收集整理一下公司的背景,公司的企业文化,俗话说「知己知彼百战不殆」,不要盲目的去面试,还有很多人关心怎么去跟HR谈薪资。

这边给大家一个建议,如果你的理想薪资是30K,你完全可以跟HR谈33~35K,而不是一下子就把自己的底牌暴露了出来,不过肯定不能说的这么直接,比如原来你的公司是25K,你可以跟HR讲原来的薪资是多少,你们这边能给到我的是多少?你说我这边希望可以有一个20%涨薪。

最后再说几句关于招聘平台的,总之,简历投递给公司之前,请确认下这家公司到底咋样,先去百度了解下,别被坑了,每个平台都有一些居心不良的广告党等着你上钩,千万别上当!!!

提供【免费】的Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

Java全套进阶资料点这里免费领取

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书。
之,简历投递给公司之前,请确认下这家公司到底咋样,先去百度了解下,别被坑了,每个平台都有一些居心不良的广告党等着你上钩,千万别上当!!!

提供【免费】的Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

Java全套进阶资料点这里免费领取

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书。
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,311人围观)

还没有评论,来说两句吧...

相关阅读

    相关 面试

    1、实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。 例子: func(7)