个人介绍
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文档了,有需要的小伙伴,可以点击下方课程链接详细了解!!!
https://edu.51cto.com/course/32703.html
第一章 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
- ....
有需要的小伙伴,可以点击下方课程链接详细了解!!!
https://edu.51cto.com/course/32703.html
标签:面试题,Java,哪些,面经,面试,线程,大厂,Android From: https://blog.51cto.com/u_16163442/7717599