• 面试回忆录「上」(腾讯/阿里/滴滴/美团...)


    点击上方的终端研发部,右上角选择“设为星标”
    每日早9点半,技术文章准时送上
    公众号后台回复“学习”,获取作者独家秘制精品资料

    image
    image

    往期文章

    记五月的一个Android面试经

    今日头条屏幕适配方案落地研究

    APK瘦身-是时候给App进行减负了

    即学即用Android Jetpack - Navigation

    手机商对“鸿蒙”进行了密集测试:比安卓系统快?

    image

    原文地址:https://www.jianshu.com/p/4e839adcd559

    作者:soulrelay

    前言

    也许到了金九银十,很多人在群里问我要面试题,没办法,也许太难伺候了,好吧,就给大家总结一波。目前部分对基本工和源码比较看重,主流的Kotlin,Flutter也会有所要求。其他算法,源码,算法,自定义View万变不留其中,要想在这条android走下去,要学习的是很多的本文非最新面试题,参考更都可以去到我的公号去搜索。

    近3年BAT面试真题整理合集

    2019最新Android面试题

    还在为面试发愁吗—这里将教会你如何去面试

    回顾我两个月面试阿里,携程,小红书,美团,网易等等(Java岗)

    写这篇面试回忆录的目的:梳理一下面试过程的知识点,为了以后可以更直观地回忆
    希望给正在或者准备面试的朋友提供一些帮助其它:

    没有严格按照一面、二面、三面来区分

    目录

    腾讯OMG

    • synchronize用法
    • volatile用法
    • 动态权限适配方案,权限组的概念
    • 网络请求缓存处理,okhttp如何处理网络缓存的
    • 图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预防OOM
    • 进程保活
    • listview图片加载错乱的原理和解决方案
    • https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解

    阿里巴巴

    • LRUCache原理
    • 图片加载原理
    • 模块化实现(好处,原因)
    • JVM
    • 视频加密传输
    • 统计启动时长,标准
    • 如何保持应用的稳定性
    • ThreadLocal 原理
    • 谈谈classloader
    • 动态布局
    • 热修复,插件化
    • HashMap源码,SpareArray原理
    • 性能优化,怎么保证应用启动不卡顿
    • 怎么去除重复代码
    • SP是进程同步的吗?有什么方法做到同步
    • 介绍下SurfView
    • HashMap实现原理,ConcurrentHashMap 的实现原理
    • BroadcastReceiver,LocalBroadcastReceiver 区别
    • Bundle 机制
    • Handler 机制
    • android 事件传递机制
    • 线程间 操作 List
    • App启动流程,从点击桌面开始
    • 动态加载
    • 类加载器
    • OSGI
    • Https请求慢的解决办法,DNS,携带数据,直接访问IP
    • GC回收策略
    • 画出 Android 的大体架构图
    • 描述清点击 Android Studio 的 build 按钮后发生了什么
    • 大体说清一个应用程序安装到手机上时发生了什么;
    • 对 Dalvik、ART 虚拟机有基本的了解;
    • Android 上的 Inter-Process-Communication 跨进程通信时如何工作的;
    • App 是如何沙箱化,为什么要这么做;
    • 权限管理系统(底层的权限是如何进行 grant 的);
    • 进程和 Application 的生命周期;
    • 系统启动流程 Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程
    • recycleview listview 的区别,性能

    滴滴

    • MVP
    • 广播(动态注册和静态注册区别,有序广播和标准广播)
    • service生命周期
    • handler实现机制(很多细节需要关注:如线程如何建立和退出消息循环等等)
    • 多线程(关于AsyncTask缺陷引发的思考)
    • 数据库数据迁移问题
    • 设计模式相关(例如Android中哪里使用了观察者模式,单例模式相关)
    • 微信的聊天数据在本地都是加密处理的(防止root了被破解),设计一个类似的本地数据存储系统
    • x个苹果,一天只能吃一个、两个、或者三个,问多少天可以吃完
    • Android相关你最擅长哪一块
    • TCP与UDP区别与应用(三次握手和四次挥手)涉及到部分细节(如client如何确定自己发送的消息被server收到) HTTP相关 提到过Websocket 问了WebSocket相关以及与socket的区别
    • 是否熟悉Android jni开发,jni如何调用java层代码
    • 进程间通信的方式
    • java注解
    • 计算一个view的嵌套层级
    • 项目组件化的理解
    • 基于自身工作经验和计算机相关知识,给出 移动端地图局部加载 瓦片大小的像素大小估值
    • 多线程断点续传原理
    • Android系统为什么会设计ContentProvider,进程共享和线程安全问题
    • jvm相关
    • Android相关优化(如内存优化、网络优化、布局优化、电量优化、业务优化)
    • EventBus实现原理

    美团

    • 线程挂起,休眠,释放资源相关,唤醒,线程同步,数据传递,问了很多线程的问题,问了20分钟大概
    • static synchronized 方法的多线程访问和作用,同一个类里面两个synchronized方法,两个线程同时访问的问题
    • 内部类和静态内部类和匿名内部类,以及项目中的应用
    • 泛型是什么以及在项目中的应用
    • handler发消息给子线程,looper怎么启动
    • down、move、up事件的传递
    • activity栈
    • 封装view的时候怎么知道view的大小
    • intent-filter
    • arraylist和linkedlist的区别,以及应用场景
    • 怎么启动service,service和activity怎么进行数据交互
    • 下拉状态栏是不是影响activity的生命周期,如果在onStop的时候做了网络请求,onResume的时候怎么恢复
    • view渲染

    总结

    共同点:对基础性、原理性的东西比较重视
    具体问题的解决能力、项目的架构能力不同点:公司不同、产品业务线不同,所以涉及的技术重点和方向不同

    思考:

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

    阅读更多

    程序员接私活经验总结

    今日头条屏幕适配方案落地研究

    IDEA 的优雅调试,让 bug 无处藏身!

    面试官:你分析过线程池源码吗?

    相信自己,没有做不到的,只有想不到的

    在这里获得的不仅仅是技术!

    image
  • 相关阅读:
    Redis随记--pubsub学习
    Redis随记--HyperLogLog的代码学习02
    Redis随记--HyperLogLog的代码学习01
    Redis随记--Lazy Free特性
    Redis随记--StreamID生成
    linux 学习笔记 第一天 安装 分区 指定ip 远程链接 2021-03-04
    Oracle ebs 常用标准表
    EBS开发——经常需要修改的触发器
    查询oracle 数据库 SQL语句执行情况
    Oracle中的索引详解(整理)
  • 原文地址:https://www.cnblogs.com/codeGoogler/p/11588380.html
Copyright © 2020-2023  润新知