乐趣区

关于android:Android面试今日头条6面技术面-HR-面已拿offer

背景介绍

致力了十多年,进入了一所普普通通的学校。

名校带来的不仅是 title,更是环境的陶冶。

最近想找从新找份好点的工作,而一些 offer 给出的条件是,至多 211 学校,有点无奈。

虽说名校背景并不能齐全代表一个人的能力,但至多证实他人在高中及之前比你付出的多。

不得不抵赖,在某些状况下,双非学校会受歧视。

首先的话,介绍一下本人的状况吧。双非一本毕业一年的程序员,能够说学校不太好(和 985,211 相比)。家中条件不好,所以没打算考研,想进去待业早点孝敬父母。毕业实习完想再找个好点的工作,从年前开始正式学习,前段时间拿到头条的 offer,还不到 3 个月,这 3 个月来各种焦虑,失眠,自我狐疑都经验了一遍,实属不易。

面试经验

字节跳动是 6 面技术面 + 1 面 HR 面,乏味的是三面都是视频面试,尽管应聘的部门就在上海,但不须要赶过去现场面。

而且整体流程十分业余:面试前会有专人打电话约工夫、面试后会及时告诉你面试后果并约下一面的工夫、面试中是在 * 上视频面试(网站上配置有白板能够写代码)。

再说面试内容,字节跳动或者说咱们相熟的“头条”的特点确实是面试过程中算法比重很高,但面试官绝不是无脑问算法题。

比方一面问的算法题是线段树 —— 这个数据结构我确实不相熟,但面试官在发问过程中一直疏导和考查其余方面的货色,我能比拟好得答复进去,最初尽管没有命中最优解“线段树”,但还是让我过了。

如何筹备头条面试?

头条面试和其余大厂可能大同小异,但就是这个小异才是要害中央,能异于其他人的中央。能够从如下几个方面去做筹备:

1. 特意筹备几个面试题源码。像我在答复一些中规中矩面试题的时候,都会从源码角度登程。比方常见的 HashMap 等汇合类,多线程的各种锁以及大数据框架的局部源码。

2. 特意筹备我的项目难点。面一些大厂的时候防止不了被问到我的项目难点,不可能用一般 Bug 含混过来啊。这边能够从我的项目用到的技术栈登程,去寻找技术栈在我的项目中会存在的难点,而后套进本人的我的项目,找个本人能懂,最好能全懂的。

3. 针对性去理解公司的技术栈应用状况。比方头条应用 Go,众人皆知,那为什么我不突击学习一下呢?比方从业内人士得悉头条最早应用的是 Kylin 框架,前面缓缓转为 ClickHouse,那我必须理解一下两者的不同啊,而且能够联合头条的业务场景。

头条 1 面 – 根底面

  • 你们 Android 开发的时候,对于 UI 稿的 px 是如何适配的?
  • 两个值相等的 Integer 对象,== 比拟,判断是否相等?
  • Activity A 跳转 Activity B,Activity B 再按 back 键回退,两个过程各自的生命周期
  • 子线程是否能够 context.startActivity() (如 ApplicationContext), 会不会有什么问题?
  • Handler 机制整体流程;Looper.loop()为什么不会阻塞主线程;IdHandler(闲时机制);postDelay()的具体 - 实现;post()与 sendMessage()区别;应用 Handler 须要留神什么问题,怎么解决的?
  • Native、H5、RN 页面混合跳转时,页面清栈的桥如何实现的?
  • 怎么计算一个 View 在屏幕可见局部的百分比?
  • ClassLoader 的双亲委派机制
  • 简略介绍下 Https 的原理
  • 什么状况会导致内存透露,如何修复?
  • 下载一张很大的图,如何保障不 oom?
  • 有没有做过 UI 方面的优化,做过哪些?
  • WebView 与 JS 交互方式,shouldOverrideUrlLoading、onJsPrompt 应用有啥区别
  • Flutter、Kotlin 接触应用过没有
  • 其余我的项目相干问题
  • 算法 – 二叉树输入第 k 层节点元素

头条 2 面 – 我的项目专项

  • Native、H5、RN 页面混合跳转时,页面清栈的桥实现
  • 页面混编框架的设计与难点
  • RN 通用容器的设计
  • 用户行为监控方案设计
  • JS 谬误治理计划
  • RN 页面对用户行为的监控与 JS 谬误治理,在问题发现有什么播种、优化点
  • 美团 RN 绝对于原生 RN 的有什么劣势
  • 头条 3 面 – 根底加深
  • 你们公司 Picasso 有应用过没,介绍下
  • Picasso 单引擎,在多 Bundle 的状况下怎么保证数据隔离的?
  • 美团 RN 与 Picasso 的区别
  • RN 的页面追踪埋点如何实现的
  • 美团首页是否是 RN 页面,MTFlexBox 原理
  • synchronized 润饰 static 办法、一般办法、类、办法块区别
  • synchronized 底层实现原理
  • volatile 的作用和原理
  • 一个 int 变量用 volatile 润饰,多线程去操作 i++,是否线程平安?如何保障 i++ 线程平安?AtomicInteger 的底层实现原理?
  • 说下对线程池的了解,以及创立线程池的几个要害参数
  • Handler 机制又问了一遍
  • 介绍下 Binder 机制,与内存共享机制有什么区别?
  • Java 汇合,介绍下 ArrayList 和 HashMap 的应用场景,底层实现原理
  • ArrayList 与 LinkedList 的区别
  • 算法 – 两个有序的链表的合并
  • 算法 – 输出一个字符串(不含和.)、正则(字母、和. 任意组合),判断字符串是否非法
  • 简略介绍下,我的项目中遇到的一些技术难点

头条 4 面 – 穿插面

  • 上面的代码,str 值最终为多少?换成 Integer 值又为多少,是否会被扭转?
  • APK 为什么要签名?是否理解过具体的签名机制?
  • 为什么要分 dex?SDK 21 不分 dex,间接全副加载会不会有什么问题?
  • 常见的设计模式有哪些?你提供的 JS 谬误治理计划,用了哪些设计模式?
  • 算法 – 二叉树层序遍历,奇数层逆序遍历节点,偶数层正序遍历
  • 将来 3~5 年的布局是什么?
  • 你感觉你的长处是什么?毛病是什么?
  • 当初的职级,近期的绩效如何

头条 5 面 – 部门 TL

  • 商业化部门相干的业务介绍 (外围大略是商业化部门壁垒高,造就一个人老本高,比做其余业务更有含金量,能够积攒很多业务策略常识),而后让问他问题
  • 将来几年的布局?生存上有什么布局?
  • 你感觉你的长处是什么?毛病是什么?
  • 当初的职级,近期的绩效如何
  • 为什么给你这么好的绩效?
  • 有没有看其余机会?阿里面试的状况

头条 6 面 – 大 Boss

  • 算法 – 数组插入,思考扩容
  • 在我的项目的遇到的比拟有挑战的事是什么?
  • 你在之前公司负责的业务有哪些?
  • 将来几年的布局是什么?
  • 你感觉你的长处是什么?毛病是什么?
  • 当初的职级,近期的绩效如何

头条 HR 面

  • 本科和研究生业余都是偏硬件的,是否有相干的软件经验?
  • 去上家公司之前有没有 Android 开发经验?
  • 过后为什么要抉择去上家公司?为什么要抉择来这里?
  • 为什么要换工作?冀望当前的工作是怎么的?
  • 几次降职中,业绩亮点是什么?
  • 家是哪里的,有回家那边倒退的打算没有?
  • 有打算再去看看快手之类的工作机会没有?
  • 问一些阿里当初的面试停顿和状况
  • 冀望的薪资

如何胜利拿到 offer?

你须要一份这样的生活习惯
二月过完就到了金三银四,是程序员扎堆求职的顶峰时段;

你做好去面试的筹备了么?你晓得该如何做筹备?还毫无脉络?

那么,接下来的内容你须要看看。

面试筹备

面试的筹备工夫个别别低于 2 天,如果能够,再缩短些,但别太长。比方是去现场面试,能够找的借口就比拟多,比方我的项目忙,会多,工夫距离别超过 5 个工作日。比方周二收到告诉,就尽量约到周五,如果是是周三周四,那么别超过下周二。

理解公司的相干状况。面试前应到公司的网站上或别的渠道,提前理解公司的企业背景、业务模式、主营产品等,面试的时候就能够做到对症下药。当面试官问道这些问题的时候,你无所不知,这就不是难堪能形容的了。因而,无妨先钻研下想要应聘的机构,深刻理解其工作标准以调整答复问题时的方向和重点。

一份悦目的简历
如果你想减少入选的机会,那还得花点心理在简历上。网上有很多资源,能够多下几个模板比拟一下,选一个适宜本人职业的格调。程序员最好简略一些,能凸显重要局部就能够了,然而,要记住表格模式的简历是大忌。

简历管制在一张 A4 纸以内,最好不要超过两张。起因很简略,因为 HR 和面试官平时都挺忙的,没有那么多工夫看简历,很多面试官会要求你自我介绍,其实就是他们没看简历。

技能只写最重要的,写点和职位相干,间接能让面试官器重的技能,比方面试运维开发时,就写本人实现过 CMDB,上线,工单零碎,Django,Flask 用的很纯熟等,间接命中面试官的用人需要!

干货储备(外围技能)

想我平时都比拟喜爱钻研源码、性能优化、算法这方面的货色,所以本人也会有收纳整顿,上面是我面试前刷过的一些面试题。

内容涵盖:Java 根底,Android 根底,UI 控件篇,网络通信篇,架构设计篇,性能优化篇,源码流程篇,新技术篇,大厂面经等等 … 品质十分高!!!不要再看那些到处拼凑进去的面试题了。不论大家最近要不要去面试,都举荐大家先保存起来,前面本人必定是可能用得上的!

第一章 Java 根底

  • 动态外部类和非动态外部类的比拟
  • 多态的了解与利用
  • java 办法的多态性了解
  • java 中接口和继承的区别
  • 线程池的益处,详解,单例(相对好记)
  • 线程池的长处及其原理
  • 线程池的长处(重点)
  • 为什么不举荐通过 Executors 间接创立线程池
  • 不怕难之 BlockingQueue 及其实现
  • 深刻了解 ReentrantLock 与 Condition
  • Java 多线程:线程间通信之 Lock
  • Synchronized 关键字原理
  • ReentrantLock 原理
  • HashMap 中的 Hash 抵触解决和扩容机制
  • JVM 常见面试题
  • JVM 内存构造

第二章 Android 根底

  • Activity 知识点(必问)
  • Fragment 知识点
  • Service 知识点
  • Intent 知识点

第三章 UI 控件篇

  • 屏幕适配
  • 次要控件优化
  • 事件散发与嵌套滚动

第四章 网络通信篇

  • 网络协议

第五章 架构设计篇

  • MVP 架构设计
  • 组件化架构

第六章 性能优化篇

  • 启动优化
  • 内存优化
  • 绘制优化
  • 安装包优化

第七章 源码流程篇

  • 开源库源码剖析
  • Glide 源码剖析
  • Android 面试题:Glide
  • day 20 面试题:Glide 面试题
  • 聊一聊对于 Glide 在面试中的那些事
  • 面试官:简历上如果写 Glide,请留神以下几点…
  • Glide OOM 问题解决办法汇总
  • OkHttp 源码剖析
  • Okhttp 连接池复用机制
  • Okhttp 流程和优化的实现
  • 一篇让你受用的 okhttp 剖析
  • OkHttp 面试之–OkHttp 的整个异步申请流
  • OkHttp 面试之–HttpEngine 中的 sendRequest 办法详解
  • OkHttp 解析大总结
  • Okhttp 工作队列工作原理
  • Android 高频面试专题 – 架构篇(二)okhttp 面试必知必会
  • Android 网络优化,应用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
  • Retrofit 源码剖析
  • RxJava 源码剖析
  • RxJava 原理与源码剖析

第八章 新技术篇

  • 实战问题篇

第九章 面试篇

  • 开源文档
  • 面试题合集

因为文章篇幅无限,须要完整版《2022 最新版 Android 中高级面试合集》的小伙伴能够点击这里收费支付哦!

我的项目教训

我的项目的研发背景、整体业务流程、开发周期、负责的模块、技术实现细节、技术亮点等。你本人做过的每个我的项目都要搞清楚。

理解热门前沿技术

比方你面试的是 Android 开发岗位,除了 组件化 你还能聊聊最新的 Jetpack Compose;比方当初微信小程序开发又火起来了,你也在关注和学习,甚至能解决面试官的一些问题。理解这些热门的前沿技术相对会成为你面试时的加分亮点。

总结

对于面试,你必须要晓得的事件:

做好集体职业规划是前提!

面试时,简直所有人都会被问到一个问题—你的集体职业倒退布局是什么?

其实职业规划是会反映出你和公司今后倒退方向的匹配度,也会侧面反映你的集体能力。

针对性地“筹备”好你的职业规划,让企业看到你并不是胡乱海投,同时也是为本人厘清方向。

加入面试的小伙伴肯定要依据本人的状况做好职业规划,明确倒退方向,不仅能够进步面试胜利的概率,更是对本人将来负责。

退出移动版