• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于an-d-ro-id:大厂谁不想去呢一个月面试复习总结分享我的面试之路

android 搞代码 3年前 (2022-03-01) 35次浏览 已收录 0个评论
文章目录[隐藏]

前言

鄙人尘世间一个迷途小开发,二流程序员。只是一个二流Android攻城狮在市场的大潮之下,用一个月工夫面试+温习+总结,最终拿到了本人喜爱公司offer(非一线大厂,然而薪资也涨了40%多,对我来说曾经很称心惹)的故事。

当然,大厂谁不想去呢?可是工夫紧,生存压力大,打算赶不上变动。生存的真谛就是斗争而已。

前提是进去社会摸爬滚打三年多,不得不抵赖人是分三六九等的。即使是专一度、致力这些颇为主观的因素,也是因人而异的。(没方法,我也晓得主观上应该致力啊555,可我主观上只想躺着刷B站~555)First,先列一下鄙人目前的客观情况:

  • 双非本科,非计算机专业

    • 工作四年,都是小厂,小组最多没超过4集体
    • 算法根底一丢丢(翻书‘马冬梅’,合书‘什么梅’)英语水平半文盲
    • 懂一点应用层方面的音视频编解码常识

面试之前

首先我不倡议频繁的跳槽,除非被逼无奈,频繁跳槽,不光会成为面试官胆怯的一个方面,对本人的积淀也是没有帮忙的。

同时我不倡议裸辞,这样会存在太多的不定性因素,如果面试工夫拖得太久,这段时间你没有经济支出,然而你还在收入(房租,日常生活开销)。这样会带来有形的压力,同时如果面试受挫,很容易失去信念,甚至狐疑本人的能力。

然而到职也有他的益处,因为,有些公司可能我的项目十分急,须要迅速上岗,那么你到职的交接办理也会耽搁一些工夫,那么也会成为面试官思考的一个因素。所以还是要联合本人的状况而定。

如何筹备

我是从6月靠近中旬开始面试的,始终到7月底完结,整个面试周期差不多一个月左右的工夫。这次面试采纳的策略是以战代练,就是边面边温习。

面试的话,次要是敌人内推,Boss和拉勾。但Boss的话,初期不倡议把简历可见,我就在这方面吃了苦头(别提了都是泪)。接下来我将这一个月内我接触的知识点铺展开来,也给大家一点参考。

  • 算法:LeetCode,把链表、排序、树标签里所有简略类型的题目练一下手。特地是排序,冒泡、疾速、二分、抉择、归并肯定要达到手写的程度!
  • 数据结构:Java的HashMap——7和8的区别、ArrayList、LinkeList。Android的ArrayMap、SparseArray系列。还有阻塞队列ArrayBlockingQueue、LinkedBlockingQueue。
  • HashMap的构造和细节是遇到最多,倡议认真看一下源码,肯定要有本人的了解(划重点)。把HashMap如何存储、如何查找。hash碰撞,以及内存利用率这些问题了解一下设计模式和架构:筹备一些本人拿手的模式,在网上查一下材料。筹备一些套话,关键词耦合,二次批改不便,内部不必关怀外部实现等等。MVC、MVP、MVVM三种,起码要理解两种,并且能清晰明确的说出,两种架构间的优缺点。
  • 我自身经验过一次MVC -> MVP的过渡,所以面试的时候就只提了这两种。MVVM没接触过,就实话实说没搞过,面试官也不会再问。千万不要打肿脸充胖子,没接触过就说不会就能够了。关键词:UI逻辑、业务逻辑、不影响对方的前提下批改、逻辑清晰,不便定位
  • Android根底:这个就很重要了,当然涉及面也相当广。四大组件,生命周期这个啥都不说了,间接冲就是了,根本都会问到。Handler、View绘制流程、事件散发,这些都是陈词滥调。
  • Android框架根底:AMS,Activity的启动过程。Android绘制流程(这个看集体了,因为我简历上写了相熟Canvas库,手动狗头)Java根底:多线程、线程池、锁机制,这两个知识点问到的还挺多的。其余的包含,内存区域、内存透露、垃圾回收。。。(这些懂个概念即可,不深究)

简历

简历制作是一种学识,一份好的简历往往让人眼前一亮。同时简历要突出重点。

  • 技能专长
    比方你自定义View好,那么就把View的相干技能写上,比方:View加载流程,事件散发,自定义属性,滑动抵触等等,如果视频方面强那么就相干的技能写上。尽量不要有精通,除非你真的“精通”。否则就是给本人挖坑。也不要写一些太过常见的技能,如果:理解Activity的生命周期。谁都晓得的货色,没别要单拿进去。也不要太长或太短10-12个技能专长左右。主旨在于表白的特点简单明了。其余的点大家在本人搓摩下。
  • 我的项目介绍
    如果你是实习,那么你肯定要有本人在大学我的项目,或是毕业设计,或是团队我的项目。如果是退职肯定要有公司的我的项目。同时我的项目不宜过多2-3个即可,如果你有感觉能够在简历上写的前端或是后盾的我的项目,那么会有很大的加分。同时我的项目介绍不要太过啰嗦,3-5行,突出架构,核心技术,次要性能与模块即可,同时写出本人在其中做了那局部内容。(这部分要写好,因为面试官很可能会问你,你开发中遇到的问题,难点,优化,合作,调试等相干问题)
  • 其余技能
    如果有英语4.6级肯定要写上,有github,集体blog肯定要写上地址。这我就不用说了吧。

例如:

简历制作总结:

至于其余的对大家应该没有难度。同时适当的包装无可非议,求职者想找个好工作,面试官想找个好员工。对方就像相亲一样。肯定会把你的底摸个分明的。如果相亲的时候的没问题,等孩子都有了那就晚啦。哈哈,我就是这个意思。包装的目标是为了减少HR的通过率。这样才会有面试机会,对咱们这种渣渣来说,面试机会比面试通过与否更重要。因为面试邀请都没有,你筹备有个P用。最初我还是心愿大家进步本人的实力,实力才是硬道理。

面试

以上是一些温习的知识点,因为要筹备的货色还是蛮多的。
所以工夫上的安顿肯定要灵便,我是早上温习Java根底,中午看Android,早晨温习算法和数据结构。

有面试的话,就提前去理解一下公司的产品,去官网上冲一冲浪,下个APP玩一下。也算提前给本人一个心理准备。

以下是一些面试题,供应大家参考:

  • GC讲一下?
  • Java数据结构理解吗?
  • 链表和数组的区别Final?
  • 讲一下我的项目中应用过锁吗?
  • synchronized和reentrantlock?
  • 讲一下多态?
  • 内存透露?
  • android中的内存泄露?
  • 讲一下handler机制?
  • listview和RecyclerView的区别
  • activity的生命周期
  • activity的启动模式
  • singletop中再次启动栈顶的activity,生命周期怎么变动?
  • fragment理解吗?
  • 和activity的区别?
  • handle机制?
  • onNetIntent理解吗?
  • 怎么判断ipv4的地址是否非法?(好难好难)
  • 最长间断子序列长度(撕了一个应用set的),再度优化,有没有其余想法?这个空间复杂度高?工夫复杂度什么?
  • 将阿拉伯数字转换为大写数字?始终抠算法?一直批改测试用例?一直改bug?
  • Android你理解什么?
  • Android怎么开启多线程?

因为问题比拟多,我次要写了比拟常问的问题还是那句老话,面试是一个双向考查的过程,面试官考查你,同时你也要考查考查公司。要真是不喜爱的话,工作做得也不开心,当然也不会短暂。工作毕竟还是占据了生存中的大部分工夫,找一个本人喜爱并违心投入的工作对本人的成长也好一点。同时,面试也是一个考查综合能力的中央。不要认为技术上筹备的很充沛了就高枕无忧。在面试的时候,态度、剖析问题的能力、自信度、人品这些都决定了你是否拿到offer。

面试细节

面试个别的工夫是在两三个小时左右,作为求职者。咱们要在这段时间内,将咱们的价值展示给面试官和HR。就像推销产品一样,你得站在旁观者的角度思考一下,这个人值不值得咱们买入(发offer),他(她)的性情怎么样,人品值得信赖吗等等。站在这个角度想一下的话,有很多问题你本人就想通了。当然你思考这些问题的前提是你的技术筹备曾经挺充沛的了。

  • 自我介绍;筹备一段两三分钟的自我介绍,挑一些有亮点的货色说一下。面试官也是人,你简明扼要五六分钟,他记住的点也不会太多。所以要精简,要学会提炼关键字。譬如:工作上并重架构设计,技术上并重技术实现(实现了什么牛逼的技术)
  • 语气声调:这个也有必要练习一下(不要笑,这个很重要),你能够本人录音听一下,试试有没有一个适合的语速让他人能听分明你说的话。还有谈话要自信,不要结结巴巴,不会的货色就间接说没接触过就行了,切忌扭扭捏捏~~还有答复问题的时候,不要等面试官问完就立马答复。进展个几秒钟作思考状(手动狗头),如果是特地特地熟的问题,就略微顿一下,不要太流畅。有些点能够适度说想不起来这个水平本人把握,挑一些不太重要的点,留给面试官补充,不然你各个问题答复如流,只会减速面试流程。说不定碰到一个轴一点的,就抛出一个史诗大问题给你。当然这个小技巧面试用一次就最多了,千万别乱用。。。
  • 到职起因:这个有的技术官不会问,有的会问。HR会比拟看重这个问题,这个就本人斟酌吧。反正不要给人留下这个人很塌实,不会在咱们这里久留的印象就好了。
  • 技术思考:这也是一个很泛的点,要具象的话。就是你在我的项目中如何写你的代码,有的面试官会看重这个问题。这个嘛,就纯是看集体了~~~

现在的面试官教训也丰盛很多,很多问题并不会间接问你,而是抛出一个具体的问题由你去剖析。有的还是考查你在产品和开发之间的我的项目协调问题,比方出了一个主观上无奈解决的问题,你该如何去协调。还比方会考查你一些对产品的思考。其实除了思考力,足够扎实的技术能力也足以帮忙大家度过“分水岭”。

Android 中高级面试题汇总

Android 中高级面试题汇总包含:

Java根底、Android根底、UI控件篇、网络通信篇、架构设计篇、性能优化篇、源码流程篇、新技术篇、面试篇九个章节,一共1932页。

Java根底

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

Android根底

Activity知识点(必问)

  • Activity 启动过程全解析
  • Fragment 知识点
  • onSaveInstanceState 以及 onRestoreInstanceState 应用
  • 4onConfigurationChanged应用以及问题解决

Fragment 知识点

  • Fragment 的通信问题, 新建 Fragment 为何不要在构造方法中传递参数
  • 为什么官网举荐 Fragment.setArguments(Bundlebundle)这种形式来传递参数,而不举荐通过构造方法间接来传递参数呢?
  • Androidx 下 Fragment 懒加载的新实现
  • Fragment全解析系列
  • Google-Fragment概览
  • Google-与其余Fragment通信

Service 知识点

  • Handler知识点(必问)
  • Android主线程阻塞解决及优化
  • 深刻聊聊Android音讯机制中的音讯队列的设计
  • 深刻了解MessageQueue
  • 你真的懂Handler.postDelayed()的原理吗?
  • Handler.postDelayed()是如何准确提早指定工夫的
  • Handler提早音讯执行机制,会阻塞吗?

Intent知识点

  • Android跨过程传递大内存数据
  • 数据存储

UI控件篇

屏幕适配

  • Android屏幕适配和计划
  • Android 目前稳固高效的UI适配计划

次要控件优化

  • RecyclerView优化

事件散发与嵌套滚动

  • NestedScrollingParent & NestedScrollingChild
  • 动态化页面构建计划
  • 组件与布局

网络通信篇

网络协议

  • 彻底了解 WebSocket 原理,附残缺的实战代码(蕴含前端和后端)

架构设计篇

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

性能优化篇

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

源码流程篇

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

新技术篇

  • 实战问题

面试篇

开源文档+面试题合集

  • android事件散发机制,请具体说下整个流程
  • android view绘制机制和加载过程,请具体说下整个流程
  • android四大组件的加载过程,请具体介绍下
  • Activity的启动模式
  • A、B、C、D别离是四种Activity的启动模式,那么A->B->C->D->A->B->C->D别离启动,最初的activity栈是怎么样的
  • Activity缓存办法
  • Service的生命周期,两种启动办法,有什么区别
  • 怎么保障service不被杀死
  • 动态的Broadcast 和动静的有什么区别
  • Intent能够传递哪些数据类型
  • Json有什么优劣势、解析的原理
  • 一个语言的编译过程
  • 动画有哪几类,各有什么特点
  • Handler、Looper音讯队列模型,各局部的作用
  • 怎么退出终止App
  • Android IPC:Binder 原理
  • 了解Window和WindowManager
  • Bitmap的解决
  • 如何实现一个网络框架(参考Volley)
  • ClassLoader的基础知识
  • 插件化框架形容:dynamicLoadApk为例子
  • 热修复:Andfix为例子
  • 线程同步的问题,罕用的线程同步
  • Asynctask和线程池,GC相干(怎么判断哪些内存该GC,GC算法)
  • 数据库性能优化:索引和事务
  • APK打包流程和其内容
  • 网络劫持的类型原理
  • 操作系统过程和线程的区别

因为文章篇幅无限,文档资料内容较多,本能够提供链接下载,但无奈容易被谐和,所以全副存档,须要这些文档这里的敌人,能够【点击这里收费获取】,心愿可能共同进步,共勉!

文末

互联网行业是一个常识迭代十分快的行业,如果你不养成学习的习惯,其他人不会停下来等你,这样的话你就等于始终在退化!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于an-d-ro-id:大厂谁不想去呢一个月面试复习总结分享我的面试之路

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址