三面字节被虐得“体无完肤”,19天读透这份pdf,终拿下百度研发岗offer.md

开篇:缘由

首先介绍一下个人家庭情况,父母都是农村人,靠着微薄的收入支撑着这个家,还要供我读书,着实不容易。好在我高考成绩也还算争气,考了个还算不错的大学,东部地区某211。今年的金三银四本是想好好拼一把,奈何受到疫情影响,只能将自己的计划搁置了一下,后面我第一家选择去面试的字节跳动,奈何三面下来自己被虐得“体无完肤”,好在我并未气馁,复习18天后去面试了百度,最终四面拿下了offer。

本文内容主要是分享面经和个人的一些学习建议,内容涉及到很多PDF文档(面试题库、学习笔记、实战文档、脑图等),由于篇幅有限,需要这些文档的,直接点击石墨文档(https://shimo.im/docs/VHyXRjkk3xPcH6vJ)免费领取

字节跳动三面面经

字节跳动一面面试题:

1、自我介绍
(事先做好准备)

2、项目介绍
(时间大概是15分种,面试官会根据你的简历上提到的项目来提问,比如:这个项目中你负责了什么,使用到了哪些技术;描述最好体现自己的综合素质,比如:你如何协调项目组成员协同开发,在遇到某一个棘手的问题的时候你是如何解决的,以及你在这个项目用了什么技术实现了什么功能等。切记提前做好准备,别坑自己)

3、技术面试

  • 分布式锁是锁住一部分还是整个系统,既然是锁住整个,为什么不用消息队列?
  • 详细讲下怎么用 mq 实现的最终一致性,还有怎么利用的消息事务?
  • tcp 于 http 的关系,如何基于 tcp 实现 http
  • Java 打开一个 http 流不关闭的后果
  • io 流是基于抽象类还是接口实现的
  • 数据库的乐观锁和悲观锁是什么
  • 乐观锁实现原理,讲到一半,来写一个乐观锁吧
  • java 的类中有什么方法
  • 线程安全是什么?
  • volatile 和 synchorized 的区别
  • 假如有一个类 A 和一个 类 B,这两个类都有一个变量和一个自增操作,A 类的变量用 volatile 修饰,B 类没有用,B 类的自增操作用 synchorized 修饰,他们都是线程安全的吗,如果都是,那为什么要用 synchorized ,volatile 不是更轻量吗,synchorized 有什么作用。
  • 智力题:岛上有群人,各自戴着红帽子或者白帽子,但都不知道自己帽子颜色,只有知道自己帽子颜色,第二天才能出岛,这时候有个人进来说了句“你们之中至少有一个人戴了顶红帽子”,问岛上的人最后的离开情况
  • 算法:矩阵中的最长上升序列

字节跳动二面面试题:

1、自我介绍
2、项目介绍
3、技术面试

  • 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中体现的?
  • .MVC和MVVM,MVP说一下你的理解
  • 微服务了解过吧(了解过一点),微服务都有什么好处?
  • 微服务都有哪些框架或中间件?
  • 如果让你提高一个系统,你该怎么做?如果让你设计一个系统,你要考虑哪些方面?
  • 对什么技术比较熟悉,JDK提供了什么来实现线程安全啊?
  • 超线程是什么?知道吗?(顿时懵了,啥啊,没听过)
  • 对未来的技术有什么规划?你为什么要学这些技术?

字节跳动面试题答案+解析:
吃一堑,长一智,虽然没有面上,但是,资料我还是通过各个途径整理好了,希望能帮到想去字节的朋友们。

百度四面面经

一般来说,前面几面的面试技术含量比较高,前面几面过了后面相对会轻松很多。

百度一面面试题:

1、自我介绍(这个环节必不可少)
2、介绍项目(我说了用了分布式锁,然后就开始针对分布式进行提问了)
3、技术面试
手撕依赖关系树扫描算法(期间提了不重复扫描、优化时间复杂度等要求)

  • 简述如何实现未知长度的数组翻转?
  • 简述内存泄漏,你处理过哪些内存泄漏?
  • 以100ms/张的间隔时间播放100张图片,且每张图片需要400ms进行加载,如何设计?
  • 如何在无序数组中快速找到最小值(手撕二分查找算法)
  • 简述Android中的ANR,以及为什么会出现ANR?
  • 简述Handler消息机制(深挖内部实现原理)
  • 问我看了啥书(设计模式,图解HTTP,Modern PHP…被打断然后开始问设计模式)

百度二面面试题:

1.自我介绍
2.技术面试

  • 手撕一个有序数组的二分查找算法
  • 列举一个你在实际项目中所进行的性能优化(深挖具体细节)。
  • 简述单例模式的实现方式,且单例模式有什么优缺点?
  • 简述Java的异常处理机制
  • 多线程间如何进行信息通信?
  • 多线程如何保证线程安全?
  • 简述线程池
  • 简述HashMap实现机制,如何解决HashMap的线程安全问题?
  • TCP和UDP的区别,分别有哪些应用场景?
  • 简述七层网络模型
  • 简述Android点击事件的分发机制
  • 画一个BLE APP的功能架构图

百度三面面试题:
1、自我介绍
2、聊聊项目
3、技术面试

  • 算法:给你一个字符串,判断是不是标准的ip地址。(我写完一个之后,说让我把所有的测试用例写出来,发现有几个遗漏掉了,面试官说,让我根据这些测试用例重新再写一下,考察代码扩展优化能力。)
  • 举了个数据库联合查询的例子,写个简单的SQL语句。(join)
  • TCP的三次握手说一下?为什么是三次握手?为什么是四次挥手?
  • TCP的滑动窗口原理知道吗?(我说原理不清楚,但是我知道他解决的是什么问题。)
  • hashMap是线程安全吗?如何实现线程安全?
  • Android的持久化存储方式说一下?
  • Android的启动模式和场景说一下?
  • Android的ANR知道吗?怎么避免?
  • 内存溢出和内存泄露说一下(中间有提了下Handler)

百度四面HR面:

  • 自我介绍,抓住介绍的点让你详细说说?
  • 为什么实习经历只有一个月?
  • 为什么不去找其他的实习?
  • 其他的面试流程?
  • 考虑去哪里工作,北京是唯一选择吗?
  • 为什么来百度?你对百度技术团队的了解有多少?

百度及其他大厂面试题完整答案+解析:

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

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

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

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

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

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

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

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

  • 实战系列:


  • 大厂面试题题库:

  • 其他相关电子书:

结束语

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

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

以上文章内容中所谈及的面试资料、学习资料等,均可免费分享,需要这些PDF的小伙伴,直接点击石墨文档(https://shimo.im/docs/VHyXRjkk3xPcH6vJ)免费领取哦~

更多Android咨询内容获取,关注专栏我的专栏。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值