2019校招Android面试总结[通俗易懂]

Android (80) 2023-05-07 14:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说2019校招Android面试总结[通俗易懂],希望能够帮助你!!!。

作者:heng222
来源:牛客网

自我介绍

项目

为什么选择OKHTTP框架

加载图片框架?(学一下Glide)

JSON解析框架?(学一下Gson,FastJson)

技术选型?

页面个数?

OSS上传凭证怎么设计缓存?怎么加密?(加密算法??)

还有哪些项目可以说的?

Android

Activity生命周期?启动透明Activity生命周期?按Home键生命周期?

后台杀死APP后怎么恢复数据?

一个APP可以多进程嘛?

ListView和RecyclerView区别?

RecyclerView卡顿怎么排查?

RecyclerView怎么实现多Type?

RecyclerView的ItemView层级过深怎么优化?

Android多进程?

怎么设计Android线程间通信?

Handler机制?子线程可以用Handler吗?

ANR?

Java

private protected public 关键字的用法区别!!!

接口,抽象类区别?抽象类要不要实现接口的方法???

Map的线程安全?读多写少选哪个集合?(CopyOnWrite,不懂原理没敢说)

网络

HTTP/HTTPS区别

TCP了解么?握手与挥手过程?

长连接?

push怎么实现?

腾讯

提前批一面 35min

项目介绍

实现的功能,基于OKHTTP实现网络请求

HTTP(s)

介绍下HTTP协议

HTTPS公钥暴露怎么办

HTTP分段上传文件怎么保证正确

HTTP缓存

Java

进程 线程区别

子线程间通讯

解决死锁的办法,怎么判断发生死锁

算法题

奇数偶数数组,重新排序保证顺序不变,奇数在前偶数在后

2数/3数之和

提前批二面 30min (挂)

自己介绍

项目介绍

项目梳理

图片压缩算法? 聊聊关于Android图片压缩那点事儿

Bitmap JPG区别 图像处理:JPG、PNG及BMP的区别?

断点重传?怎么动态确定范围? Android 实现断点上传文件 RandomAccessFile

断点下载?CRC原理 文件校验MD5、SHA1、CRC32、sha256、cksum

设计模式

MVC优点缺点

MVP中的MVC的C实现在哪

单例模式的饿汉与懒汉的选择,使用场景Java单例模式的不同写法(懒汉式、饿汉式、双检锁、静态内部类、枚举)

HTTPS加密方式

腾讯正式批测开一面 25min

Crash

ANR怎么解决

设计世界杯32强对战数据结构

2个球 100楼找那一层摔下来会坏\

测开具体工作

腾讯正式批测开二面 1h

项目

聊细节

Android

图片,语音大内存数据的性能排查,定位?

Handler内存泄漏问题

ART Dalvik区别?

GC机制?

CountDownLatch原理?

算法题

不使用for查找数组最大值?

闲聊

自我优势

百度

百度一面 1h

自我介绍

项目介绍

编码规范有用吗?

Android

Android四大组件安全性

Activity启动模式

IntentFilter匹配规则,action和category区别?

Handler 阻塞为什么不卡死?

点击事件分发机制,onTouchEvent返回false? dispatchTouchEvent返回false?

Looper

对象池,手写对象池实现

ContentProvider原理

sp支持跨进程么?怎么解决跨进程,怎么实现进程同步

帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿(多线程读)

Bitmap内存复用限制条件

线程时间片分配原理

百度二面 45min

项目

梳理项目

难点

技术框架

算法题

手写二分法

电梯状态机设计

优缺点

优点

缺点

专业

百度三面 45min

技术

最长公共子串

类加载机制

okhttp原理

热修复原理

其余闲聊

优点缺点

大学遗憾

组织哪些活动

长期坚持的事情

专业去向

网易

网易技术一面 1h

自我介绍

项目介绍

华为解bug映像最深的

Android

TouchEvent传递过程? onTouchEvent返回flase怎么办

怎么设计缓存

Android数据持久化

数据库怎么批处理(原理)

SP支不支持多线程?SP怎么实现多线程

View绘制过程

Handler消息机制

Java

B线程怎么实现等待A线程完成工作

线程怎么结束工作 Java结束线程的三种方法

Java哪些方法支持中断

设计一个有限资源的请求

怎么设计对象池(对象的存与放回)

线程池的线程什么时候创建

Java中的锁

可重入锁性能

笔试题

两个数组交换一个值,让和相等,找到这两个值

网易技术二面 1h

自我介绍

华为实习

参与的项目

解的bug

参与的编程规范说一下

Lint工具?

设计模式

单例模式

volatile关键字原子性

Android

进程间通信方式(与linux进程间通信区别)

Socket怎么验证安全性

广播(全局 本地区别)

怎么实现文件的多进程通讯(A进程改了文件怎么通知B进程读取)

二级缓存怎么设计(网络 数据库 view间关系)

View

Activivty生命周期

onSaveInstanceState onRestoreInstanceState区别,调用时机

广播注册应该在Activity哪个生命周期里

怎么统计onCreate的次数

Fragment与Activity区别

Fragment生命周期管理

Fragment与ViewPager怎么做到重复加载

View绘制过程 MeasureSpec的三种模式

Framelayout LinearLayout ReativeLayout怎么做到View在右下

margin padding区别

gone invisible的区别

requestLayout、invalidate与postInvalidate区别

Android动画 怎么取消循环动画 repeat模式

drawable与view区别 有哪些drawable

网易技术三面 50min

自我介绍

项目介绍(不用说太细)

Android

图片传输过程中URL加上默认大小如果是wrap_content怎么办

图片相关缓寸,编码,内存复用

svg (其他图片格式)

drawable mutate了解不

okhttp 桥接拦截器和缓存拦截器

设计自定义DNS解析器

打点系统设计:写文件过程中会有buffer,此时进程被杀怎么办,怎样设计日志系统 打点日志被用户篡改怎么办,保证日志安全性

磁盘内存映射原理

有没有看过开源打点框架

平时开发有没有遇到过资源复用

最近了解啥Android新动向不

自己学习计划

美团(现场一天面完)

自我介绍

项目

实习项目

项目最难点

技术选择

OSS STS凭证设计

Lint工具是编译期的嘛?原理?

场景题

美团首页设计?

RecyclerView多Item的难点?

设计模式

MVP MVVM使用场景

HR

有什么offer现在?

选择offer依据?

上海花费高?

怎么解决沟通问题?

小米

小米技术一面 1h20min

面试官介绍

面试官自我介绍

了解专业情况

Java

数组 链表区别

TCP三次握手过程

进程/线程区别

进程/线程的通讯方式

ThreadLocal原理

弱/软引用区别

算法

快排原理,最好&最坏时间复杂度

怎么判断单向链表是否有环

写一个单例

求Sqrt(n) 二分法

其他

最自豪的一件事

怎么和他人合作

怎么了解手机行业

小米技术二面 1h

面试官介绍

面试官自我介绍

了解Android学习情况

Android

MessageQueue.next到底处于什么状态(睡眠?阻塞?) 应该是阻塞状态,底层

epoll到底怎么实现的(还是没能说清楚?机制?native层呢还是系统层) epoll(Linux系统)监听文件描述符

应用程序的main方法在哪?怎么实现不退出?

广播的机制?

应用程序的退出?进程优先级

Java

线程的状态

自旋和阻塞区别

int型长度?与机器有关么?

32位/64位系统指的是什么?

设计模式

用过哪些设计模式

算法

回文序列

微博

微博一面 45min

Java

抽象 接口区别

有哪几种内部类

哪几种集合,List Map区别

线程同步方式

重载 重写区别

怎么实现多态

运行时异常有哪些?(只答了空指针,数组越界,IO,还有ClassNotFound)

内存泄漏举例?怎么定义内存泄漏?

GC机制?

Android

Activity生命周期?onRestart什么时候执行?别的生命周期?

四大组件?

Service两种启动方式?区别?生命周期流程?能不能在Application中启动Service(可以,有context了)

局部广播

ListView RecyclerView区别?ListView定量更新(根据位置取出来直接更新)

图片大怎么加载?图片加载框架设计?

Handler机制?

AsyncTask?

线程池参数?

ANR机制?

ANR,Crash怎么上传到服务器? CrashHandler UncaughtExceptionHandler???

网络加载框架,怎么设计网络请求接口

计算机网络

HTTP/HTTPS区别?

微博二面 20min

自我介绍

项目介绍

计算机网络

HTTP/HTTPs

状态码,100是啥意思

专业

课程

二值化算法

其他

大组招人

能不能来实习

建议

主要针对非科班同学:最好系统的看下操作系统和计算机组成原理,推荐清华大学陈渝的操作系统公开课,因为看完操作系统后才能系统的认识计算机的原理,能更好的从底层去认识上层

多看源码,包括Java层的代码在JVM中的实现源码(如synchronized的实现源码),Android Framework的源码(更好认识Android层的实现),Android开源库源码(OKHttp,Retrofit,RxJava,EventBus,Glide,Gson...,更好的学习优秀开源库源码,做到用的熟,懂原理)

多问自己为什么,比如两个技术点优缺点分别在哪,各自的使用场景(如单例模式下饿汉与懒汉的优缺点,使用场景),这样才能更契合实际应用开发,针对不同场景使用不同技术点

及时复盘总结面试中遇到的问题,分为两方面,一是知道但不能深入的,这种需要继续多看多总结,另一种是没接触过的,这种可以先了解下,万一面试又遇到了,可以回答下了解到的,之后再去深入总结(毕竟时间有限,不可能面面俱到,只能不断学习总结)

-------------------------

牛客网是全国最大的IT题库,刷真题,练算法,看面经,得内推,全面提升你的技术水平、推荐最好的工作给你!牛客网官网链接:https://www.nowcoder.com/discuss?type=2&order=0?from=toutiao

*本文由原作者首发于牛客,非经原作者授权,不得转载。

*与面经原作者交流,请点击下方了解更多。

发表回复