当前位置:首页 » 《关注互联网》 » 正文

面试官:你连MVC、MVP、MVVM都讲不清楚,还要我怎么放水?_粉丝交流群:1087084956

3 人参与  2021年09月01日 12:03  分类 : 《关注互联网》  评论

点击全文阅读


一天,风和日丽小明迎来了人生中的第一次面试;

面试官是个头发稀疏的大叔,从事 Android 开发9年,既是也是公司的技术Leader也是一名架构师,有严肃的一面,也有着专业的一面。

(他的差不多发量就这样,千万不要介意,头越秃,技术越强。)

面试开始

面试官:你好,请你做下自我介绍!

小明递过了自己简历:我叫小明,毕业于XXXX大学软工专业,大学里自学了Android、Java,之前有一段实习经历,然后是今年刚毕业打算找一份Android相关的工作。

面试官撇了撇嘴:明白了,咱们问个简单的问题吧!请你简述一下MVC、MVP、MVVM的定义吧?

小明:MVC的定义是;M:业务逻辑处理。、V:处理数据显示的部分。、C:Activity处理用户交互的问题。MVP的定义是;M:依然是业务逻辑和实体模型、V:对应于Activity,负责View的绘制以及与用户交互、P: 负责完成View与Model之间的交互。而MVVM,它是Model-View-ViewModel的缩写,View:对应于Activity和XML,负责View的绘制以及与用户交互,它是不能做任何与业务相关的操作。Model:实体模型,这跟咱们平常定义的Model层是不一样的。ViewModel:负责完成View与Model之间的交互,负责业务逻辑。它不能做任何与UI相关的操作,也就是不能持有任何View的引用。

面试官:很好,书上都回答出来了。那你知道MVC、MVP、MVVP的应用架构模式吗?

小明:emmm,这个就不是很清楚了。

面试官:好的,Android常用的设计模式你熟悉吗?

小明:熟悉,观察者模式、适配器模式、代理模式、工厂模式、单例模式、命令模式。

面试官:我是说的适用场景;

小明:emmm,我不知道了。

于是面试官就说了雷同标题的这句话“你连MVC、MVP、MVVM、设计模式都不清楚,还要我怎么“放水”?”

其实上面模拟这场面试的例子,就发生在很多朋友的面试过程中,大部分朋友都只知道一些基础、书本上记载的技术知识点,但是对于知识的拓展面却一点也不了解。

比如上面说到的Andorid的基本架构模式适用场景和设计模式中Builder模式、使用场景和实战,这些知识都是面试官问的最多的。

其实无论是大厂、小厂,面试时刷题理解真的很重要,一些基本的知识和思维拓展你也要知道。这样帮助你在面试理解面试官想考察的知识点是什么,从容回答留下好印象,顺利拿下offer。

这里给大家推荐一份Android工程师面试刷题笔记,但苦于篇幅有限,不能完全展现,需要完整pdf版的朋友,点这里来可以查看获取全部内容

以JVM面试题为例:

  • Java 类加载过程?
  • 描述一下JVM 加载 Class文件的原理机制?
  • Java 内存分配
  • GC 是什么? 为什么要有GC?
  • 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  • 垃圾回收的优点和原理。并考虑 2 种回收机制
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • Java 中会存在内存泄漏吗,请简单描述
  • ......

Android面试笔记(组件+View+线程)

以Android四大组件为例
  • 说下Activity的生命周期?
  • onStart()和onResume()/onPause()和onStop()的区别?
  • Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个Dialog呢?
  • 谈谈onSaveInstanceState()方法?何时会调用?
  • onSaveInstanceState()与onPause()的区别?
  • 如何避免配置改变时Activity重建?
  • 优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态?
  • 说下Activity的四种启动模式?(有时会出个实际问题来分析返回栈中Activity的情况)
  • 谈谈singleTop和singleTask的区别以及应用场景
  • ......

Android面试笔记(Binder+Handler+Bitmap)

以binder为例
  • Binder的定向制导,如何找到目标Binder,唤起进程或者线程
  • Binder中的红黑树,为什么会有两棵binder_ref红黑树
  • Binder一次拷贝原理
  • Binder线程、Binder主线程、Client请求线程的概念与区别
  • Binder线程的睡眠与唤醒(请求线程睡在哪个等待队列上,唤醒目标端哪个队列上的线程)
  • Binder协议中BC与BR的区别
  • Binder在传输数据的时候是如何层层封装的–不同层次使用的数据结构(命令的封装)
  • Binder驱动传递数据的释放(释放时机)
  • 一个简单的Binder通信C/S模型
  • ......

Android面试笔记(RecyclerView+Webview)

以RecyclerView为例
  • 请说一下RecyclerView?adapter的作用是什么,几个方法是做什么用的?如何理解adapter订阅者模式?
  • RecyclerView绘制原理如何理解?性能优化本质是什么?RecyclerView绘制原理过程大概是怎样的?
  • RecyclerView常见的优化有哪些?实际开发中都是怎么做的,优化前后对比性能上有何提升?
  • 如何解决RecyclerView嵌套RecyclerView条目自动上滚的Bug?如何解决ScrollView嵌套RecyclerView滑动冲突?
  • RecyclerView的Recyler是如何实现ViewHolder的缓存?如何理解RecyclerView三级缓存是如何实现的?
  • RecyclerView源码分析
  • ......

因图文太多影响朋友们的阅读,整理成PDF部分截图已上传,需要完整Android面试笔记的朋友可以在 文末或者文首领取

Android面试笔记(架构篇)

Android面试笔记(Jetpack篇)

Android面试笔记(NDK开发篇)

后话

故事的最后,我猜大家已经想到了。小明的第一次面试以失败告终。

其实原因很简单,能掌握基础却没有对技术进行一些简单的拓展是他最大的失败。

做程序员,千万不能停止学习。或许一年、两年的差距不大,但是如果隔着3—5年以后,年薪百万的他和年薪不到十万的你同为程序员,这时 差距就出来了。

而差距出来,圈子也就形成了。好的圈子能够让你少走弯路,拓宽人脉,拓展思路,学习他人失败和成功的经验,获取最新经验与信息,抱团取暖等!

而差的圈子,只能让你固步自封,每日生活着压抑与煎熬之中。所以说,好的圈子+努力决定人生的高度,望谨记!

最后需要完整Android面试笔记的朋友点击可以查看获取全部内容直达

 

 


点击全文阅读


本文链接:http://zhangshiyu.com/post/26734.html

面试  模式  小明  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1