2018届应届生android面试总结

简介: 写在前面四月份结束了拥抱变化后的大规模面试后,2018届android校招面试总结:百度,大疆,乐视,知乎在五月份里,自己进行了最后俩次面试。算是对自己的大学生涯的一个交代。

写在前面

四月份结束了拥抱变化后的大规模面试后,2018届android校招面试总结:百度,大疆,乐视,知乎在五月份里,自己进行了最后俩次面试。算是对自己的大学生涯的一个交代。

感兴趣的看官,可以看看我的其他文章:
1、常用集合的源码分析:HashMap
2、Java反射实践:从反射中理解class
3、从公司项目配置看Gradle

面试过程

这俩个面试,分别来自人人车和摩比神奇。

人人车

人人车的面试还算中规中矩,应该是最近业务扩展的比较厉害,整体的考察力度和难度不算很高。

一面:

1、画了几个控件的嵌套问一下事件分发。
2、Handler机制,ThreadLocal的作用和源码。
3、HashMap源码分析。
4、Service用法,IntentService作用及源码。
5、Application中使用线程做耗时操作,和启动Service做耗时操作有什么区别。
6、各种情况下Activity的生命周期,已经onNewIntent相关。
7、Binder机制的理解。

二面:

1、处理滑动冲突的常见思路。
2、自定义View相关;MeasureSpec相关。
3、Dalvik虚拟机和ART虚拟机区别。
4、Kotlin的一些语法(我又在简历上写过会Kotlin)
5、询问简历中的项目思路。
6、AIDL中写回调;Binder机制。
7、本地广播和全局广播的区别,顺序广播。
8、手写快排。

三面HR....

整体来说人人车面试的比较快,加上等待一共也就一个小时多一点。中午吃饭的时候接到了电话, 说可以发offer。

摩比神奇

这家公司是一个朋友给内推的,当时以为是一家创业公司,后来百度了一下,原来有大公司的背景。这家比较可惜吧,虽然朋友反馈说面试结果不错,但是他们想要一个有经验的开发,不大想要应届生,说再考虑考虑...然后就没有然后了...不过整个面试质量还是比较高的,技术面一共有四面。

一面:

1、画了几个控件问事件分发,分发/拦截/onTouchEvent的各种返回值的情况。
2、自定义View,画了一个有填充背景多的折线图,问我实现思路。
3、如何实现圆角,图片重叠显示交集(PorterDuff,遮罩)。
4、属性动画和View动画区别,性能上谁更好。
5、Activity的启动模式,各种back的情况。
6、常见的内存泄漏及解决方案。
7、ScrollView中有一个Button会出现什么样的问题,怎么解决。
8、ListView和RecyclerView的区别。

二面:

1、各种Activity/Window/Dialog对生命的周期影响。
2、Handler机制;为什么loop是个死循环;死循环为什么不会阻塞主线程。
3、RecyclerView的缓存机制。
4、Java中线程可以怎么用,线程在不同情况下对应什么状态。
5、synchronized和Lock的区别;乐观锁/悲观锁/分段锁
6、HashMap源码;线程安全的HaspMap多有哪些;分析一种最熟悉的。

三面:

1、文件增量扫描的思路。
2、手写:俩个顺序数组合并。
3、针对简历问实现思路。

四面:

1、线程和进程的区别。
2、Binder机制;为什么说Binder只进行了一次内存复制。
3、TCP/UDP的区别;使用场景。
4、GET/POST区别。
5、写一个生产者/消费者模型

五面HR...

尾声

整体来看,其实摩比神奇面试质量还是比较高的,可能是因为他们需要一个有经验的开发吧,最终并没有收到offer。算是比较的可惜吧。
不过也正是因为没有收到offer,也就不需要头疼选择的问题了。人人车也不错,正在业务拓展期,应该比现在的乐视要强吧....笑哭.png


这是一个主推面试踩坑的公众号!

因为身边的同学从事互联网相关职业的比较多,并且大家闲时聊天时总会吐槽找工作有很多坑,所以打算把身边同学找工作的经验,统统收集起来。提供给想从事这方面同学,希望圈内好友可以共同进步,共同少踩坑。

img_89788b3a8f3f86257453cbc8264959f6.png
个人公众号

本菜开源的一个自己写的Demo,这个项目拆解并组合了很多业务。目的在于遇到类似业务,可以快速的ctrl+c/v。希望能给Androider们有所帮助,水平有限,见谅见谅…
https://github.com/zhiaixinyang/PersonalCollect

目录
相关文章
|
3天前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
158 93
|
6天前
|
存储 缓存 编解码
Android经典面试题之图片Bitmap怎么做优化
本文介绍了图片相关的内存优化方法,包括分辨率适配、图片压缩与缓存。文中详细讲解了如何根据不同分辨率放置图片资源,避免图片拉伸变形;并通过示例代码展示了使用`BitmapFactory.Options`进行图片压缩的具体步骤。此外,还介绍了Glide等第三方库如何利用LRU算法实现高效图片缓存。
37 20
Android经典面试题之图片Bitmap怎么做优化
|
1天前
|
缓存 Android开发 开发者
Android RecycleView 深度解析与面试题梳理
本文详细介绍了Android开发中高效且功能强大的`RecyclerView`,包括其架构概览、工作流程及滑动优化机制,并解析了常见的面试题。通过理解`RecyclerView`的核心组件及其优化技巧,帮助开发者提升应用性能并应对技术面试。
17 8
|
1天前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
16 8
|
1月前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android 消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,Android某种意义上也可以说成是一个以消息驱动的系统,UI、事件、生命周期都和消息处理机制息息相关,并且消息处理机制在整个Android知识体系中也是尤其重要,在太多的源码分析的文章讲得比较繁琐,很多人对整个消息处理机制依然是懵懵懂懂,这篇文章通过一些问答的模式结合Android主线程(UI线程)的工作原理来讲解,源码注释很全,还有结合流程图,如果你对Android 消息处理机制还不是很理解,我相信只要你静下心来耐心的看,肯定会有不少的收获的。
105 3
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
1月前
|
Android开发
Android面试高频知识点(1) 图解 Android 事件分发机制
在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。
99 9
|
1月前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程掌握得不是很深刻,那么耐心点,看完这篇文章,相信你会有所收获的。
69 2
|
2月前
|
监控 Android开发 开发者
Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断
本文介绍在Android中判断应用前后台状态的两种方法:`ActivityLifecycleCallbacks`和`ProcessLifecycleOwner`。前者提供精细控制,适用于需针对每个Activity处理的场景;后者简化前后台检测,适用于多数应用。两者各有优劣:`ActivityLifecycleCallbacks`更精确但复杂度高;`ProcessLifecycleOwner`更简便但可能在极端场景下略有差异。根据应用需求选择合适方法。
28 2
|
2月前
|
Android开发 开发者
Android经典面试题之SurfaceView和TextureView有什么区别?
分享了`SurfaceView`和`TextureView`在Android中的角色。`SurfaceView`适于视频/游戏,独立窗口低延迟,但变换受限;`TextureView`支持复杂变换,视图层级中渲染,适合动画/视频特效,但性能略低。两者在性能、变换、使用和层级上有差异,开发者需按需选择。
45 1
|
1月前
|
Java 开发工具 Android开发
Android经典面试题之开发中常见的内存泄漏,以及如何避免和防范
本文介绍Android开发中内存泄漏的概念及其危害,并列举了四种常见泄漏原因:静态变量持有Context、非静态内部类、资源未释放及监听器未注销。提供了具体代码示例和防范措施,如使用ApplicationContext、弱引用、适时释放资源及利用工具检测泄漏。通过遵循这些建议,开发者可以有效提高应用稳定性和性能。
36 0