携程-Android研发工程师【2023届实习生】一面
自我介绍一下
。。。
讲一讲你项目实现的功能
。。。
有没有遇到过推送不及时,怎么解决的
没遇到过。。。没上线,自己做着玩的,流量不大
语音怎么做的
第三方平台。。。
Glide讲一讲,你为什么选择Glide
讲了一些Glide相比较于其他图片加载库的优势
Glide三级缓存
又是它,简单讲了讲。。。
Glide怎么加载图片进ImageView的
源码没看熟,获取宽高?
OkHttp拦截器
讲了讲五大默认拦截器,以及它们都是负责干嘛的
get和post请求区别
讲了讲参数,安全性,幂等性
项目里边内存优化
项目中哪些地方容易产生内存泄漏,内存泄漏怎么解决,LeakCanary可以检查内存泄漏
LeakCanary
没看源码。。。
Bitmap高效缓存
inJustDecodeBounds置为true、false。
采样率压缩
ALPHA_8、RGB_565、ARGB_4444、ARGB_8888
项目里的启动优化
黑屏处理;Application优化
渲染布局优化
<include/>、<merge/>、<ViewStub/>
ViewStub懒加载
项目里边的实际应用举了一下例子
开发者选项里的GPU过渡绘制
笑谈了淘宝好红,也听面试官讲了讲
MVP和MVVM,谈谈你对它们的了解
对比一下,面向接口编程,顺带提了提MVC,各自优势劣势
设计模式项目里边有用过哪些
单例模式
单例模式有哪几种
懒汉、饿汉、静态内部类、枚举等
懒汉和饿汉
说了分别在什么时候加载
HTTPS通信
四次握手,密码套件,三个随机数,证书校验,RSA,DES
JVM内存模型
Java堆(新生代(Eden,from,to);老年代(15岁,大对象))
方法区(永久代;元空间)
虚拟机栈(栈帧(局部变量表、操作数栈、动态连接、方法返回))
本地方法栈(和虚拟机栈类似,但是是为native服务)
程序计数器(cpu上下文切换)
HashMap扩容机制
阈值0.75,之后扩容变2n
Hash算法是什么
一下子忘了该怎么答了,给面试官答的是HashMap的put流程。。。
怎么保证线程安全
讲了volatile、synchronized、ReentrantLock
垃圾回收gc讲一讲
讲了gc的三种算法:标记清除;标记复制;标记整理。每个算法是怎么做的以及各自的优缺点。
你平时怎么学Android的
开始闲聊。。。看书;看大佬博客;看b站视频
在b站学习
哈哈哈,是的,大学生学习网站
未来规划
以后要干嘛干嘛,面试官说女生最好不要去做游戏(Unity3D),可以做底层或者应用层开发,应用层开发就比较好