一个自学Android-人的第三年的面经分享(1),焦虑的移动互联网开发者如何破局

这一块也是很多公司喜欢问的,特别是当部门架构组团队招人的时候喜欢问。我不太擅长这方面,就不多谈了。

④数据结构及算法

在我系统学习的过程中我是把数据结构和算法跟着课程学了一遍的,但是我面试期间是完全放弃复习算法的。这么说并不是说算法不重要,头条的面试上来就会考一道算法题,喜欢考算法的厂也越来越多。只是大家要根据自己的实际情况分配复习的比重。毕竟数学考试最后一道大题你做不来,你可以把前面的小题争取全部做对。

####四.简历

简历是敲门砖,也可能是面试的引线

大家一定要重视简历。对于学校不优秀,工作背景不突出的同学,简历是你的敲门砖。简历写的不好,你可能直接会错过一次展示自己的机会。

在面试中很多面试官会根据简历来提问,所以你擅长的东西,一定要写在突出的地方让面试官看到,主动引导面试官问你你擅长的问题。在回答问题的时候,千万不要只言片语草草结束。每次被提问,都是一次展示自己的机会。尽可能的说全,说详细。接着面试官可能围绕你说的内容进行深挖去考察你,所以你的知识点不能浮于表面,不然两三个回合可能就被问的哑口无言。如果你实在有些知识点不懂,尽量的在回答中规避这些细节,免得面试官一时兴起问你一下。

那么简历到底该怎么写,有些同学可能会觉得,我平时工作都在堆业务,项目上没有什么可以写的怎么办。首先再回头看一看项目里是不是真的没有什么闪光点,日活、品控、性能这些都能作为你的谈资。如果实在没有那就去研究两三个主流开源框架,读读Android SDK源码,写点开源项目放到github上。你也可以搞明白自己项目的业务架构,钻研一下组件化、热修复、插件化、hybrid等热门技术,深究一下性能优化比如卡顿监测、APK瘦身、DEX加密、过渡绘制等。每一个点它都可能成为你成功的钥匙。

####五.面试题

生活是场修行,认真对待每场面试

这里写了部分大厂面试题作为大家复习的参考,平安系的面试主要问的项目,包括个别小厂面试没什么参考性,这里就不写了。

头条的面试质量很高,复盘的时候有种醍醐灌顶的感觉。

携程的面试很不走心,大老远跑一趟最后面试官都不给我提问的机会面完直接走出去了,我也没差到这种地步吧。

阿里的面试比较随机,两次下午上班的时候来电面试,一次是晚上来电面试。

5.1东方财富

笔试

1.简述类加载机制
2.写三种单例的实现方式
3.Activity生命周期
一面

1.Handler机制
2.事件分发机制
3.乐观锁与悲观锁
二面

1.Android 7.0 8.0 p 兼容性问题
2.嵌套滑动
3.营销工具比如列表第三位展示广告,如何设计接口
5.2蚂蚁金服

一面

1.内存泄漏
具体场景
2.大图加载
2.1.大图加载的缓存
2.2.Bitmap优化
3.Handler机制
3.1.子线程能不能创建Handler
3.2.线程间通信其他方式
4.线程的创建与退出
4.1.乐观锁与悲观锁
4.2.volatile原理
4.3.读写锁的应用
5.RecyclerView与ListView的区别
5.1RecyclerView为什么这么设计
5.2应用
6.自定义控件
6.1.事件分发机制
6.2.动画
7.okhttp支不支持优先级
7.1.ssl握手谁实现的
7.2.websocket应用
8.简述日志系统
二面

1.介绍项目架构等,围绕项目进行提问
2.序列化的作用
3.子线程轮询阻塞队列如何安全回收线程
5.3Musical.ly(头条)

一面

算法:数组中的数据前半部分递增,后半部分递减,排序并去重

1.Java虚拟机

1.1虚拟机内存结构
1.1.1哪些是线程私有,哪些线程公有
1.1.2静态常量的存储位置
1.1.3无穷递归方法引发的问题
1.2.GC机制
1.2.1.GC roots是什么
1.2.2.Handler造成内存泄漏的整个引用链
1.3.什么情况会产生ANR
1.4广播
1.4.1.onReceive方法调用线程
1.4.2静态广播接收流程
1.4.3动态广播接收流程
1.4.4动态广播能不能重复注册
1.5.SurfaceView原理及使用注意事项
1.6.ButterKnife工作原理
1.7.仿微信朋友圈图片展示设计思路
------以下问题都是面试官根据简历问的------

2.热修复
2.1热修复原理
2.2.假如某个类A有个bug,热修复的整个流程
2.3该修复方案是否能避免oat导致的一些问题
3.LeakCanary原理
4.Groovy插件
4.1.APK瘦身如何实现的
4.2.自定义任务在某个任务之前或之后执行怎么写
4.3.Gradle打包的整个过程
5.看过哪些Android源码
拦截Activity跳转有哪些Hook点
6.Groovy和Java的比较
二面

1.类加载过程
1.1触发类初始化的时机
1.2被动引用
2.Activity启动模式及几个模式的应用场景
3.onSavedInstanceState相关
3.1灭屏会不会触发onSavedInstance
3.2.onRestoreInstanceState和onSavedInstanceState是否成对出现
4.Service生命周期的理解
4.1bindService整个代码怎么写
4.2.与service通信是否会阻塞当前线程
4.3如果是耗时方法,为什么会阻塞
4.4如果不是耗时方法,为什么不会阻塞
4.5如果远端是耗时操作,怎么不等待结果让主线程先运行
4.6.startService和bindSerivce对service生命周期的影响
4.7.aidl传递Bitmap需要注意的事项
5.4携程

一面

1.EventBus原理
2.Java中有哪几种注解
2.1具体注解名称
2.2如何自定义注解
3.EventBus是什么注解
3.1能不能用编译时注解实现EventBus
3.2注解处理器怎么工作
3.3注解处理器有哪些API
4.Glide原理
5.Lrucache原理

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

6.LinkedHashpMap原理
7.HashMap原理
7.1解决Hash冲突的方法
7.2.equals和hashcode作用
7.3.hashcode如何实现
8.Object类下有什么方法
9.使用过哪些热修复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值