9月最新Android中大厂面经总结

2023年 10月 6日 61.1k 0

个人介绍

Android移动客户端,北京被裁员已经两三个月了,第一,二周投了两周简历没有一个面试,异常焦虑!第三周投递渐渐有了几个面试,基本都是很小的创业公司或者新兴行业的公司,面试完基本都没有后续,包括已经面过BP的的没有反馈。一个月后才开始有了几个像样公司的面试像美团、腾讯、京东、字节等面试机会,字节、京东一面挂,美团三面挂,腾讯四面BP挂。现在对面试已经完全没有信心了,更没有心气了,招聘软件上的职位看了一遍又一遍还是那些岗位,该聊得都聊了,已读不回是常态,偶尔有个回的要了简历没有下文。

这里特别奉劝各位小伙伴,一定、一定、一定要有自己明确的规划,以及及时止损!!!

不管如何,一起加油~

本来想着记录面试过程以及尽自己努力去搜寻对应较好的面试答案,当个笔记和参考留存,奈何个人能力有限,也不想简简单单的就是背背题、抄个答案或者误导他人。知其然而不知其所以然,还是想后续抽空好好亲自测试走一下,真正的去掌握,所以本文不会单独的为每个面试官问我的问题特别注明对应的答案,我还是希望各位看官,可以认真的思索下,假如面试官这样问你,你的答案会是什么?还有没有更好的回答?

虽然个人能力有限,但是还是希望做出一些正确引导,至少自己认为正确就好。

好了,废话就说到这,接下来就开始看面试题吧!

美团

  • MVC、MVP和MVVM的区别?
  • Kotlin协程的原理说一下?协程的分发器是如何分发的?了解协程构建器吗?
  • OkHttp的流程说一下?拦截器的作用是什么?拦截器怎么实现TCP复用的?OkHttp相比其他网络框架有哪些优点?OkHttp中有哪些设计模式?
  • HTTP和HTTPS的区别?
  • HTTPS的具体的请求过程?
  • 对称加密算法知道哪些?AES原理知道吗?
  • Handler机制说一下?一个Thread可以有几个Looper,几个MessageQ,几个Handler以及他们之间的关系?为什么主线程不用创建Looper?
  • 刚刚你提到了ThreadLocal,说下你对ThreadLocal的了解,为什么ThreadLocal中的Key是ThreadLocal,可以是其他的吗?为什么?(这里我瞎扯了避免内存泄露的问题)
  • View绘制流程说一下?MeasureSpec参数作用?MeasureSpec参数和布局参数wrap_content,match_parant还有指定大小之间关系。
  • 自定义View有哪些步骤,自定义View和自定义ViewGroup有什么区别?
  • 手撕比较简单:链表是否有环、最大子数组和。
  • 京东

  • Java函数调用过程
  • Volatile关键字的作用? 什么是可见性?
  • 假定一个场景:在多线程环境下,线程A在10秒前对一个共享变量修改,线程B在10秒之后读取该共享变量的值,这种情况下需要加Volatile关键字吗?
  • JVM垃圾回收机制
  • 常用的垃圾回收算法?
  • GC Root 引用的对象包括哪些? 标记的是有用的对象还是垃圾对象?
  • 程序计数器的作用、特点
  • 说说你对虚拟机栈的理解
  • 说一下Java多态的原理
  • 方法表是在JVM那个分区中?
  • 什么是Fragment,有什么特点
  • View绘制流程
  • ViewRootImpl中的performTravesal方法在什么时机被调用,被谁调用
  • ViewRootImpl有什么用,他和ViewRoot的关系
  • requestLayout方法和invalidate方法的区别
  • 算法:二叉树的层序遍历
  • 得物

  • 自我介绍
  • 了解git嘛?
  • git pull 和git fetch区别?
  • Git merge 和rebase区别?
  • 计算机网络七层模型?
  • 进行一个网络请求时,会有什么过程?
  • C++野指针?哪些情况会产生野指针?
  • 全局变量没有初始化会发生什么?全局指针呢?
  • 为什么会有默认值? 安全性、可预测性、方便性。
  • 32位和64位系统int指针的转换会出现问题吗?
  • 如果封装HTTP考虑哪些点?
  • 项目问题
  • 硬件解码了解? GPU解码等
  • 如果给你一个乱序的RTP包,你怎么进行组装排序?
  • 算法题:给定一个数组,它是先从小到大再从大到小排序。找出最大值?
  • 给出多种方法,分析时间复杂度和空间复杂度。
  • OPPO

    操作系统:

  • 如何理解操作系统
  • 操作系统的主要功能
  • 什么是进程
  • 如果只有一个处理器核,系统是如何运行多个进程的?
  • 进程状态转换
  • Java:

  • Java从编译到执行,发生了什么?
  • 为什么会有JVM?
  • Java中的几种对象引用,各自的特点
  • Android:

  • Android框架结构
  • 系统使用分层设计的优点?
  • View绘制过程
  • 是否在项目中使用过多线程,具体情景如何
  • Handler机制
  • Canvas原理
  • 反问

    腾讯QQ

  • 介绍glide的整体运作流程(大概的系统框架)
  • 平时写的demo,项目有考虑过屏幕适配吗?
  • glide被存放到服务器上,当服务器上的图片发生改变的时候,手机会更新新的图片吗?
  • glide去load网络资源的时候发了请求,它是发了什么请求?
  • okhttp有使用吗?知道retrofit和okhttp的区别吗?
  • okhttp知道实现原理吗?有看过源码吗?
  • 有使用过kotlin吧?kotlin从你的角度来说跟java有哪些比较大的区别
  • 使用过 .let .also 这些高阶函数吗?简单说一些 .also .apply的区别?
  • 说一个kotlin非空的问题,你之前有打包过jar包,如果项目中用的是kotlin写的,对外提供写好的方法接口,你的函数声明里的参数是非空的,这种情况下你觉得是安全的吗?
  • 可以大概说一下类加载机制吗?
  • 知道双亲委托机制吗?
  • 比如在String.kt里加了一个扩展方法,String本身是没有这个方法,那调用的时候是怎么一个流程?
  • JAVA的集合都有使用吧?说下ArrayList和数组的区别?操作ArrayList有哪些需要注意的地方?
  • 说一下ArrayList线程不安全怎么解决的?
  • 说一下HashMap的实现原理for循环和foreach有什么区别?
  • 有过大图加载经验吗?Bitmap加载数据很大,比如10mb怎么处理?
  • 事件分发机制,有没有在demo或者项目中遇到需要处理Touch事件的情况?
  • RecyclerView的缓存机制知道吗?有没有遇到过闪图情况?
  • 多线程问题 - 死锁 的必要条件和解除死锁的方法?
  • 从浏览器输入一个网址到页面渲染的过程
  • 服务端一般用80端口接受请求,如果同时有多个连接,服务端是怎么区分这些不同连接的?
  • 三次握手,如果服务端返回的ACK报文丢失了服务端和客户端会发生什么?
  • 平常有使用过数据库吗?知道主键是个什么东西吗?有些操作需要更新到数据库,但是中间有很多步骤,怎么保证这些步骤一次性全部生效?
  • 你C++怎么样?知道什么是虚函数吗?指针呢?指针的指针呢?智能指针呢?
  • 算法题:

  • 删除升序链表中所有重复的元素
  • 单例模式
  • 反问

    同洲电子

    四轮技术面

  • Activity的启动流程
  • 静态类的静态方法能不能被子类重写(不能,走的invoke-static指令,只有走invoke-virtual指令的才可能实现多态)
  • Linux的启动流程
  • 对Native层有没有兴趣
  • 对做智能家居有没有兴趣
  • 招一个应届生进来做app也是做,招你也是做,为什么要招你
  • 顺丰科技

    一轮技术面 总共三轮面试

  • handler机制
  • looper的唤醒是在Java还是Native层,怎么做到的
  • HashMap,ConcurrentHashMap,HashTable有什么异同
  • Binder通信机制
  • 跨平台开发熟不熟悉
  • 如何提高海外用户的访问速度,假设服务器在深圳。
  • 如何学习一个新东西,有哪些执行步骤
  • 百度

  • 红包随机算法 是怎么做到的
  • 写一个二叉树的深度度优先遍历,递归 非递归
  • Android中LocalServerSocket是干什么用的
  • binder的Native层代码看过吗
  • Linux有哪些RPC机制
  • 为什么android使用了Binder机制没采用共享内存
  • 如果让你设计一套进程间通信的机制,你会怎么设计
  • Linux的模块动态加载机制是怎么实现的
  • 一个物理屏划分为三个逻辑屏,是靠谁来分发事件的。
  • ConcurrentHashMap是不是绝对的线程安全。(final,绝对线程安全,相对线程安全,线程不安全)
  • 线程池是如何管理线程状态的
  • 由于文章篇幅有限,不能将面试过的所有面试题展示出来,但是我已经将求职过程中碰到的面试题整理成PDF文档了,详细关注公众号:Android老皮

    img

    第一章 Java方面

    • Java基础部分
    • Java集合
    • Java多线程
    • Java虚拟机
      在这里插入图片描述

    第二章 Android方面

    • Android四大组件相关
    • Android异步任务和消息机制
    • Android UI绘制相关
    • Android性能调优相关
    • Android中的IPC
    • Android系统SDK相关
    • 第三方框架分析
    • 综合技术
    • 数据结构方面
    • 设计模式
    • 计算机网络方面
    • Kotlin方面在这里插入图片描述

    第三章 音视频开发高频面试题

    • 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
    • 怎么做到直播秒开优化?
    • 直方图在图像处理里面最重要的作用是什么?
    • 数字图像滤波有哪些方法?
    • 图像可以提取的特征有哪些?
    • 衡量图像重建好坏的标准有哪些?怎样计算?
    • ......在这里插入图片描述

    第四章 Flutter高频面试题

    • Dart部分
    • Flutter部分在这里插入图片描述

    第五章 算法高频面试题

    • 如何高效寻找素数
    • 如何运用二分查找算法
    • 如何高效解决雨水问题
    • 如何去除有序数组的重复元素
    • 如何高效进行模幂运算
    • 如何寻找最长回文子串
    • ....在这里插入图片描述

    第六章 Andrio Framework方面

    • 系统启动流程面试题解析
    • Binder面试题解析
    • Handler面试题解析
    • AMS面试题解析
      在这里插入图片描述

    第七章 企业常见174道面试题

    • SD卡
    • Android的数据存储方式
    • Broadcast Receiver
    • sp频繁操作会有什么后果?sp能存多少数据?
    • dvm与jvm的区别
    • ART
    • Activity的生命周期
    • Application能不能启动Activity
    • ....
      在这里插入图片描述

    详细关注公众号:Android老皮
    还能解锁  《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版

    内容如下:

    1.Android车载应用开发系统学习指南(附项目实战)
    2.Android Framework学习指南,助力成为系统级开发高手
    3.2023最新Android中高级面试题汇总+解析,告别零offer
    4.企业级Android音视频开发学习路线+项目实战(附源码)
    5.Android Jetpack从入门到精通,构建高质量UI界面
    6.Flutter技术解析与实战,跨平台首要之选
    7.Kotlin从入门到实战,全方面提升架构基础
    8.高级Android插件化与组件化(含实战教程和源码)
    9.Android 性能优化实战+360°全方面性能调优
    10.Android零基础入门到精通,高手进阶之路

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论