admin管理员组文章数量:1608811
远景能源 Android开发
一面
- RxAndroid的好处
- 举一个RxAndroid好处的使用场景
- MVP模式与MVC模式
- MVC模式与MVP模式的区别
- 项目中是如何划分M、V、P
- V与P的对应关系是怎么样的
- ListView在MVP的使用,如何分配M、V、P层
- 项目分工
- Git使用
- 分支的创建
- Service
- 如何创建一个Service?
- bindService的生命周期
- 一个已经被bind启动的Service调用startService后生命周期是怎么样的
二面
远景的二面是隔了有20多天之后在我学校面的。
1. 算法题(手写)。找出两个整数集合的交集
给出了两种解法,第一种是先排序,然后从头往后查找;另一种是使用HashMap,扫描其中一个集合,存储在Map中,再扫描另一个数组时判断在Map中存不存在即可。
2. 由于使用了HashMap,讲讲是如何解决哈希冲突的;HashMap是如何计算槽的位置的;key的hash值是如何计算的;期间说到了以String为例,问为什么要引入31这个值;String的底层数组如果长度很大,是不是会把每个char都计算到hash值中。
3. 如果两个整数集合很大,超过内存,准备怎么做
4. Java虚拟机的内存参数有没有调过
5. 假如设置虚拟机的最大内存为2G,Java虚拟机内存是如何分配的,动态分配还是静态分配;内存是否是连续的;物理内存不连续,如何实现Java虚拟机的内存连续?
6. 问了几个问题给面试官
阿里巴巴 Android开发
一面
- 数字签名
- 对Android系统了解多少
- Binder机制
- Linux中进程A能否直接访问进行B?为什么不能?
- 一个应用为什么要开多个进程?
- 一个应用中Activity启动另一个Activity和一个应用中Activity启动另一个应用中Acvtivity的区别
- 对动态规划的理解
携程Android开发工程师
内推一面
- 项目介绍
- Android进程级别
说了前台进程、可见进程、后台进程、没有四大组件的空进程,还有一种忘记了,尴尬,还有一种是服务进程(Service) - 如何让服务不被杀死?
- 算法题。输入“aaabbcda”,输出“3a2b1c1d1a”,统计字符串数目。
- 研三可不可以实习?几月份毕业?对工作地点有没有要求?
- 问了一下面试官的建议
搜狐快站Android开发工程师
一面
- 项目介绍,承担的任务
- 长连接是什么?为什么用长连接?心跳时间是如何确定的?
- 为什么使用AES加密?
- 在应用不启动的情况下,如何保证推送?
- OkHttp的缓存机制,图片三层缓存
- 图片如何压缩?如果图片要求是方形,获取图片是长方形怎么办?
- 如何缓存静态网页和动态网页?
- LruCache源码
- Java内存分配策略,新建一个对象,内存是如何发生变化的
- 垃圾回收
- 是否遇到过内存泄露和内存溢出
- 如何获取一个View的宽和高
- 子线程操作,如何更新UI
- Handler机制
- 算法题。一串整形数字,找出相同值的下标并记录。比如说数组序列为0,0,1,4,6,2,1,需要返回0(0,1),1(2,6),4(3),6(4),2(5)
YY Bigo Android开发工程师
一面
- 自我介绍
- OkHttp的请求和获取响应过程
- RxAndroid的好处
- Java基础。面向对象三大特性,final关键字,static关键字,静态内部类和非静态内部类,equals和==区别
- 进程和线程的区别。Java中线程同步的方法
- UDP和TCP的区别
- HTTP状态码
- 讲一下LRU
以LinkedHashMap为例讲解了LRU,讲解了源码
9. 冒泡排序和快速排序
10. 统计一个整形数的二进制表示形式中1的个数
总结:问的很基础,正好帮我回顾了一下,有些知识点感觉都快忘了
二面
第二天下午二点半二面。
1. 介绍项目
2. TCP和UDP区别,OSI五层结构,HTTP报文
3. MVP模式与MVC,观察者模式,装饰者模式
4. HashMap与Hashtable的区别,ArrayList与LinkedList的区别
5. 进程和线程的区别。Android中多进程,修改静态变量的值会怎么样
6. 死锁。如何避免死锁
7. OOM,ANR。如何检测内存泄露
8. 引用的四种类型。
强软弱虚。强引用就是最常见的,软引用和虚引用经常用在缓存中
9. 算法题。
- 如何判断字符串回文
- 如何判断链表有环
- 删除单链表中重复节点
总结:和一面一样,很重视基础。
具体消息下周会发
CVTE Android应用开发工程师
一面
- 系统架构,APP架构
- OkHttp的缓存
说了下DiskLruCache,讲了一下LruCache的源码 - 进程间通信的方式
说了Binder、Socket、共享文件 - Binder是如何使用的;服务端如何确定客户端调用的是哪个方法
以AIDL为例,讲解了客户端怎么使用的,服务端怎么使用的;讲了一下每个方法会有一个int类型的映射,然后会传入这个参数 - 了解过拷贝没,浅拷贝和深拷贝
直接说基本没了解,就没问 - 如何确定一个对象是垃圾,以及如何回收的
可达性分析确定对象是垃圾;回收答得不太好 - Android中如何使用多线程;分析线程池的调度原理
简单讲了一下ThreadPoolExecutor的源码 - 项目中用到的设计模式,画一个UML图
说了模板方法模式,简单画了一下UML图 - 算法,把一个String表示的整数转成int型
写了一半后,面试官让我说下思路;如要考虑前面为负号的情况就可以了
一面完,面试官叫找HR,然后二面去了
二面
- 自我介绍
- 项目中如何确保信息的同步的
长连接推送+HTTP主动获取 - 对于线程安全的理解
- 算法题。给了三个字符串,找出这三个字符串都出现的字符,并统计该字符出现的次数
在牛客的系统上整个都编出来了,意味面试官会中途叫停讲思路。结果最后写完了才让说思路,本来以为写的正确的;后来完了后,发现有点问题。不知道面试官看出来没 - 我有什么问题?
问了下Android主要做什么,聊了聊物联网、智能家居;面试官给我展示了他们所做的关于教育方面的项目
HR面
HR问的蛮多,之前就听师兄说了,如果能熬过CVTE的HR面,那就不会再虚任何公司的HR面了,三个工作日等结果。
三天后出了结果,HR面没过。
招行信用卡中心 软件开发工程师
一面
- 面试前,抽一道题,10分钟写出来。题目是1024个数(有正有负),将其分配到16个桶中,使每个桶中数字之和差距尽可能小。
当时比较蒙,基本没写出来 - 自我介绍,重点介绍了项目;在项目中扮演的角色
- 遇到的难点;推送是如何实现的;粘包分包是怎么回事?
- 如何在下载时显示进度条?如果下载很耗时,并且数据大小不确定,怎么做?
- 对Java多线程的理解
- 如何实现ImageLoader的
- 算法题。给定银行卡前缀(比如前4位和前5位),可以确定该卡属于一个银行。如何查找一个银行卡号属于哪个银行?时间复杂度是多少
- 问面试官问题
instal360 Android开发工程师
一面
- 自我介绍
- ImageLoader是如何实现的? 列表滑动时怎么处理的?为什么图片会乱序?图片划出界面后是怎么处理的?
- 长连接如何实现的
- MVC、MVP和MVVM模式的区别
- 面向对象的三大特性。动态的理解
- 以后的发展方向
腾讯 移动端开发工程师
一面 MIG
- 自我介绍,项目介绍
- 如何本地做文章解析的
- ImageLoader的三层缓存是如何实现的。内存缓存是怎么做的,网络缓存是怎么做的
- HTTP协议了解多少?Get和POST请求的区别?
- Handler消息机制。进程优先级会影响Handler的处理吗
- Android常用布局
- 长连接是如何实现的以及粘包分包的处理
- 学过C++没?以后要是做C++可不可以?上海岗比较少,去深圳愿不愿意?
- Android了解过多少。Native层了解过多少
二面 MIG 浏览器 视频面
因为面试官有事没来武汉,所以选择了视频面。
1. 项目介绍,以及其中的难点
2. 长连接时,APP这端如何及早发现后台那边没做队列缓存字节?
3. 进程间通信方式。管道和Socket有什么区别?共享内存和Socket分别会用在什么情况下?
4. 为什么Android会采用Binder这种机制?
5. Java中如何使用一个线程?如何保证线程同步?synchronized的一些问题;任务和线程的区别
6. Android四大组件;Activity生命周期方法;onPause和onStop的区别;锁屏时经历的生命周期方法;Service的启动方式
7. 了解过哪些设计模式?组合模式了解过吗?
8. 惊艳到自己的数据结构;HashMap从链表到红黑树的转换
9. 算法题。一个字节中有四位为1和四位为0的表示合法,源源不断的字节如何判断哪些字节合法,哪些不合法
这道题简直被自己蠢哭了,低级错误一直犯,把2的8次方说成是128,最后在面试官的提示下给出了答案。
因为想换部门的原因,状态从复试变成了初试。sng的面试官加了我QQ,因为在南京,所以说会改天电话面试。
三面 SNG QQ空间 电话面试
- 面试官提问项目
- 进程保活。面试官介绍了他们的方案,互相探讨了一下
- 如何判断两个正方形是否相交?如何判断一个正方形和圆形是否相交?
- 内部类
- 软引用和弱引用的区别
- 给定一个目录,找出该目录下面的所有图片文件。递归与非递归实现
可能由于之前已经面试过了两轮,这一轮面试一共就面了20分钟,主要还是和面试官讨论比如进程保活、判断相交、内部类这些。等待复试
四面 SNG QQ空间 电话面试
- C中字符串以什么结尾;一个字节在硬盘中占多大
- TCP协议发送3K字节的过程;TCP连接的建立;连接的释放;滑动窗口的概念
- HTTP和TCP的区别;HTTPS端口、证书下发过程、涉及到的加密算法
- 数据库,范式
- UTF-8编码是怎么做的?给你一个文件,能不能判定是何种编码?
- 在Android开发这一块,擅长什么
- ANR是什么?如何避免?
- 弱网环境如何改进APP
- 项目中的难点,如何克服的
- 项目中的改进点
- 信号量的理解;堆和栈的大小
- 平衡二叉树的定义;排序中稳定的概念
最终倒在了四面,好伤心。
去哪儿 软件开发工程师
一面
- Android消息机制
- TCP和HTTP区别
- OkHttp中如何实现拦截器链
- 在项目中分别做的工作
- ThreadLocal
- ArrayList和LinkedList区别
- 笔试的算法题如何做的。给了树的先序遍历数组和后序遍历数组,输出树的层次遍历结果。
根据先序遍历数组和后序遍历数组建树,然后再层次遍历。
二面
- 笔试的算法题。一道广度遍历的变化题
- 如何判断链表有环?如何在有环的链表中找到环的入口?
- 一串小写字母,其中某个小写字母的出现次数过了一般,如何查找到这个字母?
快排partion的改进,时间复杂度多少?哈希做,空间复杂度O(26),如何减少空间复杂度
4. Activity的生命周期方法;onStart和onResume的区别;一个透明的Activity出现,后面的Activity生命周期是怎样的;后面的Activity被系统杀死,会调用什么方法
5. 如何实现开机自启动?
6. Activity中两个进程如何通信
7. HTTP状态码;302和304区别;500开头的遇到过吗?
8. OkHTTP的ConnectTimeOut和SocketTimeOut代表什么意义?TCP三次握手是如何的?seq和ack之间有什么区别?TCP滑动窗口是干什么的?
9. 数据库,索引是用来做什么的?分组怎么做?查询多个表如何?
10. 如果应用crash了则呢处理的?
11. 为什么使用RxAndroid?RxAndroid的好处是什么?有和EventBus比较过吗?
12. HTTP协议的get和post的区别?get的URL长度限制是多少?
13. 运行时权限的变化
HR面
- 介绍项目
- 项目的分工;如何确定需求的?
- 项目有什么优化的地方
- 目前有哪些公司的offer
- 实习的话,最想学到什么东西?
HR说了一下薪资待遇,然后给了口头offer
今日头条 Android开发工程师
一面
- 自我介绍
- 项目中是如何显示文章详情的;WebView与Native交互了解过没
- HashMap;为什么1.8改成了红黑树;拉链法是如何解决hash冲突的
- Java 1.8新特性,如何理解流操作的
- 集合的迭代器遍历
- ConcurrentHashMap和Collections.synchronizedXXX方法的区别
- 线程安全的方式;什么时候使用ReentrantLock;一个类两个方法,一个synchronized修饰,一个没有,两个线程分别获取两个方法,会怎么样
- volatile特性;是否线程安全
- GC机制;那些可以作为GC Roots
- 软引用和弱引用的理解,会应用于什么场景
- Activity生命周期。Activity A启动Activity B,两个Activity生命周期是如何调用的;onNewIntent了解过没
- ListView中有View,如何处理滚动事件和Item的点击事件的;CANCEL事件了解过没;
- View的绘制流程;OverDraw是怎样的 ;几个FrameLayout无背景,会引起OverDraw吗?
- Activity的界面结构;Window和View的区别
- 看过的开源框架中设计比较精巧的地方;
- 自己的优势
二面
- 自我介绍,项目介绍
- 项目中TCP自定义协议怎样保证报文尽可能短
- TCP连接过程、释放连接过程
- HTTP首部了解多少?断点续传涉及哪几个首部?HTTP状态码知道哪些?
- 算法题。实现一个单链表的几个方法:增加、查找、删除、逆序
- 如何使用数组实现一个队列?不是循环队列的情况下,如果队列满了怎么办?如果是循环队列又该怎么办?
- Android中启动服务有几种方式?区别是什么?IntentService和普通Service有什么区别?
- Handler在什么情况下会发生内存泄露问题?如何解决?
- Looper有什么作用?在一个非UI线程中使用Looper是怎样的步骤?在Looper.loop()方法的打印语句会执行吗?
- Dialog和Toast可以在Service中弹出吗?Dialog和Toast的本质区别是怎样的?
- 如何根据URL下载一张图片?如何实现压缩?Bitmap如何计算字节数?Bitmap.ARGB_8888占几个字节?
- Java的异常体系
- 应该还问了一些问题,不过记不起来了
三面
二面和三面之间等了有两个多小时,所以三面的节奏很快,就面了25分钟,但是难度比较大。
- 浏览器输入www.toutiao之后发生的一些;DNS是怎样的过程;UDP和TCP的区别;TCP的Qos;TCP的拥塞控制;HTTPS与HTTP的区别;为什么需要证书下发过程
- 操作系统怎么管理内存
- Java怎么管理堆内存
- Java内部类为什么能访问外部类的成员
- 手机通讯录搜索,名字、首字母、电话号码、全屏前缀匹配,使用什么算法
三面完之后,HR打电话过来,说三面通过了,已经有秋招终面的绿卡了。但是offer一周内会给出答复,在面完所有人之后才能做决定。
滴滴 研发工程师
一面
- 自我介绍
- 算法题。地址。
和面试官说了下思路,问了其中的算法思路。就说了贪心,然后就开始编码了,最后过了40%,其他的应该超时了,然后说了一下查找可以使用二分查找改进下。
- 熟悉的语言是什么?看过Java的源码没?
- 线程池的源码;当达到核心线程数后,新加的任务是怎样操作的?RejectHandler是在哪个线程中处理的?可重入锁的源码实现,可重入锁是如何保证可见性和原子性的;volatile是如何保证可见性的。
- Java虚拟机运行时数据区;堆的分代;如何确定一个对象是垃圾;是不是所有对象都在堆上面;老年代上的垃圾收集器有哪些 ;对象的组成部分,对象头在32位机器上和64位机器上分别是多大
- 擅长的领域但是没有问到的。答了计算机网络
- TCP的连接和断开是怎样的?
- NIO了解吗?Netty了解吗?
因为不了解Netty,但是使用过MINA,所以就讲了下项目中是如何使用MINA的。
9. 知道NIO底层使用的什么模型?epoll模型听说过吗?知道哪些RPC技术?知道分布式系统吗?知道负载均衡吗?
这些问题基本都是答得不知道
百度 Android开发工程师
一面
等了5个小时之后才一面,真想吐槽他们的办事了。
1. 编程题。过了30%之后的改进
2. Java的内存结构;堆和栈的区别;GC;Java是否会有内存泄漏现象
3. TCP和UDP的区别;TCP如何确保无差错和有序性
4. 各种排序算法的时间复杂度;有很多数的时候,如何选择一个排序算法
5. 进程和线程的区别;进程间通信方式;操作系统如何使两个进程的物理内存不冲突的
6. 还有不少问题,忘记了。应该不是一个搞Android的
7. 为什么读Java的一些源码
8. 数组和链表的区别;分别适用于什么情况
9. 计算机网络分层机构;HTTP状态码
10. 如何判断一个链表是否有环;以及如何确定环的入口
11. 专业是干嘛的
二面
一面完很快就通知二面了,等的时间稍微短了点。
1. 自我介绍
2. 项目中的收获
3. 二分查找复杂度;实现递归方式
4. 抽象类和接口的异同
5. Android启动模式;生命周期方法,onStart和inResume区别;onPause和onStop区别。如何使屏幕旋转不销毁Activity
6. View的绘制流程;validate和postValiedate的区别
7. Android进程间通信方式
8. WebView如何与APP通信
9. HTTP状态码
10. 了解的设计模式;观察者模式的理解;手写单例模式
11. View事件传递;从哪个View开始传递;最底层的View没有处理触摸事件怎么办
12. Service的启动方式;如何使service在新的进程中启动;如何保活一个进程;
三面
- 自我介绍
- Activity的生命周期方法;一个电话打进来,会调用什么生命周期;APP会被系统杀掉吗?
- 编程题;如何找到给定一个View下面的所有子View;层次遍历写法如何实现
- APP请求服务端,服务端按照协议是String类型,然而给的是int类型,APP如何做这样的容错处理
- 平时如何学习?关注Google I/O大会吗?如何了解Android的最新技术
- 平时加班多吗?如何看待加班?如何提高效率
- 进程间通信方式;线程间通信方式
- Android特有的集合库;有序和无序的理解;1万个数据插入哪种快,查找哪种快
- 两个线程同时往数据库的一张表插入数据,会不会有问题?
版权声明:本文标题:2017春招实习-Android开发面经-bat,td等公司 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728553440a1163571.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论