收到字节月薪35k Offer,揭秘面试流程及考点
前段时间,有个朋友又出去面试了,这次他面试目标比较清晰,面的都是业务量大、业务比较核心的部门。前前后后去了不少公司,几家大厂里,他说给他印象最深的是字节。
![](https://upload-images.jianshu.io/upload_images/26461329-408a0c5f07d8a231.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3轮技术面 + 1 轮 HR 面,他最终拿到了 35k*15薪 的 Offer。
主要考察对应⽤技术和底层原理的掌握,以及对过往项目的业务理解。之所以令他印象深刻,是因为每轮都聊了一个半小时以上,确实让他受益匪浅。
## 一面
1.算法题:两个栈实现队列
2.算法题:输入一个数组,想一种方法让这个数组尽可能的乱序,保证功能能实现的情况下时间复杂度和空间复杂度尽可能的小,可使用随机数函数。(面试官最后说了 O(n)的时间复杂度能实现)
3.写一个单例(自己写一种就行)
4.ActivityA -> Activity B -> Activity A
Activity A 启动模式为 singleTask
Activity B 启动模式为常规模式
问A 启动 B,B 又启动 A 的生命周期调用顺序?
5.说一下onsaveinstancestate() 调用时机,它用来干什么的。
6.onsaveinstancestate() 保存的那个参数叫什么?Bundle 里面都放一些什么东西?怎么实现序列化?Parcelable 和 Serializable有什么区别?
7.数组和链表的区别
8.HashMap 的结构以及原理
9.你能说一下retrofit它是做什么的,如果知道基本框架也说一下
10.了解 View 的绘制机制吗,能说一下吗
11.我看你项目里用的 Fragment 能说一下 Fragment A 启动了 Fragment B,Fragment B 中按下返回键只退出 Fragment B 怎么实现。
12.为什么handler可以线程切换
13.Rxjava map关键字的作用是什么
14.怎么获取view的宽高,如何确定值是准确的,说了view.post()补充viewTreeObserverOnGlobalLayoutListener
15.你还有什么要问的吗?
## 二面
1.算法题:一个字符串,求最长没有重复字符的字符串长度
2.string stringbuffer 和 stringbuilder 区别
3.final finally finalize区别
4.数组和链表的区别
5.HashMap 了解过吗
6.Tcp 三次握手四次挥手
7.get 与 post 的区别
8.synchronized 的作用
9.你知道哪些设计模式
10.Android 进程通信的方法
11.那你能说一下 Intent 是怎么进程通信的
12.内存泄漏有哪几种情况,怎么查看内存泄露的问题
13.还有什么要问的
## 三面
1.项目深挖
2.ARouter路由原理
3.如何管理过多的路由表?
4.看视频的时候网络请求很慢怎么优化?
5.说说HTTP3.0有什么改进?
6.App上线后用户使用时卡顿怎么查看是什么原因?
后续就是HR面了,这里就省略了,这些大厂都不会有太大的差别。
我朋友最终选择字节,除了这是核心项目之外,还有一个原因,字节的福利号称业内最好,薪资也是同类公司中最高。
“薪资高、发展好、福利待遇优” 似乎已经成为字节跳动的标签。
而很多人觉得大厂门槛高:
**“渣本双非学历进不了大厂!”**
**“工作不满 3 年进不了大厂!”**
**“非科班毕业的,进不了大厂!”**
可对于我这个渣本双非毕业的朋友来说,进字节,似乎并没有那么难。用他的话说,进大厂就靠一条:技术实力。
你只要技术实力够好+在面试中表现得还不错,就能拿下 Offer。
下面是他分享给我的他的复习资料,在这里分享给大家,最后希望大家尽量避坑,可以拿到理想的offer。
#### 《高级UI》
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
![](https://upload-images.jianshu.io/upload_images/25094154-5e8f92bc581234cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/25094154-25b2978e4c4d3184.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《Framework精编内核解析》
主要内容包含:
* 深入解析Binder
* 深入解析Handler
* Dalvik VM 进程系统
* 深入解析 WMS
* PackagerManagerService
![](https://upload-images.jianshu.io/upload_images/25094154-785db6e616b6206f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《360°全方面性能调优》
**内容主要包含一下几点:**
1、设计思想与代码质量优化
2、程序性能优化
* 启动速度与执行效率优化
* 布局检测与优化
* 内存优化
* 耗电优化
* 网络传输与数据储存优化
* APK大小优化
3、开发效率优化
* 分布式版本控制系统Git
* 自动化构建系统Gradle
4、项目实战
* 启动速度
* 流畅度
* 抖音在APK包大小资源优化的实践
* 优酷响应式布局技术全解析
* 网络优化
* 手机淘宝双十一性能优化项目揭秘
* 高德APP全链路源码依赖分析
* 彻底干掉OOM的实战经验分享
* 微信Android终端内存优化实践
![](https://upload-images.jianshu.io/upload_images/25094154-1c4e54df99a19a78.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《Android第三方框架》
**本篇内容要点(1042页)**
* 热修复设计
* 插件化
* 组件化框架设计
* 图片加载框架
* 网络请求框架
* RXJava 响应式编程框架设计
* IOC 架构设计
* Android架构组件Jetpack
![](https://upload-images.jianshu.io/upload_images/25094154-f3df5605442c48a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《NDK模块开发》
NDK是原生开发工具包,这套工具允许Android使用C/C++代码,并提供了众多的平台库。
**主要内容包含:**
* NDK 模块开发
* JNI 模块
* Native 开发工具
* Linux 编程
* 底层图片处理
* 音视频开发
* 机器学习
![](https://upload-images.jianshu.io/upload_images/25094154-3244c863a4ae8197.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/25094154-3184125daed25f15.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《Jetpack架构组件从入门到精通》
* Android Jetpack - Navigation
* Android Jetpack - Data Binding
* Android Jetpack - ViewModel & LiveData
* Android Jetpack - Room
* Android Jetpack - Paging
* Android Jetpack - WorkManger
* Android Jetpack架构组件之Lifecycle
* Android Jetpack Compose 最全上手指南
![](https://upload-images.jianshu.io/upload_images/25094154-77a1aeee7777c357.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《Flutter技术进阶》
* Flutter跨平台开发概述
* Windows中Flutter开发环境搭建
* 编写你的第一个Flutter APP
* Flutter Dart语言系统入门
![](https://upload-images.jianshu.io/upload_images/25094154-0c07ca5faee0f3e8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 《2020大厂面试高频知识点》
一、图片
二、网络和安全机制
三、数据库
四、插件化、模块化、组件化、热修复、增量更新、Gradle
五、架构设计和设计模式
六、性能优化
七、Android Framework
八、Android优秀三方库源码
![](https://upload-images.jianshu.io/upload_images/25094154-0d5ff028ab165854.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/25094154-9a2586ec852baa48.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### **所有资料已经全部上传至开源项目[**【GitHub】**](https://github.com/zhireshini/Bytedance-Android-Learning-route/blob/main/%E5%AD%97%E8%8A%82%E8%B7%B3%E5%8A%A8%E7%A7%BB%E5%8A%A8%E6%9E%B6%E6%9E%84%E5%B8%88%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0.md),有需要的朋友自取。**
收到字节月薪35k Offer,揭秘面试流程及考点的更多相关文章
- BAT Android工程师面试流程解析+还原最真实最完整的一线公司面试题
尊重原创,转载请写明原文出处:http://blog.csdn.net/sk719887916/article/details/47040931 (skay) 求职和我们每个人息息相关,而求职也有门道 ...
- Java面试总结(面试流程及核心面试题)
Java面试流程及核心面试题 面试整体流程 1.1 简单的自我介绍 我是xxxx,工作xxx年.我先后在xxxx公司.yyyy公司工作.先后做个xxxx项目.yyyy项目. 1.2 你简单介 ...
- 2020 校招,我是如何拿到小米、京东、字节大厂前端offer
前言 Hi~,我是 2020 届物联网专业毕业生,现就读于杭州.谨以此文来记录我的秋招以及入门前端以来的学习历程,如有错误,希望大家能及时提出! 面试情况 从19年8月初到11月底,前前后后一共面试了 ...
- 不等"金九银十",金风八月,我早已拿下字节跳动的offer
字节跳动,我是在网上投的简历,之前也投过一次,简历都没通过删选,后来让师姐帮我改了一下简历,重新投另一个部门,获得了面试机会.7月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准 ...
- 剑指Offer——中国银行面试知识储备
剑指Offer--中国银行面试知识储备+面试内容 事件介绍 时间:2016.11.23 08:30 地点:北京市海淀区永丰路299号南门(中国银行软件中心) 事件:中国银行面试(中英文面试) 注意事项 ...
- BAT大厂面试流程剖析
在当今互联网中,虽然互联网行业从业者众多,不断崛起的互联网公司也会很多,但如BAT等大厂,仍然是很多同学想要进入的企业.那么本篇文章将会为大家很直白的讲解大厂的面试流程以及侧重点. 首先闲聊一下,为什 ...
- 揭秘jbpm流程引擎内核设计思想及构架
揭秘jbpm流程引擎内核设计思想及构架 作者 胡长城(银狐999) 1 前言 2 阅读本篇的基础准备 2.1 概念的基础 2.2 环境的基础 3 什么是 ...
- php面试专题---5、流程控制考点
php面试专题---5.流程控制考点 一.总结 一句话总结: 看代码不要先看函数里面的内容,要用的时候再去看:注意静态,注意变量作用域,php中的内置函数需要去归类总结,就是太容易忘记了 1.写出如下 ...
- php面试专题---4、流程控制考点
php面试专题---4.流程控制考点 一.总结 一句话总结: 理解循环内部机制(指针操作),更易于记忆foreach的reset特性,分支结构中理解了switch...case的执行步骤(跳转表)也就 ...
随机推荐
- 23、ORA-00439:DEFERRED_SEGMENT_CREATION 问题解决
23.1.说明: 1. 众所周知,在清空表内所有数据时,truncate比delete要快很多,原因是,delete语句每次删除一行,都在事务日志中为所删除的每行记录一项. truncate通过释放存 ...
- layui动态创建Tab、Tab右键功能
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 & ...
- 一分钟了解JDBC的构成和原理
JDBC(一组接口组成) : 形式如下: 1:JDBC-ODBC桥接技术(100%不用) 在Windows中有ODBC技术,ODBC指的是开放数据库链接 是由微软提供的数据库连接应用,而Java可以利 ...
- java:替换List集合中的某个任意值(对象)
定义replaceAll方法,将传入的新值替换集合中的老值(list,old,new) private static <E> void replaceAll(List<E> l ...
- 资源:Redis下载地址
Redis的下载路径 http://download.redis.io/releases/ 3.x(支持集群) 2.x不支持集群 (推荐使用3.0+版本) 副版本号为偶数时,表示是稳定 ...
- 个人博客开发之blog-api项目统一结果集api封装
前言 由于返回json api 格式接口,所以我们需要通过java bean封装一个统一数据返回格式,便于和前端约定交互, 状态码枚举ResultCode package cn.soboys.core ...
- java基础---集合(2)
一. Set 集合 java.util.Set集合是Collection集合的子集合,与List集合平级.该集合中元素没有先后放入次序,且不允许重复. 存储的数据在底层数组中并非按照数组索引的顺序添加 ...
- python 遍历字典中的键和值
#遍历字典中的所有键和值 zd1={"姓名":"张三","年龄":20,"性别":"女"} zd2= ...
- 基于SSM框架的旅游网站
介绍:spring+springmvc+mybatis三大框架,mysql数据库 功能结构图: 效果截图: 数据库表: CREATE TABLE `t_admin` ( `id` int(11) NO ...
- Windows内核开发-4-内核编程基础
Windows内核开发-4-内核编程基础 这里会构建一个简单但是完整的驱动程序和一个客户端,部署内核执行一些平时user下无法执行的操作. 将通过以下内容进行讲解: 1 介绍 2 驱动初始化 3 Cr ...