来了来了;带着全网最新Android面试真题来了
Posted 初一十五啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来了来了;带着全网最新Android面试真题来了相关的知识,希望对你有一定的参考价值。
前言
人总是不知足的,总希望往高处走,说实话跳槽是涨薪的最快方式,但是跳槽才频繁了影响也不好。眼看这9月份就不知不觉的要完了,有一些朋友发来一些面试经理以及经验,小结一下。
腾讯Android开发笔记+2022Android十一位大厂面试真题+音视频60道面试题+Jetpack+Matrix+JVM
一丶北京小米移动软件
1.一面
两个面试官(一个我们小组android的leader,一个是同事),上来先当着他们的面写了一个笔试题(都是很基础的题没啥难度,算法题也就是一个list
的反转,但是小米比较注重手写代码的一些细节,所以要考虑好该判空的判空,还有防止越界啥的问题),然后就开始问,90%都在问Java
基础(GC
的机制,GC
算法,内存相关的问的比较多,多线程线程安全问题是如何发生的,HashMap
的原理)
2.二面
主管(全程聊项目,没有问技术相关的了,然后介绍了一下这个部门的工作内容啊之类的)
三面,本来应该有三面…三面是我们部门的领导,但是因为一些其他的原因吧,三面就没有面直接过了。
3.面试经验分析与建议
其实自已算是运气好,遇到的问题算是偏容易的,要多看看算法方面的视频
二丶腾讯音乐
五面🙃
5次都是技术面
-
activity
和service
的生命周期与使用场景 -
thread
和服务的差别,单例的类型,多少种?优缺点。 -
说一下死锁的原因,与场景,
-
单例的使用场景,
-
使用过啥来源框架,有啥特点,为什么,从中学到了什么。
-
kotlin
的特点与java
的差别, -
三种架构的区别
-
handler
和view
的原理。 -
线程池原理与种类,
-
javastackoverflow
的原因 -
性能优化和卡顿优化的实际案例,
-
虚拟机的构成与原理,
-
热修复和插件化的区别与原理
-
rxjava
源码, -
多线程应该注意的问题,
-
databinding
原理 -
binder
原理, -
网络方面知识,平时解决问题的流程
面试经验分析与建议
基础知识肯定得背,然后也得知道为啥是这样,算法会问到,还有就是开放式问题,他想知道你怎么解决问题的,过程重要,怎么发现和定位的;平时学习的方法。
三丶美团
面了三轮,内容如下:
3.1.java
static
变量各种访问可见性,final
关键字的作用,- 封装继承多态展开问,
- 多线程通讯,
- 线程池原理,
- 线程同步方式,
jvm
内存模型,- 常见的
gc
算法 - 类加载过程
网络的话主要是问的https
,http1/2/3
的区别特性
3.2.Android
- 问了一些常见的
handler
原理 recycleview
缓存机制,view
事件的分发glide
缓存机制- 然后引申如何实现我
LRU
。 - 内存泄露和如何预防处理,
3.3.算法的话
- 有
top-k
排序(堆排序,位图法), - 旋转输出矩阵,链表逆序,
hashmap
- 线程安不安全,它的锁机制等等
四丶字节跳动
一面:
- 插件化。启动
activity
的hook
方式。 okhttp
支持HTTP2
?http2
的功能有哪些?tcp
方面拥塞控制?tsl
的握手和具体的非对称加密算法。handler
的post(Runnable)
如何实现的。callback
,runnable
,msg
的执行优先级。- 阻塞是怎么实现的?为什么不会阻塞主线程?
- 求二叉树中两个节点之间的最大距离。
- 多进程通信问题。
binder
优势。aidl
生成的java类细节。多进程遇到哪些问题? - 动态代理传入的参数都有哪些?
- 非接口的类能实现动态代理吗?
ASM
的原理Application
和Activity
在Contex
t的继承树上有何区别?二者使用上有何不同?- 任意一颗二叉树,求最大节点距离
二面
- 设计一个日志系统。
- 内存泄露的分类。怎么查看内存泄露的问题
touch
事件源码问题。- 组件化的问题。
module
和app
之间的区别。moduler
通信是如何实现的。 native
奔溃的日志采集,怎么处理?- 注解实现一个提示功能:如果
int
的值大于了3需要提示。
三面
- 介绍下
flutter
的启动流程 - 介绍下
flutter
与weex
的区别 - 组件化介绍一下
webview
中与js
通信的手段有哪些?- 介绍下
flutter_boost
的原理
四面
- 适配器和装饰模式各自特点和使用场景
- 视频编解码是怎么做的
- 三色球排序
腾讯Android开发笔记+2022Android十一位大厂面试真题+音视频60道面试题+Jetpack+Matrix+JVM
五丶汇丰银行
1.线程池的工作原理
2.synchronized
锁方法和锁静态方法有什么区别
3.锁的理解,什么是乐观锁,悲观锁,可重入锁。
4.View
的事件分发流程
5.View
的三种测量模式理解
6.HashMap
的工作原理。
7.怎么实现多线程下载,断点续传怎么实现。
8.rxjava
的背压了解吗
9.kotlin
的协程
六丶阿里
一面
1.apk
启动流程
2.zgot fork
出一个进程到 从ActivityThread
的main
方法,再到AMS
再到Intrumention
启动
2.你刚讲到了handler
,那你说一下你对handler
的理解,怎么用java
实现一个handler message messageQueen Looop Handler ThreadLocal
都讲一下对应的作用,
二面
1.说下你做的应用商店感觉最难的点在哪
2.为什么选用Fresco
作为图片加载框架
3.安卓系统版本之间对Bitmap
怎么处理的
三面
1.你觉的你做的项目最有挑战性的是什么
2.你是怎么做技术选型的,你在用组件化框架的时候有没有遇到什么问题
3.MVC
和MVVM
,MVP说一下你的理解
4.你对你负责的项目在性能优化上做了哪些努力
5.你平时是怎么学习的
6.你对自己的未来职业规划是怎么样的
七丶腾讯
3轮技术面+1轮hr
一面:
1.mvp mvvm
区别 mvvm
中的databinding
如何刷新view
的
2.跨进程通信方式,binder
机制
3.leakcanary
原理
4.内存优化和工具,APK
瘦身
5.get
和post
的区别,浏览器中输入一个地址然后展示出页面这个过程中做了哪些操作
6.断点续传和下载的原理
7.glide
缓存原理,lru
算法
8.动态代理原理
二面
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
,请你求出乘积为正数的最长子数组的长度.
八丶WPS
3轮技术
1.线程切换(handler
机制)
2.多线程,几种锁,有什么区别
3.如何实现线程排队
4.Https
加密机制
5.项目经验
6.Okhttp
原理
7.设计一个线上日志收集系统
8.项目经验
9.Activity
启动流程
10.性能优化
11.Viewstub
实现原理,自己设计一个类似的
12.Https
如何保证安全的,如何防止中间人攻击,可以伪造证书吗
13.Looper
死循环为什么不会导致主线程卡死
14.epoll
机制是怎么样子的
15.热修复资源id
冲突怎么解决
16.AIDL
如何实现的
17.Binder
原理
面试都是开发性问题,大部分是项目经验
腾讯Android开发笔记+2022Android十一位大厂面试真题+音视频60道面试题+Jetpack+Matrix+JVM
九丶Shopee
2轮技术
shopee一面
1.java
的四种引用分析
2.synchronize
和volatile
各自的机制是怎样的
3.handler
源码原理相关的问题
4.自定义view
的绘制,事件分发机制,怎么解决滑动冲突,activity
启动的过程
5.https
单向认证,对称加密和非对称加密,在浏览器输入url
发生了什么
6.jvm
相关,如new
一个对象的过程发生了什么,垃圾回收机制
8.问了关于线程池的一些问题
9.跨进程通信有什么方案
10.binder
机制
11.hashmap
源码
12.用什么方案缩小apk体积
13.recyclerview
和listview
对比
14.做过什么内存优化,性能优化
15.okhttp
源码设计原理
16.手写一道算法题,关于DFS+
回溯算法的
shopee二面
1.问了之前的一些项目经历,在团队做了什么,主要负责哪一块,选择一两块自己认为做得最好的展开讲讲,过程中会打断问问题
2.有没有做过插件化,做到什么程度,讲讲原理
3.由于我之前项目有用到mvvm
和jetpack
,问了一些jetpack
组件相关的源码,和mvvm
跟mvp
的对比
4.又问了okhttp
,缓存拦截器原理是怎样的
5.项目中做过什么性能优化,具体说说
6.平时项目中用到什么设计模式,挑几个常用讲讲
7.聊人生聊职业规划
十丶京东
1.如何设计模块,组件,sdk
,如何考虑
2.说说你项目的架构,为何这么设计或这么考虑
3.说说内存泄漏,越多越好
4.说说你的技术难点,如何解决,如何思考
5.apk
安全,你如何考虑
6.act+fragment
的完全生命周期(不是单个说哦)
7.recyclerView
源码,必会,包括缓存如何实现,哪几个缓存,运作流程等;各种notifyXX的原理,触发哪些重绘;如何实现下半部分item
不移动,上半部分的item
高度变化的实现?
十一丶探探
探探比较好的面试题:
1.手拖动View
,手松开后完成一个泡泡破裂的动画效果(本质是view
事件分发机制+动画选型,分发机制哪个方法处理什么参数,之后怎么触发动画效果等,问的灰常具体,吐了)
2. 自定义view
相关
3.深入的说说framework
层的流程原理
4.kotlin
协程深层原理如何实现的
4.dcl
是否线程安全?哪一块出问题,为什么volatile
能实现防止指令重排,指令级别如何实现的,对象的创建过程等(多家都问了,很深入)
十二丶小红书
1.concurrentHashMap
如何加锁的
2.measure
参数详解,view
设置wrap
不起作用
3.Bind service
,如何实现保活
4.两个进程act
,如何加快启动速度
5.性能优化(面试官老插嘴,都说不上话)
6.Eventbus
如何实现线程的切换
7.jetpack
的Navigation
的xml
引用,在什么时候调用的?
8.Inflater.inflate
如何实现xml
转java
的(framework),方法中的各个参数含义。
腾讯Android开发笔记+2022Android十一位大厂面试真题+音视频60道面试题+Jetpack+Matrix+JVM
以上是关于来了来了;带着全网最新Android面试真题来了的主要内容,如果未能解决你的问题,请参考以下文章