作者:酱爆大头菜  

链接:https://juejin.cn/post/6952849875784433671

这里我只摘录面试部分的,想看原版的小伙伴还请点击上方链接

面试思路

技术实力是面试的大前提,你需要非常清晰的了解自己,了解自己所要面试岗位,这是决定面试是否成功的先决条件。

比如我工作时间4年多,我要面试的岗位是高级Android工程师,那我这个自身素质是否能满足面试岗位所要求的条件?

其实这一点在我刚刚面试的时候也是拿不准的,因为在公司已经3年,这段时间对外界的发展其实是不了解的,所以我做了以下几件事。

  1. 把自己负责的项目业务进行整体总结。
  2. 把项目中用到的所有技术进行整体总结。
  3. 复习常用 框架/系统 源码,比如Glide,Okhttp,Retrofit,Activity启动流程,Hander,HashMap,锁等等常用的源码原理。
  4. 查看BOSS,拉勾对应岗位所要求的技能。

方式方法

面试环节中即便你技术很好,项目经验很丰富,你也不乏有知识盲区,也有未能顾及的技术点,当这些点集中出现的时候你面试的成功率也会大大降低。所以针对面试我总结了以下几个流程。

1.面试分为3个阶段(初期,中期,高offer期)。

初期 主要通过(BOSS,拉勾投递即可),初期主要投递小公司,这部分公司有两个目的。第一是相互交流技术点,不断完善自己的技术覆盖度。第二是了解当前市场的需求点。

中期 主要通过猎头去投递,这个阶段主要投递中场,这类公司要求技术深度会比初期公司要深一些,算法的考察会加重,同时面试官的技术水平也会偏高一些,甚至有的中场面试难度会达到大场的水平,这个中期尽可能的持续长一些,非常有利于后续的面试经验总结。

高offer期 这个阶段主要投递你的目标企业,切记面试优先级从最不意向的公司开始投递。投递的方式也是通过猎头,这样可以加快面试流程。以上的初中期更多的是完善你的技术覆盖度,以及你的面试感。为了是让你以最好的姿态去挑战你最想去的企业,这样一路走来你面试的成功率会大大提高。

2.沟通能力

面试除了考察你的技术实力以外,还有一点是比较重要的,那就是沟通能力,你面试的岗位越高,对你沟通能力的要求也就越高。

沟通是特别重要的一个点,这决定你是否能非常清晰的把你所知所想完整的阐述出来。

我们面试的过程就是自我营销的一个过程,所以当你觉得自己沟通能力不是很强的时候,那么你就需要定向的去总结几个点。

比如一个出色的自我介绍, 项目中遇到的最难解决的一个问题,如果让你设计一个架构你应该怎么设计,简单的介绍一下你负责的业务 等..

3.面试频率

面试周期我建议15-30天。

初期 小公司,我建议一天面试3个,如果有精力的话可以4个,这里需要注意一点,小公司有很多不靠谱的,比如还用Eclipse的,比如上来还没问技术就先打击你的,这种可以找机会离开,不要浪费时间。面试时长建议控制在60分钟以内,不要太抠细节。有条件的可以打开录音器,方便结束后晚上复盘。你复盘3-4天的时候你会发现面试内容开始大批量重复了。

中期 这个时期我建议一天最多2个公司,因为中场一般都是3轮或者以上的面试,有一部分是一路走完的。所以你需要给二面三面留出时间以方便充分沟通。千万不要一面完就打算走,因为一二三面所考察的完全不同,一面主要是基础,二面主要是框架/源码/简历里的技术,三面一般会聊项目,方案或者思路。

高offer期 这个环节需要你按实际情况伺机而动,因为有的大厂是一条龙面完,有的是每一次面试都单独约,但是大厂一般的流程都比较慢,都在1周以上才能完成整场面试。一般都在4-6面之间。但是建议一天最多安排2场面试,这个面试时长不确定性因素会比较多。如果面试官不是很讨厌你,一般都会在60分钟以上。

每一个公司的具体流程

先后面试了大概20家公司,最后拿到了8个offer左右,最后选择了自己最想去的公司 阿里巴巴,面试内容也进行了简单总结,分为两个部分。

  1. 高频问题区
  2. 公司面试体验分享

高频问题 (这也是我注重的一点)

Activity 的4中启动模式分别是什么,有什么不同。

事件分发的流程,以及怎么解决滑动冲突?

implementation 和 api的区别是什么?

Handler Looper mesaageQueue message 之间的关系。

A 跳转到 B页面,两个页面的生命周期怎么走?什么情况下A的stop()不会执行

Android9 10 11 都更新了什么新特性,新版本中无法获取IMEI怎么处理。

数据序列化有那俩种方式,Serialization和Parcelable区别,如果持久化需要用哪一个?

有多少种单例模式,枚举算不算单例,单例模式中不用volatile会导致什么问题?volatile特性是什么?为什么android中不推荐使用枚举。

ANR发生的原理是什么, 怎么排查。

Activity启动流程,Launcher启动流程。

手机适配问题怎么处理,都有什么方案。

HashMap 1.7,1.8的差异,1.8中什么情况下转换为红黑树,构造函数中参数代表的意思。

用什么Map可以保证线程安全,为什么?ConcurrentHashMap为什么能保证线程安全?1.7和1.8原理有什么差异。

Glide中怎么实现图片的加载进度条,Glide的缓存是怎么设计的?为什么要用弱引用。

事件是怎么产生的?mFirstTarget 为什么是一个链表?

自定义View需要经历哪几个过程?。

okhttp中有几个队列?分别干什么用的?怎么取消一个请求?

Rxjava中map和flatMap有什么区别,都用过什么操作符。

如果Rxjava组合发送任务,中间任务出现异常,其他任务该怎么处理。

哪个场景会发生内存泄露,内存泄露怎么检测,怎么解决。以及leak cannery内部原理是什么?为什么新版本的不需要在Application中注册了。

组件化怎么分层,各个组件之间怎么通信。

怎防止程序崩溃,如果已经到了Thread.UncaughtExceptionHandler是否可以让程序继续运行。

子线程一定不能更新ui么?什么时候可以?什么时候不可以。检测逻辑是在什么阶段初始化的。

程序怎么保活。

说下路由ARoute的实现原理,怎么处理页面过多内存占用过大问题。

线程池都什么时候用,怎么创建,构造函数中的参数分别代表什么意思?

进程优先级。

反向输出字符串。

两个有序链表合并。

字符串移除多余空格,且技术单词首字符大写。

二叉树中和为某一值的路径。

本地广播和正常广播的区别。

二进制低位转高位。

字符串数组判重。

二叉树 判断是否为搜索二叉树。

公司面试体验分享

面试分享这块我就不过多摘要了,只摘要部分个人认为较重要的,(多以面试题为主)小伙伴们可以查原版

天眼查(大小周,小周1.2倍)

面试体验 ★★★★

这公司面试体验很好,一共三轮面试,技术面二面,HR一面。

一面的面试官技术水平非常可以,跟大厂是同一级别,考察的细节很到位,都是比较注意的点,并非故意刁难,沟通过程也是非常愉快。

二面是leader面,相对注重整体架构考察,沟通也相对顺利。

HR面其实体验不是很好,介绍公司政策不是很专业,总是靠挖掘,有点像挤牙膏沟通,薪资说实话一般般。中等偏下。

总体下来体验比较好,因为这个是第一家面试的公司,属于热身,学到了很多,尤其感谢1面面试官。

58同城

面试体验 ★★★★

面试的是58同城的58学车部门,一共四轮面试,3轮技术面,一轮HR面 他们应该是交叉面试,因此技术面相对比较全面,体验很好,交流很顺利,尤其是三面,思维方式,以及考察问题都很专业。HR面也很专业,介绍公司情况,部门前景,以及政策制度都很透彻,给了Offer,薪资相对也偏低。

以下几个是58特殊考察的几个题目:

1.thread wait sleep join 有什么区别,主要考察wait sleep相关区别。

2.mvvp 和mvp的区别,细节里怎么实现的双向绑定。

3.打渠道包 怎么写入渠道数据(app签名在哪)这里涉及V1,V2,V3签名差异。

4.rgb565和rgb888有什么区别,主要考察数据存储位。

5.自定义view,实现一个自定义View,且支持按下放大,松开缩小动画。

字节跳动(大小周,更正:目前双休)

面试体验 ★★★★★

字节跳动,我是连被干翻2次,面试官确实是牛逼。

我第一次投的是抖音部门,过了一面,二面挂,面试评语是 基础相对扎实,但是项目架构略有欠缺,因此挂在二面。

正在失望之余,字节的懂车帝又打来电话,说简历又被捞起来了,又去面了懂车帝,又挂了。

懂车帝一面确实比较牛逼,比如我记录了部分问题:

如果想统一项目的线程池,包括三方引入包的线程池,怎么处理。(最后解答可通过字节码修改实现)

如果想监控某一线程的耗时超过300毫秒的任务需要怎么操作。(可反射获取Handler抓取每个Message的执行耗时)

如果项目出现未捕获的异常,怎么预操作可以防止Crash。

如果设计一个App的启动框架,需要考虑什么问题,怎么处理同步异步的加载任务调度。

glide 加载原理,怎么感知加载和暂停。

okhttp加载原理,怎么控制同步和异步任务。

说一个项目难点,具体怎么解决的。

都用过什么设计模式。

mvp mvvm都在什么场景下使用。

一个int数组怎么判断是搜索二叉树的后续遍历。

SHAREit(茄子快传)

面试体验★★★★★

这家公司是一家高速发展的公司,面试体验,工作氛围俱佳。

一共三轮面试,两轮技术面,一轮HR面

一面:问了很多基础,以及细节,问题内容都在顶部大类中,唯一差异让现场写生产消费者模型,面试官比较满意,直接进入二面。

二面:技术Leader,问了Glide存储方式,每一个Activity缓存图片是否分开缓存,算法相关考察了按层遍历二叉树,并输出每层的最后一个节点,并且进行了4 -5 种变化,每种变化实现方式。

在遇到问题的时候,面试官会引导你去思考,去解决,最终会        给解决方案。这个行为大赞。

最后给了Offer,但是因为阿里也给了Offer,所以放弃了。

Kika(新美互通科技有限公司)

面试体验 ★★★★★

这家公司是一个很棒的公司,无论面试体验,以及公司氛围,还有发展趋势都是一家很好的公司。

一共五轮面试,一面二面视频面,三面CTO面,四面项目负责人,五面CEO+HR主管

一面:相对基础,问了post get区别,三次握手,jvm的架构,各种viewgroup分别测量几次,

二面:相对偏Android面,主要考察Android框架源码相关,也很不错。

三面:CTO主要问项目相关,考察了下算法相关的内容。

四面:招聘助手+项目负责人一起面,主要问了一些项目周期,发版节奏,团队管理,问题处理等多维度的问题。

五面:CEO+HR主管,主要问了创业过程有啥收获,以后职业发展规划相关。

这家公司真的大赞,主营业务是做多语言输入法的,用户量6亿,后续可能会在多方面有涉猎,面试环节也大赞,除一面二面外,后续三面现场一把梭,领导没有架子。

最后面试完成还给了面试纪念品,这才是真正招人的态度。找机会的同学可以着重看下这家公司。

第二天发了Offer,钱也到位,奈何综合原因没有去,很是抱歉。

摘自一博主的牛逼面试总结 !!! 五颗星(阿里(分享面试过程))相关推荐

  1. sql优化的15个小技巧(必知五颗星),面试说出七八个就有了

    目录 前言 1 避免使用select * 2 用union all代替union 3 小表驱动大表 4 批量操作 5 多用limit 6 in中值太多 7 增量查询 8 高效的分页 9 用连接查询代替 ...

  2. jar包是什么意思_面试难度五颗星:JVM有Full GC,为什么还会 OutOfMemoryError?

    点击上方蓝色"后端面试那些事儿",选择"设为星标" 学最好的别人,做最好的我们 来源:R 大 zhihu.com/question/38511221 问题: R ...

  3. android studio更新3.2遇到的坑,unable to resolve dependency for app@...... 真的是各种都试错了,终于解决啦,原博主真的牛X

    分享这一周多来的坎坷 android studio更新3.2遇到的坑 距离第一次写博客转眼一周多了,为什么一直没写,真的这个过程中遇到了一些棘手的小麻烦 android studio更新3.2遇到的坑 ...

  4. 草根博客[很牛逼的,都浏览下] android Graphics(二):路径及文字

    他的博客,都需要浏览下: http://blog.csdn.net/harvic880925?viewmode=contents 前言:今天项目进入攻关期,他们改Bug要改疯掉了,主管为了激励大家,给 ...

  5. php只能小程序访问,百度智能小程序支付 - 冯奎博客 — 再牛逼的梦想,也抵不住你傻逼似的坚持。 — Fengkui Blog...

    之前写了百度小程序,时间长怕忘记,写篇文章记录一下. (当前文章已更新建议阅读:百度智能小程序支付(新)) 百度小程序支付文档: https://dianshang.baidu.com/platfor ...

  6. UC浏览器主界面滑动折叠效果 使用自定义behavior实现 难度五颗星*****

    思路:!!!!!!!!!!! RcycleView上的HeadScrollBehavior 思路: 1.让recycleview居于头部的下方 ---方案: 重写layoutDependsOn  让当 ...

  7. 牛逼,前阿里 P7 技术专家!

    下面这些大牛们的公众号,可以为你节省很多时间,对问题的解决也更有针对性,经常能够提供新的思考角度.让你在不知不觉间学习成长,提升并强大自己,更得心应手地应付求职面试中的各种大问题和小问题. 他们的文章 ...

  8. 牛逼!36岁阿里 P8宣布退休! 六年实现“财务自由”,裸辞环游世界!

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  9. 阿里的Leader为什么牛逼?秘密都在“三板斧”里...

    许多人都觉得,啊里出来的Leader,做事情都很有方法.有套路.有结果,秘密究竟在哪里?其实一个人的牛逼,首先是方法论的牛逼. 本文就来聊聊,阿里Leader们都要学习的管理方法论,俗称阿里" ...

  10. 这 HTTPS,真滴牛逼!

    HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法. 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的.而 ECDHE 算法具有前向安全 ...

最新文章

  1. xp大容量u盘补丁_Win XP系统下载与安装(U盘)
  2. 查看mali ddk 版本_2019年CPU排行榜,阅读文章查看你的手机CPU还在线上吗
  3. HashMap 源码深入浅出
  4. 罗田用好“大数据”力促扶贫更精准
  5. 不同的PCB混装方式及加工工艺
  6. linux父子进程字写父读无效,linux父子进程
  7. git命令之git mergetool vi非正常退出.swp删除不了的问题
  8. 7步让你get首个数据科学实习
  9. 文本分类实战技巧(tricks)汇总
  10. 贺利坚老师汇编课程61笔记:操作显存数据即在屏幕上显示
  11. freeswitch新增app接口
  12. maven teavm-idea-artifacts: Command execution failed.: Process exited with an error: 1 Exit value: 1
  13. 服务器指令学习记录-----ska暑期训练
  14. 下载并还原AdventureWorksDW2012数据库
  15. Docker及常用软件的安装部署
  16. 基于BP神经网络算法的性别识别
  17. oracle exportdmp,Oracle导入导出dmp表
  18. Authing 实践|制造业身份认证统一管理解决方案
  19. Windows11原版镜像
  20. 一个基于java实现的代码计数器

热门文章

  1. 全国大学生电子设计竞赛(三)--线性电源设计
  2. macOS Ventura 13.1 (22C65) 正式版发布,ISO、IPSW、PKG 下载
  3. MIUI12 Google play无法下载chrome及没有快捷方式的解决方法
  4. 高德地图—js.api
  5. 微软梁念坚:六个新潮流推动IT行业发展
  6. mc:Ignorable=d什么意思?
  7. Confluence 更改数据库地址
  8. MySQL comment 使用
  9. 当你感觉为时已晚的时候,恰恰是最早的时候。
  10. Android开机画面的修改