面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试,得到公司的认可呢?面试Flutter开发要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一下笔者近几年的面试总结!由于面试题较多,只放了两个部分的面试,答案也整理好了,有需要可以看文末~
Q1、Dart 语言的特性?
Q2、Dart的一些重要概念?
Q3、Dart 是不是单线程模型?是如何运行的?
Q4、Dart 多任务如何并行的?
Q5、dart是值传递还是引用传递?
Q6、Dart 属于是强类型语言 ,但可以用 var 来声明变量,Dart 会自推导出数据类型,var 实际上是编译期的“语法糖”。dynamic 表示动态类型, 被编译后,实际是一个 object 类型,在编译期间不进行任何的类型检查,而是在运行期进行类型检查。
Q7、Dart 中 if 等语句只支持 bool 类型,switch 支持 String 类型。
Q8、Dart 中数组和 List 是一样的。
Q9、Dart 中,Runes 代表符号文字 , 是 UTF-32 编码的字符串, 用于如 Runes input= new Runes('\u{1f596} \u{1f44d}');
Q10、Dart 支持闭包。
Q11、Dart 中 number 类型分为 int 和 double ,没有 flfloat 类型。
Q12、Dart 中 级联操作符 可以方便配置逻辑,
Q13、说一下 Stream?
Q14、说一下 mixin?
Q15、Widget和element和RenderObject之间的关系
Q16、widget树的root节点
Q17、mixin extends implement之间的关系
Q18、Future和microtask执行顺序
Q19、赋值操作符
Q20、可选方法参数
Q21、作用域
Q22、构造方法
Q23、getter setter 重写
Q24、Assert(断言)
Q25、重写运算符,如下所示重载 operator 后对类进行 +/- 操作。
Q1、Flutter 是什么?
Q2、Flutter 特性有哪些?
Q3、基础知识
Q4、Flutter 中的生命周期
Q5、PlatformView
Q6、Platform Channel
Q7、Android 启动页
Q8、Flutter 和 Dart的关系是什么?
Q9、Widget 和 element 和 RenderObject 之间的关系?
Q10、mixin extends implement 之间的关系?
Q11、使用mixins的条件是什么?
Q12、mixin 怎么指定异常类型?
Q13、Flutter main future mirotask 的执行顺序?
Q14、Future和Isolate有什么区别?
Q15、Stream 与 Future是什么关系?
Q16、Stream 两种订阅模式?
Q17、await for 如何使用?
Q18、Flutter中的Widget、State、Context 的核心概念?是为了解决什么问题?
Q19、Widget的两种类型是什么?
Q20、State 对象的初始化流程?
Q21、Widget 唯一标识Key有那几种?
Q22、什么是Navigator? MaterialApp做了什么?
Q23、flflutter与React Native有什么不同?
Q24、为什么说flflutter是原生的
Q25、讲一下flflutter的几个特点/优缺点
Q26、什么是ScopedModel / BLoC模式?
Q27、什么是stateWidget和statelessWidget?
Q28、如何在Flutter中定义边距和填充?
Q29、谈一下flflutter state的生命周期
Q30、Flutter和RN的对比。
Q31、说一下Hot Reload,Hot Restart,热更新三者的区别和原理。
Q32、Flutter是如何做到一套Dart代码可以编译运行在Android和iOS平台的?所以说具体的原理。
Q34、Flutter不具备反射,如果要使用反射,你应该如何使用?说一下大概的思路。
Q35、Flutter在不使用WebView和JS方案的情况下。如何做到热更新?说一下大概思路。
Q36、如何让Flutter 编译出来的APP的包大小尽可能的变小?
Q37、我们这个项目时一个综合系统的老项目,里面有Android,iOS,还有Web代码,是一个混合开发的项目,现在需要迁移到Flutter,加入你加入团队做这个项目的迁移工作,你觉得这个项目如何工程化、容器化以及架构演变应该从哪些维度思考?
Q38、APP启动速度以及页面加载速度一直是我们比较关心的一个问题,特别是混合开发项目,谈谈你对Flutter渲染优化有哪些见解?
Q39、谈谈Flutter的内存回收管理机制,以及你平时是怎么处理内存的?内存泄漏和内存溢出你是怎么解决的?
Q40、再问一个简单一点的,你是如何把控混合项目开发时的生命周期(比如类似安卓的onCreate、onResume这种)和路由管理的?
Q41、Flutter for web 和Flutter1.9推出的Flutter Web有何本质上的区别?
Q42、谈谈你认为的Flutter Web应该如何改进?哪些内容可以改造之后可以用于平时的Web开发。谈谈你的改造方案。
Q43、谈谈如何打造低延迟的视频直播?为什么这样用?
Q44、StatefulWidget 的生命周期
Q45、Flutter 如何与 Android iOS 通信?
Q46、什么是 Widgets、RenderObjects 和 Elements?
Q47、说一下什么是状态管理,为什么需要它?
Q48、说一下 BLoC 模式?
Q49、如何统一管理错误页面?
最后:
对于【Android Flutter开发】的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的Flutter的学习者,希望也能帮助到你!
有需要的可以【点击这里!】
写给大家:每一个优秀的人,都不是带着与生俱来的光环的,也不一定是比别人幸运。他们只是在任何一件小事上,都对自己有所要求,不因舒适而散漫放纵,不因辛苦而放弃追求。雕塑自己的过程,必定伴随着疼痛与辛苦,可那一锤一凿的自我敲打,终究能让我们收获一个更好的自己。