写点什么

三面百度被吊打,凭借这份阿里大牛整理的资料,终拿下字节 offer

发布于: 2021 年 01 月 25 日

首先介绍一下我可个人背景,鄙人小康家庭,父母都是普通职业,供我读书长大不容易,好在我也算争气,高考发挥正常,考了个还算不错的大学,华南地区某 211。今年的金三银四本是想好好拼一把,奈何受到疫情影响,只能将自己的计划缩减又缩减,所以第一家选择去面试的百度,奈何三面被虐得“体无完肤”,好在自己并未气馁,复习 30 天后去面试了字节,最终 4 面拿下了 offer。


文章以下内容主要是分享面经和个人的学习建议,内容涉及到很多 PDF 文档(面试题库、学习笔记、实战文档、脑图等),由于文章有限,需要这些文档可,

一键三连+评论,然后添加我的 VX(tkzl6666)即可免费领取。




百度三面面经


百度一面面试题:


  • 自我介绍

  • 聊聊项目,时间大概 15 种左右,面试官会根据项目的一些设计点来提问,提前做好准备,别自己坑了自己

  • 分布式锁是锁住一部分还是整个系统,既然是锁住整个,为什么不用消息队列?

  • 详细讲下怎么用 mq 实现的最终一致性,还有怎么利用的消息事务?

  • tcp 于 http 的关系,如何基于 tcp 实现 http

  • Java 打开一个 http 流不关闭的后果

  • io 流是基于抽象类还是接口实现的

  • 数据库的乐观锁和悲观锁是什么

  • 乐观锁实现原理,讲到一半,来写一个乐观锁吧

  • java 的类中有什么方法

  • 线程安全是什么?

  • volatile 和 synchorized 的区别

  • 假如有一个类 A 和一个 类 B,这两个类都有一个变量和一个自增操作,A 类的变量用 volatile 修饰,B 类没有用,B 类的自增操作用 synchorized 修饰,他们都是线程安全的吗,如果都是,那为什么要用 synchorized ,volatile 不是更轻量吗,synchorized 有什么作用。

  • 智力题:岛上有群人,各自戴着红帽子或者白帽子,但都不知道自己帽子颜色,只有知道自己帽子颜色,第二天才能出岛,这时候有个人进来说了句“你们之中至少有一个人戴了顶红帽子”,问岛上的人最后的离开情况

  • 算法:矩阵中的最长上升序列


百度二面面试题:


  • 自我介绍

  • 项目介绍

  • java 集合框架全部介绍,从 list set queue 到 map

  • hashmap 底层扩容线程安全问题

  • 如果一个对象 要作为 hashmap 的 key 需要做什么?

  • Threadlocal 类以及内存泄漏

  • 线程同步方式,具体每一个怎么做的

  • jvm 类加载双亲委派模式,有没有能破坏这个模式的方法?类加载整个过程解释

  • 垃圾回收算法,垃圾回收器有什么?

  • synchronized 用在静态和非静态方法的区别

  • 你做项目的思路是什么,看过什么源码,什么开源网站经常访间,看是什么学的的书不?


百度三面面试题:


  • 问项目相关的技术栈(我回答的是 MongoDB)

  • 怼问:为什么要用 MongoDB?为什么不用 MySQL?MongoDB 有哪些特性,能说一下吗?

  • 文档型数据库有哪些?ES 与 MongoDB 有什么区别?为什么 ES 搜索更快?

  • 数据库都有哪些类型,关系型数据库和 NoSQL 有什么区别?

  • NoSQL 有哪些?他们的使用场景都说一下

  • 问 JVM,从加载到卸载的过程都说一下

  • UML 都有哪些图?如何从这些 UML 的图中来实现你的需求设计?

  • 设计模式说一下,Spring 源码看过吧?那说一下设计模式是如何在 Spring 中体现的?

  • Spring 为什么要用简单工厂模式?

  • 微服务了解过吧(了解过一点),微服务都有什么好处?

  • 微服务都有哪些框架或中间件?

  • SpringCloud 都有哪些组件啊?和阿里开源的这些有什么不同呢?如果要你用你该如何选择?

  • SOA 了解过吧?那什么是 SOA?SOA 与微服务相比有什么优缺点?

  • 如果让你提高一个系统,你该怎么做?如果让你设计一个系统,你要考虑哪些方面?

  • 对什么技术比较熟悉(回答的 Java 多线程),JDK 提供了什么来实现线程安全啊?

  • 超线程是什么?知道吗?(顿时懵了,啥啊,没听过)

  • 对未来的技术有什么规划?你为什么要学这些技术?


百度面试题答案+解析:



字节跳动点评四面面经


字节跳动点评一面面试题:


  • 介绍项目(我说了用了分布式锁,然后就开始针对分布式进行提问了)

  • 分布式锁的实现

  • 分布式锁过期解决

  • 前缀树是什么?前缀树的使用场景?

  • 分布式数据库主从复制(我说我不会分布式的,我会主从复制,然后面试官叫我讲讲)

  • MySQL 死锁发生的原因和解决

  • MySQL 分别建立索引 a,b,c ,语句 select ...where b=x,c=x,a=x 能不能用到索引,建立联合索引能不能用到,a=x,b>x,能不能用到,用到几个索引?

  • B 树和 b+ 树的区别 b+ 树的优点

  • Linux cpu 满了怎么排查?

  • 怎么查看占 cpu 最多的线程?

  • Linux 怎么搜索文件中的字符串,写到另一个文件中

  • liunx 网络相关命令

  • 如何判断链表是否有环

  • Java = 和 equals 的区别

  • Java contentMap 和 HashMap 什么区别,线程安全怎么实现

  • HashMap 怎么解决哈希冲突,哈希冲突还有什么解决方法

  • Java 运行时异常和检查性异常

  • Java 类加载

  • 什么是泛型 泛型的使用场景

  • 面向过程和面向对象(一紧张差点三大特性的多态想了十秒才说出来)

  • 多态是什么?父类如何调用子类的方法

  • 问我看了啥书(设计模式,图解 HTTP,Modern PHP...被打断然后开始问设计模式)


字节跳动点评二面面试题:


  • 自我介绍

  • 进程调度、虚拟内存、进程与线程的区别、如何判断进程是否发生了内存泄漏

  • 常见的设计模式

  • tcp 与 udp 区别、tcp 三次握手和四次挥手、流量控制、拥塞控制(四个算法,问得很细)

  • 分布式事务(并说一下 2PC)、redis 底层数据结构有哪些、持久化方式

  • B+树索引和 hash 索引的区别

  • redis 分布式锁,其他实现方式,zookeeper 如何实现的?

  • 分布式的一致性,强一致性和最终一致性

  • Linux 如何查看 IO 读写很高

  • 集群脑裂

  • Linux 中异步 IO 是如何实现的,消息队列如何实现的?

  • Redis 持久化,“并发高,数据量小”和“并发低,数据量大”,redis 怎么选择存储模式

  • Mysql 主从复制原理,mysql 中如何做故障转移(容灾)

  • Nginx 生命周期

  • 疫情期间,如果让你去调研所在城市口罩的可用量,有哪些方案?


字节跳动点评三面面试题:


  • Java 数据类型,同步机制

  • hashmap correnthashmap?

  • Threadlocal 原理?

  • 讲讲贪心算法

  • 并发量很大,服务器宕机。你会怎么做?

  • 如果线上用户出现 502 错误你怎么排查?

  • 说一下你平时的学习方法?

  • 能告诉我你的博客地址吗?(当然可以啊,难道我要说不告诉你吗)

  • syn 和 lock 的区别,哪个更好?

  • 怎选择 三次握手,第三次失败了,失败怎么办?为什么四次挥手?

  • hashmap 源码,为什么 8 个节点变成红黑树 又为什么到了 6 个节点才恢复为链表?(泊松分布)

  • 缓存穿透,怎解决?

  • 负载均衡算法的实现

  • 轮询和随机的缺点?

  • 分布式服务治理

  • dns 迭代和递归的区别

  • 算法:最大回文串


字节跳动点评 HR 面:


  • 自我介绍,抓住介绍的点让你详细说说?

  • 为什么实习经历只有一个月?

  • 为什么不去找其他的实习?

  • 其他的面试流程?

  • 考虑去哪里工作,北京是唯一选择吗?

  • 为什么来美团?你对美团技术团队的了解有多少?


字节跳动 4 面面试题完整答案+解析:



image


被百度惨虐后,我是如何拿下字节跳动 offer?


(1)第一步是关键:调整心态


由于百度面试没有通过,所以多少都受到了一些影响,所以接下来的面试中,最关键的一步就是要调整自己的心态,以防被自己的消极心态所影响,因为一旦从心底否定了自己,面试过程中就容易出现语言不流畅、说话没逻辑、条理不清晰、回答不全面,这都是面试中很多面试者容易出现的“致命伤”,所以调整心态,沉着冷静地面对是非常重要的。


(2)第二步要梳理:Java 核心知识点(15 天时间,读完这本 pdf)


关于第二步要梳理,实际上就是面试过程中,发现自己的知识储量是比较杂乱的,不知道面试官下一个会问什么,所以对于 Java 的知识点有一个清晰的梳理是很有必要的。关于 Java 核心知识点,手上也有一本整理好的 pdf 文档,


一键三连+评论,然后添加我的 VX(tkzl6666)即可免费领取。



这份文档涵盖了很多知识技术点,包括 Java 部分(基础,并发,多线程,JVM 等)、数据结构与算法、开源框架(Spring,Mybatis,MVC,Netty,Tomcat)、分布式(Redis,Zookeeper,kafka,RabbitMQ,负载均衡等)、微服务(SpringBoot,SpringCloud,Dubbo,Docker)。



image


(3)第三步要飞跃:恶补+刷题


关于第三步,就是要做到让自己有一个质的飞跃。对于恶补和刷题这两个方面,我自己也整理了我个人的一些资料,也是我自己的一些做法,希望具有参考性:


  • 实战系列:Spring 全家桶+Redis 等



image


  • 其他相关的电子书:源码+调优



image


  • 大厂面试题题库:BAT、字节跳动、美团、网易、拼多多、滴滴等



结尾:锦上添花


代码改变世界,要早日成为明日大牛,程序员肩上的担子可是很重啊。趁现在开始,还不晚!


最后祝愿你也能顺利拿下大厂 offer,共勉!


用户头像

微信:tkzl6666 添加获取你想要的Java资料 2019.01.29 加入

添加VX(tkzl6666 ) 获取大厂面试真题,面试复习资料,Java进阶资料,Java实战项目。

评论 (1 条评论)

发布
用户头像
三面百度被吊打,凭借这份阿里大牛整理的资料,终拿下字节 offer
2021 年 01 月 25 日 19:09
回复
没有更多了
三面百度被吊打,凭借这份阿里大牛整理的资料,终拿下字节offer