背景介绍
致力了十多年,进入了一所普普通通的学校。
名校带来的不仅是 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;比方当初微信小程序开发又火起来了,你也在关注和学习,甚至能解决面试官的一些问题。理解这些热门的前沿技术相对会成为你面试时的加分亮点。
总结
对于面试,你必须要晓得的事件:
做好集体职业规划是前提!
面试时,简直所有人都会被问到一个问题—你的集体职业倒退布局是什么?
其实职业规划是会反映出你和公司今后倒退方向的匹配度,也会侧面反映你的集体能力。
针对性地“筹备”好你的职业规划,让企业看到你并不是胡乱海投,同时也是为本人厘清方向。
加入面试的小伙伴肯定要依据本人的状况做好职业规划,明确倒退方向,不仅能够进步面试胜利的概率,更是对本人将来负责。