Android 面试总结

        最近经过了一周准备,两周面试,结束了2021年的一件大事,换了工作,很仓促,很紧张,但是终归结果是好的,也挑选了一个我最想去的,最好的节奏应该是一边面着,一边上班,等手里有offer了,再做决定,不要像我一样。

        面试途径,主要是智联,其次是Boss,这里还是建议大家先看看公司,看看岗位JD,看看业务是不是想做和愿意做的,然后在接受线下面试,个人觉得还是Boss稍微好那么一点点,智联现在已经被各大猎头和外包攻陷了,前期去面试的几家都是这种性质,浪费了很多时间,但好在积累了很多面试经验。

        面试经历,一共面试了十家公司,拿到了五个offer,建议面试路线,还是从中型规模,技术团队有一点规模的开始,因为你面几家就会发现,有经验的面试官他们关注的点可能都一样,但是Android基础知识我们是必须要掌握的,不要想着到那蒙一下,千万不要抱着这种侥幸的心理,否则你连跟他们聊的话题都没有,没有面试官会有闲工夫听你瞎扯淡,那种场景真的很尴尬,这个事情发生在我去58面试期间,哈哈。。。我甚至把面试签到的纸贴拿回来贴在了我的门后,日日提醒我,没有点真本事,那是一件多么窝囊的事啊。

        现在说说面试,正经路子的面试官,面高级工程师,都是在你简历中抠,越厉害的面试官,抠的越仔细,所以你自己写的简历,里面涉及到的技能,项目技术,一定要自己仔仔细细的过几遍,做不到脱口而出,也不能出现一问三不知的状态,那就完了。其次,对待面试官,一定要保持谦虚,尊重的态度,不要为了一个问题去跟他抬杠,你回答的可能不是他想要的答案,但是不知道就回答这块不是很清楚或者忘了,不要东拉西扯的。

        说说面试过的问题以及体验吧,大厂小厂都有,体验也是各有不同,时间过去半月了,有些问题已经忘了,罗列一些印象比较深的吧,供大家参考。

厂一:北京一家大厂,是猎头帮约的,也是抱着试一试的心态去的,结果就可想而知,面试官很专业,多年的Android研发出身,心平气和的给我上了一课,非常感谢他

问题:

ArrayList和LinkedList的区别,各自实现,各自结构,有什么优势

View绘制流程

Rxjava--》map和flatMap的用法区别

Android屏幕适配,我们从网上拉下来的两张图,怎么实现平分屏幕宽度又不失真

Bitmap 裁切图片的方法,怎么裁,什么原理

多线程,Synchronized 用在各个位置,都是锁的都是谁,锁的维度都是什么

常用的设计模式都用过哪些,哪些比较熟悉(单例模式常用的五种你必须得会,各自什么特性,怎么实现的单例)

厂二:是一家外资刚成立的公司,据面试官描述前景计划的很好,但是现阶段规模还很小,技术团队只有leeder齐了,而且leeder不是专业做Android的,所以问的问题不是太Android,趋向于经验

一面:代码管理流程,git常用命令,冲突了怎么办,使用什么命令

          View绘制流程

          事件传递机制,然后给了一个场景,两个重叠的View,事件拦截和传递的流程

          递归的原理   

          大部分聊的项目经验,基础知识聊的不太多

二面:说说熟悉的第三方框架了解哪些,有什么熟悉的,实现原理

         聊一聊带团队的经验

         你有什么优势,期望薪资和你的优势匹配吗     

厂三:一家中型规模公司,但后来了解到这家的Android的团队是我面试所有公司中人数最多的,做的产品很牛,想必大家都有接触,现在各个大厦的保安都会告诉你,“请出示xx宝”,嗯,就是他们弄的。

一面:java内存模型,堆和栈,各自作用

          java 类的成员就分配到堆还是栈

          单例模式的原理,结合内存模型说说怎么实现的

          数据结构,ArrayList 和 LinkedList,实现,区别,各自算法时间复杂度,空间复杂度 (出场概率很高)

         Synchronized 锁,volatile 关键字作用

        其它的不记得了。。。

二面:Activity 启动模式有几种,都啥作用

           A,B,C,D四个Activity,A->B->C->D ->A 跳转时,BCD三个Activity同时也销毁,怎么实现

        快速排序的原理

        Android App启动流程

        HashMap 和 HashTable 各自实现,有什么不同,有什么优势(说实话,现在又忘了,这个脑子就好像有个窟窿,在一直漏知识,哈哈)

        View事件传递

        Handler 实现原理

厂四:行业内知名大厂,主要内务是信息平台,很意外,是猎头帮约的,当时去面试的时候就被温馨的办公环境吸引,非常非常想去工作,但是优秀的面试官,给我了当头一锤又一锤,个人觉得面试官太厉害了,思路清晰,知识储备奇多,觉得在这样的leeder带领下工作,是一种享受,肯定会影响你不自觉的就想上进,向他看齐,问的东西有粗有细,但是记得不太清了

一面:上来先聊了项目,项目中涉及到的技术

        多线程,线程复用原理,怎么创建线程池,每个参数都代表什么

        设计模式有什么比较熟的,又说到了单例,说说每种方式各自的特点

        Glide 的实现原理能说说吗,它的缓存机制是什么样的,加载图像的机制是什么样的

        Rxjava是个什么样的框架,它又是怎么实现的

        https 和 http ,https是怎么做到更安全的,加密流程,是不是对称加密,常用加密方式

        你有什么擅长的技术,比较了解的框架,跟我说说

         很遗憾啊,这个大厂面试官问了很多东西,偏向于原理,由于我当时比较紧张,没有能及时记下来,非常遗憾。。。。     

厂五:是一家中型规模的公司,但是业务偏向于硬件和framwork,Android团队只有一位工程师,与我阅历经验相仿,但是后端前端测试也有百十号子,团队其实不小,只问了一下项目网络框架怎么实现的,Socket使用流程,聊了聊项目经验就过了,二面是技术中心leeder,聊了聊项目细节,整个流程的实现,又聊了聊岗位业务方向,当天就确定了意向offer,但是很遗憾最后没有去这家

厂六:是一家风头正盛的公司,某大卫视的节目咔咔投广告,年轻人都喜欢的一个社交游戏项目,说心里话,这家在所有的公司中,想去意向排第二,可惜二面技术leeder没有看上

一面:ArrayList 和 LinkedList 区别和各自实现

        说说HashMap,是怎么防碰撞的

        Activity 的启动方式

        并发编程,线程池的复用原理

        Glide框架实现原理

        Handler 的机制

        Rxjava 怎么实现一个带倒计时的注册功能

        View 的绘制流程

        事件传递机制

        带队心得,最深的感受是什么

二面:主要是抠项目细节,问怎么实现的

       面试官说把他当一个要接手你项目的同事,跟他讲一讲项目技术实现过程,以及以后要注意什么,朝什么方向优化,有什么想法        

厂七:我现在在工作的公司,是一家大厂,我的直属领导人非常非常好,我的技术可能在这家公司不太达标,但是直属领导也是极力跟大领导推荐并破格录用了我,我非常非常感谢,我也希望我能好好学习技术,不辜负他对我的期望

一面:Android 

          java基础

          算法

        具体的记不清了。。。太紧张了

二面:抠项目,抠的我头皮发麻,路子是聊项目,然后由项目聊到基础知识

         多态

         重载和重写

         Android 进程间通信

        Service 的启动方式,它们有什么不同,跟Activity的生命周期什么关系

         Activity 和 Service是怎么通信的

        二叉树有几种遍历方式

         项目里的一个核心算法实现,分析了这个算法有什么优势劣势,优化方向

        

后面的几个就不在写了,因为他们问的偏业务,没有什么值得大家借鉴的,但是这些面试参加下来,总的来说,Android工程师还是需要这几个方面的知识储备,如果带过团队的最好整理一下带队心得,不要一聊你说没啥感受,那就不太好了

- Android

        - 四大组件

        - View 相关

        - 事件传递

        - 进程间通信

        - 应用启动流程

- 数据结构

        - 常见List 数据结构

        - 常见Map 数据结构

- 算法

        - 常见排序算法

        - 常见查找算法

        - 二叉树

        - 红黑树

- 网络相关

        - http 和 https

        - 三次握手和四次挥手

- 主流三方框架的原理

        - Glide

        - Rxjava

        - Rxtrofit

        - Okhttp

        等,一定要有自己熟悉的框架使用和原理分析储备

        当然了,并不是说我们为了应付面试就匆匆背几个东西就完了,而是要真正的熟悉并把他们运用到项目中去,平时还是要注意知识的积累,多写文章,多积累,好了,暂时就写到这里吧,好久没有写这么多字了,希望对大家有一点点帮助

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值