android 游戏开发入门,精心整理
面试经验
自己大大小小投了也有 20 多家公司,不过经历简历筛选以及笔试淘汰,最终就经历了 7 家公司的面试。下面我就把自己面试中问到的问题贴出来供大家参考,一些具体项目相关的就不贴了。
阿里巴巴
阿里是 3 月初开始投的,是自己第一次面试大型的互联网公司,当时自己的准备也不够充分,表现不是很好,经历了三次技术面,最后挂了。
一面
自我介绍
hashmap 和 hashtable
jdbc
三次握手
http 状态码
HTTPS 加密:对称,非对称,CA 证书
handler
线程池的使用
sychonized,volatile
binder
activity 绘制流程
事件响应流程
activity 周期,启动模式
二面
自我介绍
对自己项目的介绍,架构图呈现
对 MVP 和 MVVM 的理解。
四大启动模式,以及场景对应
Handler 的机制介绍,为什么不能在子线程初始化问题
设计模式中的单例介绍,使用场景(Okhttp 的 Seesion 存储等等),在线编写
快排算法
OkHttp 的源码分析,及整体架构的流程图绘制
四大引用的问题和 MVP 框架相结合进行回答
View 绘制流程问题,如何不使用 xml,来实现中间位置的定位
事件分发机制流程讲解,以及如何实现单击事件和长按事件的判定
关于为什么选用 mqtt 协议的问题,优势,原理
三面
自我介绍
abstract 和 interface 区别
int 和 Integer 区别
四种引用
Java 里面 int、char、long 的字节数
线程的创建方式
RxJava 的优缺点
EventBus
从网络上加载一个 10M 的图片,要考虑哪些
http 与 https
http 1.0 和 http 2.0 之间的区别
设计模式准则
Handler 机制
算法:判断一个链表是否回文算法,给定一个数组,将数组里面的每一位向后移动 k 位
携程
携程当时投的时候就没抱希望,招聘信息上明确指定只招固定的那几所 985 高校,就随便投了,没想到笔试都没做就直接打电话面试了,不过问的问题确实很深入,结果显然,一面就挂了。
一面
集合
concurrenthashmap
volatile
synchronized 与 Lock
Java 线程池
wait/notify
NIO
垃圾收集器
Activity 生命周期
AlertDialog,popupWindow,Activity 区别
斗鱼
斗鱼是一家直播公司,给出的实习待遇是相当好,经室友推荐就投了简历。最后流程走完,得知挂在了二面上,大概原因就是没有拿得出手的项目,实际项目经验不足。
一面
线程同步(五个线程如何顺序执行)
GC
内部类特点
四大引用范式
新建线程的方式(三个)
arraylist 和 linkedlist
线程池(使用,种类,参数)
hashmap(底层实现,冲突解决方式,扩容方式,线程安全?LinkedHashmap)
自定义 VIew(View 的绘制,自定义 View 的方法)
性能优化(布局和代码)
sp、dp 和 px 的区别(适配问题)
handler(基本原理,ThreadLocal 原理和使用)
四大组件(问了生命周期和特点和基本使用)* 计网
TCP 和 UDP
HTTP 建立过程
二面
问的都是一些项目问题,比较宽泛,没问具体技术点
字节跳动
字节跳动是在三月底投的,当时找了一个月,都没拿到拿得出手的 offer,有点心烦意乱,就又海投了一波。3.24 接了字节跳动的面试,3.29 进行的视频面试。一共进行了 3 轮视频面试,字节的面试官很好,看得出来字节的技术是很强的,也很注重算法。最终拿到 offer。
一面
数据结构中堆的概念,堆排序
死锁的概念,怎么避免死锁
ReentrantLock
synchronized
volatile
HashMap
singleTask 启动模式
用到的一些开源框架,介绍一个看过源码的,内部实现过程。
消息机制实现
二面
synchronized 与 ReentrantLock
ReentrantLock 的内部实现
用到的一些开源框架,介绍一个看过源码的,内部实现过程。
Java 中异常
App 启动崩溃异常捕捉
事件传递机制的介绍
ListView 的优化
今日头条推荐新闻去重,推荐的时候去掉用户已经看过的新闻。
二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径。手写算法
模式 MVP,MVC 介绍
断点续传的实现
三面
集合的接口和具体实现类,介绍
TreeMap 具体实现
synchronized 与 ReentrantLock
手写生产者/消费者模式
逻辑地址与物理地址,为什么使用逻辑地址
volatile
一个无序,不重复数组,输出 N 个元素,使得 N 个元素的和相加为 M,给出时间复杂度、空间复杂度。手写算法
Android 进程分类
前台切换到后台,然后再回到前台,Activity 生命周期回调方法。弹出 Dialog,生命值周期回调方法。
Activity 的启动模式
腾讯
腾讯大家都知道互联网巨头,我是通过实习僧上简历投递获得的这次面试机会,一共进行了两轮电话面试,挂在了二面。
一面
自我介绍
APP 的启动流程
APP 的安装流程
Rxjava 的源码
事件分发机制和多点触控
https 和非对称加密
Retrofit 的动态代理
几种 IPC 方式的优劣,以及 Binder 的原理
本地持久化储存的方法
parcelable 和 serializable
二面
自我介绍
笔试题 1:删除无序链表中的重复结点(能否优化)
笔试题 2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。
讲一下 Java 的内存。
创建一个字符串对象,这个对象分配在哪里?
String str = “123” + “456”;会创建几个对象。
问了操作系统的问题,没学过,所以也忘了问了什么。
数据存储有学过吗?数据库和文件保存有什么区别?
Activity 有哪些启动模式?
有什么要问的?
最后
这里我希望可以帮助到大家提升进阶。
内容包含:Android 学习 PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android 开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。
喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~
**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](
)
收录**
最后自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。
深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
评论