- java面向对象三大特性
- java异常机制
- 算法:反转链表
二面 (40misn)
- asynctask原理
- ANR原因
- ANR排查
- 怎么解决加载大图OOM的问题
- https过程,对称加密,非对称加密
- TCP和UDP区别
- 手撕代码:单例模式DCL,面试官问我有没有更优的,
腾讯
一面 (1h)
- 自我介绍
- 笔试题1:删除无序链表中的重复结点(能否优化)
- 笔试题2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。
- 讲一下Java的内存。
- 创建一个字符串对象,这个对象分配在哪里?
- String str = “123” + “456”;会创建几个对象。
- 问了操作系统的问题,没学过,所以也忘了问了什么。
- 数据存储有学过吗?数据库和文件保存有什么区别?
- Activity有哪些启动模式?
- 有什么要问的?
二面 (1h)
- 上一轮面试做了哪2道面试题?
- 会哪些编程语言?
- 想做哪个方向?为什么?Android
- 对Android比较感兴趣,都学了些什么?我答了活动的启动模式、Handler。
- ListView源代码有看过吗?没看过。
- 想一下ListView应该是怎么实现的?链表?
- ListView滑动页面如何实现页面的复用?队列?
- 给你2个线程,如何产生死锁?为什么会产生死锁?
- 外存有一定量的数据,需要读取到内存中处理,但是内存的大小是不知道的,要求如何能够读取尽量少的次数,才能处理完全部的数据?
唯品会(一面就挂了)
一面:(1h)
- udp和tcp的区别
- 能介绍一下Android的四大组件吗?
- 二分法是怎么样的
- 线程池(词)是什么?如何打印两个线程同时完成的消息?
- 你了解android的View
- 你了解有哪些动画吗?
- ListView和RecycleView的区别?
- udp和tcp的区别?http是基于tcp还是udp
- 项目怎么实现刷新实时天气情况这个功能的
- 项目怎么实现显示本地mp3文件
- http和https的区别吗?你的项目你是用http还是https?
- 你的学习经历是怎么样的?
- 如果遇到你和同事出现了矛盾你会怎么办
- 如果经理提出的需求分析你很难实现你该怎么办?
- 你学习过哪一些源代码
- 如果debug出现问题你会如何去发现问题
- 有没有试过抓包?
- java多线程是怎么实现的?
斗鱼
一面(40misn)
- 线程同步(五个线程如何顺序执行)
- GC
- 内部类特点
- 四大引用方式
- 新建线程的方式(三个)
- arraylist和linkedlist
- 线程池(使用,种类,参数)
- hashmap
- 自定义VIew
- 性能优化(布局和代码),
- sp、dp和px的区别(适配问题)
- handler(基本原理,ThreadLocal原理和使用)
- 四大组件(问了生命周期和特点和基本使用)
- TCP和UDP
- HTTP建立过程
二面(50misn)
- View绘制
- 多进程(如何多进程,为什么要多进程,有什么优缺点)
- 架构(问了MVC,MVP,MVVM这些,还问了设计模式相关)
- 学习过程
- 项目构思过程,项目搭建过程
- Messager,ThreadLocal
- 接口和抽象类(为什么要有这两个区别,在项目中如何使用)
- Rxtrofit
- Rxjava
- 责任链模式
- 观察者模式
小米
一面(1h)
- 个人介绍
- 聊项目,展示项目,问问题
- 介绍binder,如何控制binder的访问
- i++是否线程安全,如何保证线程安全,volatile是否可以
- hashmap实现,是否线程安全,如果多线程进行操作会发生什么
- 如何使一个线程进入destroy态
- 编程 判断某个数的各位平方和是否收敛,意思就是最后变成1 收敛,最后循环到之前的一个数 不收敛
- 对未来的发展规划
- 拿到哪些offer了,如何给你发offer怎么选择
- 死锁的发生条件
- JNI
- 是否下载过android源码
二面 (30misn)
- 自我介绍
- 编程 二叉树两节点的最近公共父结点
- 学过哪些专业课,根据专业课问了些问题
- 数据库ACID是什么,原子性的体现
- 虚存是什么
- 虚电路与存储转发的区别
- TCP协议可以在虚电路上运行么
- 路由选择协议有哪些
- ps.面试官应该不是做安卓的
加面 (1h)
- 自我介绍
- 四大组件
- service使用场景
- 后台service和后台线程的区别,service如何实现跨进程通信
- 描述一下AIDL和binder工作原理
- binder如何做到数据的跨进程传递
- 内核空间与用户空间的区别
- 进程与线程的区别
- 线程的调度由谁实现
- 听说过协程么
- 死锁的发生情景
- handler的工作原理,handler对象在哪个线程存活
- 如何实现blockingqueue
- synchronized和Lock的区别
- volatile的实现原理
- 介绍http
- http如何保持状态
- cookie的工作原理,存放位置,cookie可以被修改么,如何验证cookie有效未被篡改
- http相对于https有什么问题
- 介绍https工作原理
- MVP与MVC区别
- 聊实验室项目
- 工作意愿
小福利:
在当下这个碎片化信息环境的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021大厂最新Android面试真题解析
各个模块学习视频:如数据结构与算法
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
这份体系学习笔记,适应人群:**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!点赞+评论即可获得!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!