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