四次面试字节跳动,挂了四次我都还没有放弃!误打误撞拿到腾讯Off
引子
秋招过半,在网上上看了很多大佬的面经,也加了很多交流群,受到了很多朋友的提点,今天终于轮到我来分享面经啦,面试了几家大厂,最后拿到了字节跳动客户端的 offer,总结一下自己的面经和复习历程,顺便谈谈我的一些感受,给各位朋友提供一些参考。
先说一下我的情况吧,现在就读杭州电子科技大学,本科山东农业大学,本硕都是计算机。***老区山东临沂人,平常喜欢拍照、旅游、看电影和基友一起打游戏。
我对字节跳动的一些看法
首先是因为公司,周围有很多人也都在用字节的拳头产品,像抖音、今日头条、火山。字节的增速有目共睹,高速增长其实对我们求职者是一个重大利好,它就意味着更多的机遇。字节作为一家年轻的公司,还有无限可能。
其次是我对客户端这个岗位一直就很感兴趣,平时也有自己写过 APP。空闲时间我比较喜欢看一些科技数码评测,听他们聊聊用户体验,科技肥宅。能让自己参与的程序在直接交付到用户手中,成就感爆棚。
还有也是机缘巧合吧,在我准备投递我第4次简历的时候,舍友帮我找了内推,递上了简历。(好了,没差。真的最后一次了!)

字节的效率还是很高的,从约面试到最后一次面试,一周结束战斗。要是这次再不过我真的要放弃了!
一、字节/腾讯 一面
一面:
时间:2020年8月23日
时长:1小时
1、 c++从cpp文件到exe可执行文件经历的流程
2、 c++动态链接和静态链接的比较
3、 了解Android的Linux层吗(我答不了解,然后没有然后了)
4、 JVM内存管理
5、 操作系统中虚拟内存的作用
6、 操作系统中的分页机制
7、 路由器和交换机的区别
8、 View的渲染流程
9、 内部类分两种,static和非static,有什么区别。
算法题:
1、层次遍历,自定义树的结构,不一定是二叉树,按顺序输出节点的值
2、只输出一层的首尾节点的值。
- 腾讯
1.Service和IntentService的区别
2.多线程相关,为什么Service不能直接对UI进行操作,通过子线程对UI进行操作有哪些方式
3.AsyncTask相关,常使用的方法
4.Handler中MessageQueue怎么设置执行顺序(我说通过延时他不满意??)
5.MVC,MVP,MVVM相关
6.Java多线程并发调度,线程池中如何进行调度
7.RxJava有什么了解?
7.Android组件化有什么了解?
二、字节/腾讯 二面
二面
时间:2020年8月27日
时长:45分钟
1、 自我介绍
2、 TCP和UDP区别
3、 Java接口和abstract类的区别
4、 怎么才算abstract类,可以实现实方法吗,接口可以实现实方法吗
5、 Java泛型
6、 Java多态是什么,重载和重写的区别
7、 HashMap的put和get是怎么实现的
算法题:
输入一个由(、)、[、]、{、},组成的字符串,若其符合规则,输出true,否则输出false。比如)(、({)}、[、())等就不符合规则了,但是({})这种也符合规则。
腾讯二面
问项目:
1.在项目中做了什么优化,你是怎么实现的这些功能,解决了什么问题
2.页面效果优化、代码优化,和自己的优化想法
3.handler
4.你觉得handler有哪些缺点:使用不方便,内存泄漏
5.如何优化handler使用(static, HandlerThread
6.单例模式
7.手写快排
8.mvp、mvc、mvvm
9.说一下ViewModel
10.简单地说了Lifecycle、LiveData这些
三、字节/腾讯 三面
三面:
时间:2020年9月8日
时长:65分钟
1、 自我介绍
2、 TCP三次握手和四次分手,为什么分手要四次
3、 Inner join、left join、right join的区别
4、 你了解范式吗
5、 java内部类有几种,他们的区别,匿名内部类有什么特点。
6、 sleep()和wait()的区别。
7、 service的启动方式
8、 service的生命周期
9、 讲讲你对广播的理解。
10、 给你一个项目,你会怎么做它的架构(我不会,扯到了设计模式)
算法:
1、 实现一下单例模式(因为之前扯到了设计模式)
2、 给一个数组和一个目标数,找出所有的相加之和等于这个目标数的数字组合。
腾讯三面
1.Java如何做到跨平台
2.C为什么做不到跨平台
3.静态链接库 动态链接库区别,哪个好?
4.(我提了一句Docker)于是被问什么是Docker,和虚拟机的区别是什么?哪个好?
5.编译性语言与解释型语言的区别
6.多线程如何确保平均分配到CPU的各个核
7.CPU流水线
8.DNS工作原理?根域名服务器的作用?
9.DNS污染是怎么做到的,怎么避免
10.什么是【安全】
- 平常怎么学习新知识
12.后面的规划
13.反问
六、最后
很幸运,2家Offer都收到了,希望大家也能收获自己满意合适的Offer!
在我看来其实大部分人停留在中高级水平,然后一直停滞不前,加上外部各种环境,产生了各种焦虑,所以很矛盾,这时候你最好的状态是快速往高级水平发展,当然这里是比较难的,这个坎也是比较难迈过去的。因为Android知识体系比较庞大和复杂的,涉及到计算机知识领域的方方面面。在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
如果需要PDF版本可以在群文件夹里,自行领取!
-
或者在群文件夹中里,自行下载直达领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt】