快手
先说下笔试情况,2.8/4。
面试的话是 下午2点到4点面试连着两面,然后hr最后说结果会在几天之内反馈。
这个面经不全,因为现在有的问题已经想不起来了,尤其是没答好的问题可能更记不住了hhhhh
4.11面试,4.13拿offer
一面(一小时)
Android问题:
1.详细的讲下View的绘制过程
2.使用过哪些动画,属性动画和View动画的区别在哪里,View动画的原理(ValueAnimator和ObjectAnimator的区别)
3.Activity的生命周期,启动模式,区别在哪,讲下各自的应用场景。
4.Fragment的生命周期
5.Service的生命周期
6.进程与线程的区别
7.在项目中使用过多线程么
Java问题:
1.HashMap(因为我写过相关文章,这个问题答了蛮长的一段时间)
2.java gc算法
3.常用的线程池,以及线程池的各个属性的含义
4.四种引用类型的区别(可以结合内存泄漏去聊)
代码题
1.手写二分查找
二面(一小时)
Android问题:
1.事件分发详细的讲(三个核心函数以及整体过程),详细的讲下dispatchTouchEvent,子View如何阻止父View拦截事件,Action_Cancel什么时候会发生,一个应用场景:两个并排Button,点击button之后,又移动到另一个button,但不点击滑动到外面会经过发生哪些事件。
2.OkHttp
- Message.obtain()有什么好处,为什么不使用new Message(防止多次Gc)
4.LinearLayout和RelativeLayout的区别,优缺点,层级嵌套等等等
5.ConstrantLayout讲讲特点
6.性能优化在项目中做过哪些
7.读过哪些Android的源码
8.BroadCastReceiver的源码看过么?
9.FrameLayout了解么?
代码题:
1.场景题,实现一个ActionMangager,其中包括 registerAction(String action, IActionCallback callback), unregisterAction(IActionCallback callback); notifyChange(string action)三个方法。类似于BroadCastReceiver,一个action可能对应多个Callback,notifyChange中要回调action对应的所有Callback对象的方法。同时还问了怎么满足线程安全的问题等等,会根据代码继续问问题。
2.之字形遍历二叉树
拼多多
笔试
基于给定接口实现ImageLoader框架
一面
-
自我介绍
-
静态变量和实例变量的区别
-
重写equals()方法的注意事项;两个list是怎么判断是否相等的?
-
HashTable和HashMap的区别;是否允许键为null
-
数据同步的方法;synchronized可以在对象上加锁吗?在方法上加锁是加在哪个对象上?
-
进程间读写文件的同步方式
-
了解哪些加密算法;AES和RSA的区别
-
HTTP响应码
-
进程优先级;Android进程优先级
-
如何使一个Service处于另一个进程中;进程的服务保活
-
Touch事件分发机制
-
如何实现客户端长连接的?重试策略是怎样的?如何监控HTTP请求的?
-
提问问题
二面
-
大顶堆和栈的概念
-
最短路径算法概念
-
如何缓存HTTP
HR面
也不能算是HR面吧,简单聊了聊。
新美大
一面
-
自我介绍
-
为什么选用OkHttp?为什么用MVP模式?
-
ImageLoader的三级缓存怎么做的;OkHttp的磁盘缓存怎么做的?
-
如何删除文章的广告之类的?有遇到不符合的情况吗?
-
HashMap是线程安全的吗?HashMap线程不安全会造成什么现象?如何使HashMap变为线程安全的?
-
Java的内存模型;GC;遇到过OOM情况吗?有什么可以检测内存泄露的工具
-
文章列表用的什么什么控件?ListView如何优化?RecyclerView用过吗?和ListView的区别
-
应用中有几个Activity;ViewPager嵌套Fragment怎么用,遇到过什么坑没?
-
自定义View时自定义属性该怎么做?
-
印象最深刻的项目,或难点
二面
-
自我介绍
-
界面展示用的ListView还是RecyclerView?如何做文章的过滤的?如果改成别的网站需要怎么做?
-
ImageLoader怎么实现的?内存缓存使用的是什么策略?
-
项目中TCP+HTTP+JSON是怎么回事?
-
android ui自动化测试
-
实习的项目
-
对Kotlin的了解;准备让用Kotlin写一个界面的
-
给了一个布局,让说说看怎么编写
-
了解啥新技术
-
问问题
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
参考docs.qq.com/doc/DSkNLaERkbnFoS0ZF
构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
[外链图片转存中…(img-MmAYwSfg-1724388202030)]
[外链图片转存中…(img-vt3vGJTQ-1724388202031)]
[外链图片转存中…(img-7p99EcDE-1724388202031)]
参考docs.qq.com/doc/DSkNLaERkbnFoS0ZF