2020届Android实习面经
已经实习快一个月了,突然看见电脑里之前写的实习面经(虽然这些都凉了),就拿来分享一下。
当时刚保完研呆在学校太无聊了,花了一周看了遍剑指offer,就去各种面试了,各种知识点都是面试完了才去了解到,期间也多亏牛油们的分享的面经。
小米安全中心 2019-10-23
一面 30分钟
介绍自己的两个项目
平常使用git吗
Android的四大组件
为什么service看不见界面
广播创建的方法
解释一下c++中的面向对象
c++中的构造、析构函数的作用、析构函数为什么是虚函数?
常见数据结构有哪些
如何删除链表节点
删除倒数k个元素
平时用linux吗,有哪些常见命令
最后让我问问题,我问了一下部门情况,面试官说了一下安全中心,包括很多底层的工作,说进来可以学习很多底层知识。还说我基础很好,进来应该是他来带我,当时开心的不行以为稳了,面试还这么简单。
第二天问他情况说希望找一个可以转正的来分担他工作。傻了。凉🌊
西瓜视频 2019-10-26
一面 60分钟
很惨烈,笔试题是卖股票。
微派 2019-10-26
笔试
三次握手四次挥手
c编译过程
c++指针引用
二叉树深度
操作系统页
毒药和老鼠
划线分割面
五个单调递增数组找重复的数
自己看的书
还有一题忘了
最后笔试通过,面试不想去了
小米社区 2019-10-26
一面 35分钟
自我介绍
介绍自己项目里的难点
四大组件项目里怎么用的、生命周期
四种启动方式
fragment生命周期、作用
intent的作用
自定义view,里面的方法
线程、线程池
进程和线程
抽象类和接口
泛型
很长的字符串里有字母和数字,怎么快速去除数字:stringbuilter,正则,这两个哪个快
聊一下实习情况
最后告诉我通过了,等二面
二面 90分钟
是个女面试官,这90分钟把我问傻了,把网络、Java、Android详详细细的问了个遍,最后简单问了下数据结构。当时的确网络和Android复习的不是很到位,很多没答上来,简单的题也有错误,下来题目很记不清了🤢;最后问她结果,她说优点是算法基础不错,有点前端经验,但是Android基础不行,让我回去再看看书。
最难受的一次面试。
腾讯CDG 2019-11-01
一面 30分钟
Android内存泄露
Android自定义view
百度移动生态质量部 2019-11-06
一面 20分钟
投的是测试开发,问了能不能来北京和接不接受测试岗,面试官的通话质量巨差,很多听不清。
平时使不使用adb,知道哪些命令,pm知道吗
一开始听成app,后来有说成 project manager,尴尬🤢
Android中多进程的使用方法,Android进程的通信方式,Linux中进程的通信方式,binder机制是用管道实现的吗?
知道自动化测试、智能调度...吗?
小米健康 2019-11-09
一面 20mins
问我什么时候可以面试,我说现在可以吗?他笑了😵然后让我自我介绍,又问了我在校的成绩,说是保外校肯定很厉害,晕了🙃。
介绍一下线程池的几个参数。
知道哪些Java中的容器,HashMap和HashTable的区别,是否线程安全。
知道哪些排序算法,冒泡和归并的时间复杂度。
Activity的启动周期,Activity之间切换和按home键时的生命周期变化。
介绍一下自己的项目。
最后让我问问题,我问了他是不是不是做Android,他说他是Java算法的,还说我比他大学的时候里好多了🙃然后就通过了。
二面 60mins
面试官很友善,先介绍了他自己的部分和负责的产品,然后让我自我介绍。
平时怎么学习Android的?
我说是看书和Google的官方文档,他就问我有没有关注最新版本Android的新特性。
抽象类和接口的区别,说自己的理解。
数组和链表的区别。
了解什么设计模式,手写一个自己常用的单例模式。
HashMap、HashTable和ConCurrentHashMap的区别。
HashMap的原理,ConCurrentHashMap中的锁是怎样的。
ArrayList 与 LinkedList 区别,是否线程安全。
int 和 Integer 用==来比较的不同情况。。
sychronized 的使用方法,修饰代码块时多个进程执行的情况(这个问题好像是这样,当时没有听懂他的意思)。
Android不同启动模式并举例使用场景。
Android中如何使用多线程,怎么关闭线程。
如何完成线程A完成后同时线程B开始,线程B完成之后线程C开始。
如何完成线程A和线程B都完成后,再通知线程C开始。
假如需要关闭Activity,保证下载线程继续执行。
Service的开启方式,两种开启方法的区别。
如果Service使用startService()启动,如何再进行Activity和Service之间的通讯。
说一下IntentService的原理。
广播的两种类型,为什么本地广播只能在本进程中接收到。
自定义view的绘制过程,每个过程的具体作用。
自定义view中onMeasure()和onLayout()在viewgroup和子view的调用顺序。
先开始不知道,面试官提示我onMeasure()的调用顺序并引导出onLayout()
自定义view中onMeasure中的MeasureSpec有哪些。
知道动态权限吗?
问我平常使用模式开发,为什么。
MVC模式,简单
介绍自己的插座和体感游戏两个项目。
算法:判断链表中是否有环。
最后问了一下我有没有其他offer,大概就知道这面通过了。
三面45mins
询问个人情况和实习时间。
分别解释Java 面向对象的三个特性——封装、继承、多态
重写和重载的区别
访问控制符的种类和异同
final的使用方法及不同修饰情况下的区别
static的使用方法
finally的使用方法,try里return了finaly的代码块还会不会继续执行
死锁的产生条件和解决方法
线程池的原理和种类
多线程中sleep()和wait()的区别
介绍自己的插座和体感游戏两个项目
算法:输入一个十进制数a和2~32的整数n,将a转化为n进制数,以字符串输出。
最开始忘了使用ASCII码来转换字符,提醒后修改了一下。
最后都没让我问问题就说面试结束了,然后下线了。当天晚上在微信上问结果,说是会把面试记录给老大看,1~2周内可能联系终面😨凉凉。
滴滴
一面50mins
Java面向对象的特点,着重讲多态,以及重载和重写
Java注解
Java反射
Activity生命周期,弹出Dialog会不会有变化
启动方式,singleTask 可以在在多个栈中吗,singleInstance 的使用场景
Service生命周期
Broatcast的种类
算法:旋转数组的查找
二面 40mins
Fragment使用场景,Fragment和Activity之间的数据传输
handle原理,handle可以在子线程创建吗
可以在子线程直接new一个Handler,不过需要在子线程里先调用Looper.prepare(),new一个Handler后,还需要调用Looper.loop()方法。
Android生命周期,pause()
和stop()
的区别
Android网络:http,socket
handleThread
threadLocal 原理
hashMap 原理,确定对象的索引位置
一般Object哈希值怎么确定
内存回收机制、GC的四种算法、四种引用、GC Roots包含哪些对象
虚拟机栈中局部变量表中引用的对象、本地方法栈中 JNI 中引用的对象、方法区中类静态属性引用的对象、方法区中的常量引用的对象
json、xml传递信息
git stash、stash pop、pull、rebase
地平线
一面 40mins
介绍自己的项目
Android网络操作,HTTP,Socket自己封装
新建线程的方法,自己实际中怎么用
handle用法
线程池
自定义View
Android数据持久化
Android中的JNI
人工智能的了解
git
自己解决Bug的感受
#小米##面经##实习##安卓工程师#