三年经验Android开发,2个月面试腾讯、B站、网易等11家公司的面经总结

面试题的全部内容(包含题库和详细解析),我已经整理在了Github:https://github.com/AndroidCot/Android
,有需要的朋友里面有领取方式

简历

首先是简历,一般找一个模板,填写掌握的技能和项目经历即可。

项目clone后,个性Resuem.md即可,然后导出为pdf文件。

简历建议长度为2页,太长太短都不好。

建议用掌握与熟练掌握取代了解与精通。

刷题

算法题可以说是现在找工作必刷的了。不过根据我面试的经验,算法题总得来说问的还是比较少,还有一些公司是基本不问算法的。

当然如果碰到字节,快手这种每轮都问算法的公司,如果因为算法题拿不到offer就很可惜了。

算法题就好像高考语文的古诗词默写一样,分不多,但丢了就很可惜了。

根据我的经验,大概刷了,掌握100道题就足以应付面试了。

当然完全掌握需要重复练习,不是刷了一遍就可以的。

这里推荐一个五遍刷题法:

五遍刷题法

  • 1.第一遍,直接看解法

多解法,比较解法优劣,默写好的解法

  • 2.第二遍,打开leetcode,直接开始写

多种解法比较,调优

  • 3.第三遍,过一天之后,再重复做题

  • 4.第四遍,过了一周,再来反复练、

  • 5.第五遍,面试前一周,恢复性训练

通过以上方法重复练习,大概刷100题就足以应付面试,如果每天刷3道,大概准备一个月即可

题库

刷题也要注意,不要一题一题刷,比如Leetcode的每日一题

建议按知识点分类,这样比较方便重复练习与知识点掌握

在知识点刷过一遍后,也可以按照公司分类或者LeetCode热题100刷,一般公司出算法题也是有题库的

面经

接下来就是各公司的面经了,分享出来供大家参考。

尚德公司面试

image

1.java有什么特性,继承有什么用处,多态有什么用处

2.反射是什么,在哪里用到,怎么利用反射创建一个对象

3.代理模式与装饰模式的区别,手写一个静态代理,一个动态代理

4.对象加载的过程,属性先加载还是方法先加载

5.垃圾回收机制与jvm结构

6.自定义View,事件分发机制讲一讲

7.http与https有什么区别

8.Activity启动模式,以及各启动模式生命周期问题

9.静态方法,静态对象为什么不能继承

10.Activity怎么启动Service,Activity与Service交互,Service与Thread的区别

11.介绍一下android动画

12.Launcher启动App的流程,中间有几种跨进程通信(socket)

13.Handler通信,Binder通信

14.你碰到过什么内存泄漏,怎么处理

15.RXJava怎么切换线程

16.Fragment hide show生命周期

17.平常有用到什么锁,synchronized底层原理是什么

Vivo公司

1.简单描述下Handler,Handler是怎么切换线程的,Handler同步屏障

2.Glide的缓存,有用过Glide的什么深入的API,自定义model是在Glide的什么阶段

3.讲讲mvc,mvp模式,presenter内存泄漏的问题

4.ANR了解过吗?有没有实际的ANR定位问题的经历

5.性能优化你做过哪些?

6.有什么实际解决UI卡顿优化的经历

7.有做过什么Bitmap优化的实际经验

8.项目搭建过程中有什么经验,有用到什么gradle脚本,分包有做什么操作

9.组件化有详细了解过吗?ARouter详细原理

10.讲一下事件分发机制,RecyclerView是怎么处理内部ViewClick冲突的

11.mainfest中配置LargeHeap,真的能分配到大内存吗?

B站

1.一个大致有序的数组如何排序,最快时间复杂度

2.如果叫你实现,你会怎样实现一个多主题的效果

3.如何自定义实现一个FlexLayout

4.tinker的原理是什么,还用过什么热修复框架,robust的原理是什么?

5.说说你对注解的了解,是怎么解析的

6.synchronized是公平锁还是非公平锁,ReteranLock是公平锁吗?是怎么实现的

7.泛型是怎么解析的,比如在retrofit中的泛型是怎么解析的

8.mvp与mvvm的区别,mvvm怎么更新UI,databinding用得多吗,databinding的原理?

9.kotlin ?的原理

10.在项目中有直接使用tcp,socket来发送消息吗

11.如何在网络框架里直接避免内存泄漏,不需要在presenter中释放订阅

12.生命周期都是通过什么调用的?有用过AIDL吗?

13.讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView

14.如何实现RecyclerView的局部更新,用过payload吗,notifyItemChange方法中的参数?

15.讲讲LinkedHashMap的数据结构

16.put post有什么区别

17.A Activity打开B Activity的生命周期变化,会有什么方法打断吗?

18.Fragment hide show生命周期变化

19.Fragment replace生命周期变化

B站二面

1.为什么考虑换工作

2.屏幕适配做过什么工作?

3.你们网络框架用的什么?为什么?

4.如果让你来开发B站的一个页面,哪一个页面可以很快入手

5.性能优化你做过什么工作?

6.h5与native通信你做过什么工作?

7.插件化的主要优点和缺点是什么?

8.你觉得B站目前的APP有什么问题?

9.如果产品要求你开发一个音频播放功能,你会怎么着手?预计会有什么坑?

10.ViewPager切换Fragment什么最耗时?

11.线程间同步的方法

12.锁之间的区别

B站三面

1.介绍一下你自已和项目

2.说说为什么考虑离职

3.说说对你们原来公司的印象

4.为什么想来B站?你在B站上常常在看什么?

5.期望薪资是多少?

6.你对搬到上海有什么想法?

腾讯

1.介绍一下你们项目的架构

2.Rxjava是怎么实现线程切换的

3.Rxjava自定义操作符

4.ARouter的原理

5.ARouter怎么实现接口调用

6.ARouter怎么实现页面拦截

7.MVP怎么处理内存泄漏

8.OkHttp怎么实现连接池

9.如果让你来实现一个网络框架,你会考虑什么

10.你做过什么性能优化的工作

11.热修复的原理,资源的热修复的原理,会不会有资源冲突的问题

12.ViewPager中嵌套ViewPager怎么处理滑动冲突

13.android源码中有哪些设计模式

14.说说binder机制的原理

腾讯二面

1.为什么考虑换一份工作?

2.在你们公司这几年感觉怎么样?

3.技术选型上,为什么这么考虑?从开发效率,产品性能,产品质量,产品体验等方面考虑

4.你们的产品为什么被砍掉,从哪方面考虑

5.在这几年里,你有做过什么觉得最有价值的工作

6.你还有什么要问我的吗?目前有几个offer,倾向性是怎样的?

网易云音乐

1.ViewPager2原理

2.LifeCycle的原理是怎样的?

3.ViewModel为什么在旋转屏幕后不会丢失状态

4.Drawable与View有什么区别,Drawable有哪些子类

5.属性动画更新时会回调onDraw吗?

6.OkHttp网络拦截器,应用拦截器?OKHttp有哪些拦截器,分别起什么作用

7.自定义实现一个九宫格如何实现

8.PathClassLoader与DexClassLoader有什么区别

9.这些年有做一些什么比较难的工作?

10.编译时注解与运行时注解,为什么retrofit要使用运行时注解?什么时候用运行时注解?

11.kotlin lazy使用,lazy viewmodel

12.有没有看一下Google官方的ViewModel demo

13.ViewModel在Activity初始化与在Fragment中初始化,有什么区别?

14.kotlin与Java互相调用有什么问题?

15.retrofit怎么做post请求

16.界面优化的一些方法,ConstraintLayout实现三等分,ConstraintLayout动画.

17.CoordinatorLayout自定义behavior,可以拦截什么?

网易云音乐二面

1.你们的项目中做过什么比较难的工作?

2.视频播放,一个player怎么实现预加载,避免loading

2.webView加载本地图片,如何从安全方面考虑

3.http1.0,http1.1,http1.2有什么区别

4.https与http有什么区别

5.有用过什么加密算法?AES,RAS什么原理?

6.android跨进程通信了解吗?共享内存用过吗?binder怎么验证pid?binder驱动了解吗?

7.SharedParence可以跨进程通信吗?如何改造成可以跨进程通信的.commit和apply的区别.

8.Seriazable与Parceable的区别

9.Bundle是什么数据结构?利用什么传递数据

10.Jvm的内存结构,Jvm的垃圾回收,方法区有什么东西?

11.h5与native交互,webView.loadUrl与webView.evaluateUrl区别

网易云音乐三面

1.有没有做过什么WebView秒开的一些优化

2.你们的项目中有什么难点?

3.native如何对h5进行鉴权,让某些页面可以调,某些页面不能调

4.有看过哪些框架的源码吗?

5.viewModel是怎么实现双向数据绑定的?

6.viewModel怎么实现自动处理生命周期?

7.图片加载优化有什么经验吗?

8.viewpager切换掉帧有什么处理经验?

9.一个wrap_content的ImageView,加载远程图片,传什么参数裁剪比较好?

10.两个getDrawable取得的对象,有什么区别?

11.补间动画与属性动画的区别,哪个效率更高?

12.jsBridge实现方式

13.平常是怎么了解一些新知识与业界动态的,最近有什么印象深刻的文章

14.平常抓包用什么工具?

15.Mvp与Mvvm有什么区别?

跟谁学

1.项目中的Webview与native通信

2.项目中对WebView的功能进行了怎样的增强

3.synchronized跟ReentranLock有什么区别?

4.synchronized与ReentranLock发生异常的场景.

5.算法,删除数组中的重复元素

6.手写双检查单例模式,各个步骤有什么区别

7.Activity生命周期

快手

1.string,equals,==有什么区别

2.AsyncTask内存泄露

3.dispatchTouchEvent,onInterceptEvent,onTouchEvent顺序,关系

4.onMeasure,onLayout,onDraw关系

5.算法题,反转数组

6.算法题,链表求和

7.说说你对协程的理解

8.协程怎么取消

9.说说MVP与MVVM的区别

快手二面

1.算法题,二叉树的最大深度

2.如果android端和IOS端调一个接口,一个通了一个没通,你会如何解决

3.如果android端和IOS端调一个接口,一个比较慢,一个比较快,有什么思路

4.ARouter的原理是什么?如果不用ARouter,你会怎么去解藕。接口?设计接口有什么需要注意的?

5.h5与native交互做过什么工作?

6.登陆功能,登陆成功然后跳转到一个新Activity,中间涉及什么?从事件传递,网络请求,AMS交互角度分析

7.AMS交互调用生命周期是顺序的吗?

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。

最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

【Android部分高级架构视频学习资源】

Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

ndroid核心高级技术PDF文档,BAT大厂面试真题解析】**

[外链图片转存中…(img-SzTQ2etn-1712050186214)]

【算法合集】

[外链图片转存中…(img-lIlNwDrW-1712050186215)]

【延伸Android必备知识点】

[外链图片转存中…(img-Ti8LuKgB-1712050186215)]

【Android部分高级架构视频学习资源】

Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值