Android开发经验谈Android技术进阶Android开发

Android面试经文分享;站在面试官角度,offer请拿好!

2022-09-20  本文已影响0人  谁动了我的代码

身在曹营心在汉

在金九银十的面试季。许多人的技术满满;但薪资永远加不上去,老板加薪始终抠抠搜搜的。

这也怨不得老板,这是各个企业的运营模式。行业的薪资永远是通过跳槽增长的。所以想涨薪资,那就得广撒网择优捕捞。必须成为“Android小海王”才能让你拿高薪进大厂!对于自身发展(身在曹营心在汉)是褒义的。谁不想往“钱”看?


我们都懂,面试中问到的问题基本上项目开发中很少遇到。但是,面试官递给你火箭材料你还必须得造火箭。别用技术的高级来定义面试问题;因为面试是一种技术的概括和表达,不仅看出你的技术程度;还能看出你的知识面广泛。

对此我分享一些面试经文如下:

面试经文分享

1、拼多多(三面)

第一面:

1.java虚拟机

2.内存优化

3.arraylist hashmap linkedhashmap

4.binder

5.surfaceView和view

6.AMS WMS

7.APK瘦身

8.锁(死锁的场景和解决方案)

9.算法 两个字符串 比较最大的公共字符串 ,主要是思路 (面对问题,以大化小)

第二面:

1.http优化 okhttp多路复用

2.硬币兑换问题 [算法]

3.车的通过问题,一条路上,30分钟内看到有车通过的概率是90%,那么5分钟之内概率是多少

4.图的展现形式

5.全球货币转换功能的代码

6.给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度

第三面:

1.mvp mvvm区别 mvvm中的databinding如何刷新view的

2.跨进程通信方式,binder机制

3.leakcanary原理

4.内存优化和工具,APK瘦身

5.get和post的区别,浏览器中输入一个地址然后展示出页面这个过程中做了哪些操作

6.断点续传和下载的原理

7.glide缓存原理,lru算法

8.动态代理原理

2、识货(三面)

第一面:

1.apk启动流程 zgot fork出一个进程到 从ActivityThread的main方法,再到AMS 再到Intrumention启动

2.内存优化了解多少,什么情况下会发生内存泄漏。 答到(四种引用链关系),再深入就是java内存模式,类的内存分布

3.说一下断点续传和多线程下载怎么实现。 请求时候往请求头放入range和index参数 再用RandomAccessFile写文件

4.类的动态加载 classLoader的双亲委托机制

5.你组件间是怎么通信的

6.让你设计一个图片加载框架你会怎么设计

7.应用商店是怎么样的一个架构设计。

8.你做的应用商店技术指标和业务指标是哪些

9.对下载和安装指标提高做了哪些优化

10.你刚讲到了handler,那你说一下你对handler的理解,怎么用java实现一个handler message messageQueen Looop Handler ThreadLocal 都讲一下对应的作用, 再从程序设计角度而言讲哪些地方设计的好 他怎么保证一个Thread只有一个Loop和MessageQuenen,为什么推荐我们handler.obtainMessage()

第二面:

1.说下你做的应用商店感觉最难的点在哪

2.为什么选用Fresco作为图片加载框架

3.安卓系统版本之间对Bitmap怎么处理的 安卓2.3之前把像素数据存储在native层中,之后的系统把byte存储java层中,8.0后有放回native中,但有自己的回收机制

4.你用CC框架组件化,为什么不选择阿里的Arouter框架,CC有什么好处。使用过程中用到什么问题。

5.你平时怎么做性能优化的

6.你用到哪些工具做性能优化,冷启动怎么优化

7.插件化你懂吗

8.有对公司做过什么突出的贡献吗?

9.你平时怎么自己学习新技术

10.你对自己的职业规划是怎么样的

11.你觉得自己哪方面比较擅长,哪方面比较短缺。

第三面:

1.你觉的你做的项目最有挑战性的是什么

2.你是怎么做技术选型的,说一下为什么选用CC而没有选ARouter,你在用组件化框架的时候有没有遇到什么问题

3.MVC和MVVM,MVP说一下你的理解

4.你对你负责的项目在性能优化上做了哪些努力

5.你平时是怎么学习的

6.你对自己的未来职业规划是怎么样的

3、新浪(二面)

第一面

1.java的四种引用分析

2.synchronize和volatile各自的机制是怎样的

3.handler源码原理相关的问题

4.自定义view的绘制,事件分发机制,怎么解决滑动冲突,activity启动的过程

5.https单向认证,对称加密和非对称加密,在浏览器输入url发生了什么

6.jvm相关,如new一个对象的过程发生了什么,垃圾回收机制

7.ANR 是什么?怎样避免和解决 ANR

8.问了关于线程池的一些问题

9.跨进程通信有什么方案

10.binder机制

11.hashmap源码

12.用什么方案缩小apk体积

13.recyclerview和listview对比

14.做过什么内存优化,性能优化

15.okhttp源码设计原理

16.手写一道算法题,关于DFS+回溯算法的

第二面

1.问了之前的一些项目经历,在团队做了什么,主要负责哪一块,选择一两块自己认为做得最好的展开讲讲,过程中会打断问问题

2.有没有做过插件化,做到什么程度,讲讲原理

3.由于我之前项目有用到mvvm和jetpack,问了一些jetpack组件相关的源码,和mvvm跟mvp的对比

4.又问了okhttp,缓存拦截器原理是怎样的

5.项目中做过什么性能优化,具体说说

6.平时项目中用到什么设计模式,挑几个常用讲讲

7.聊人生聊职业规划


以上分享三个Android开发面试的经文;可以看出许多技术点基本上不常用到。面试官主要是通过几轮面试对你的技术程度了解。技术答疑是占比最大的。所以把面试题刷好,是很重要的。对此网上的面试经文也比较少;这里推荐阿里的Android专家整理的《Android面试题精选》
出席很多面试场合担任面试官。记录了许多以往的面试经文。

这还不得拿捏面试官,offer拿到手软?

跳槽是加薪之母,一切不以加薪为目的的跳槽都是耍流氓。

上一篇下一篇

猜你喜欢

热点阅读