面试题

作者: 出来遛狗了 | 来源:发表于2023-01-03 16:00 被阅读0次

1、Flutter相关

Flutter的优缺点
Flutter 热重载的原理
Flutter与原生的通信
Flutter和RN的对比指标
Flutter的三棵树渲染机制和原理
Flutter前景与原生的对比,更看好哪一个
Flutter和 Weex、ReactNative对比和区别
Flutter渲染原理,Flutter和Native交互原理
FlutterBoost原理,为什么要使用原生导航
Flutter和ReactNative的区别,兼容性问题
Native+H5遇到的问题,Flutter遇到的问题
简要介绍原生与Flutter混合开发中碰到哪些问题及解决方案
Flutter 渲染三棵树:Widget、Element、RenderObject对比
Flutter有状态和无状态widget有什么区别,有状态widget有哪些生命周期?

iOS相关

一张图片从加载到显示的整个流程是什么?
做过什么性能优化的点?展开讲讲?
图片加载,GPU到openGL阶段的流程是怎么样的?
项目编译的流程是怎么样的?

1.内存管理机制
2.runtime的一些应用场景
3.消息转发机制
4.AutoReleasePool的结构
5.weak原理
6.weak与unowned区别
7.copy可以修饰哪些东西
8.深拷贝浅拷贝
9.用copy修饰mutableString会有什么问题:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with appendString:’
10.runloop的source
11.想要在block中修改对象如何做(用__block修饰),需要用__block修饰对象吗
12.Block的注意事项:
非__block修饰的变量,捕获是在block定义时发生的
__block修饰的基本类型: 在MRC和ARC上,都是捕获地址,所以可以修改值
__block修饰对象, MRC不会强引用,ARC中是强引用(需要在block中置为nil)

  1. 1,2,3,4个子线程,如何在1,2之后,再执行3,4?,信号量是否可以用上
  2. 组件化方案优缺点对比
  3. https的加密过程

1.为什么用websocket来走普通的请求,有没有监控实际效果(速度,流量方面)?,有没有防护措施
2.为什么没有直接用collectionViewCell来展示视频?
3.为什么没有播放器为什么要用三个?复用逻辑是怎样的,有没有更好的方案(比如拿到视频数据流自己做缓存)
4.crash防护怎么做的,怎么治理和规避,swift上如何对已经存在的方法做防护(不像OC可以hook系统方法)
5.卡顿监控怎么做的(两种方案的对比和优缺点),如何上报与分析,
6.卡顿时间阈值如何确定的,如果要动态修改卡顿时间阈值,要考虑哪些因素
7.Swift静态性体现在哪些方面,相对于OC性能更好吗?为什么?OC为什么设计成动态的消息机制
8.目前项目的架构是怎样的(分层,组件化),组件化的细节实现(模块间通信怎么做的,有什么优缺点,怎样优化)

runtime-的数据结构和场景
消息转发,hook等
category可以添加属性吗?关联对象可以,为什么不能添加示例变量,如果示例变量也保存到
全局方法中如何实现
block类型,内存
block的截获变量
深拷贝、浅拷贝
kvo要释放监听吗
性能优化--网络、UI、runloop,如何获取到卡顿的方法
算法,计数排序-桶排序
网络-dns,长连接,httpDNS
https
gcd - gcd的方

2、现在做项目的难点是什么,对自己的成长帮助最大,一些细节延伸
4、怎么从100万条数据中选出排在前面的100条数据(topK问题)
5、网络-dns,长连接,httpDNS
6、快排实现过程及复杂度,二叉树的遍历前序、后续遍历
8、聊下性能优化
9、如何保障App的数据安全
10、runLoop,和runloop的运用,实现细节
11、多线程与线程同步锁

  1. KVO和KVC
  2. 消息机制, 消息转发
  3. 方法缓存结构, 存取过程
  4. 有哪些crash经验, 举具体的例子说明
  5. arc原理, arc下的相关优化
  6. runloop流程原理
  7. GCD和NSOperation区别
  8. weak原理
  9. 关联对象原理, 什么时候释放
  10. 性能优化相关, 内存,启动
  11. lldb命令
  12. MLeaksFinder原理, 同理如果用来检测view有没有释放应该怎么做
  13. 是否懂汇编
  14. 设计模式, 单例的优缺点
  15. block内存管理
    19对象的内存布局
  16. 类方法和实例方法的区别

iOS相关:

面试点(必考)
1、iOS
属性修饰符,
block
多线程
runtime、runloop
性能优化
内存管理
HTTP协议基础
2、RN 相关
js基础
RN基础
RN与原生交互

面试点(参考)
1、OC
属性修饰词的作用
isa指针
block原理
多线程: GCD, NSOpration ,NSTread
runtime的原理,黑魔法原理,weak实现的原理
runloop:runloop作用及原理,模式切换,状态
分类,扩展区别
KVO,KVC原理
2、iOS
基础:事件响应链,数据持久化
性能优化: 启动优化,内存优化,网络优化,离屏渲染
生命周期: 生命周期, load 与initialize的区别
三方框架: SD_image原理,AFN原理
3、swift
Swift与OC的区别
Swift如何使用runtime
类与结构体
3、JS
作用域
闭包
promise使用及原理
ES6新特性
4、RN
基础: 生命周期,state和props, react-hook
状态管理: redux原理

RN面试题

iOS 相关

1、nonatomic和atomic的区别?atomic是否真的线程安全,为什么?
2、_name = @“” 和self.name的区别
3、weak和strong的区别
4、遇到的循环引用,怎么解决
5、深拷贝和浅拷贝
6、进程和线程的区别?同步异步的区别?并行和并发的区别?
7、栅栏函数作用

JS

1、 var, let , const,
2、ES6新功能
3、箭头函数和普通函数的区别
4、js 中异步操作有几种方式
5、如何进行深拷贝

RN相关

1、组件声明周期


componentWillMount.jpg

2、PurCompoment 和Compoment的区别
3、setState的第二个参数是干嘛用的
4、props和state区别
5、react-hook的方法有哪些,为什么hook不能添加条件判断

1、OC和Swift的本质区别
2、nonatomic和atomic的区别?atomic是否真的线程安全,为什么? 对
3、并发队列,线程执行完怎么回到主线程,栅栏函数的应用场景和注意事项
dispatch_group 栅栏函数不能用在dispatch_get_global_queue
4、怎么添加线程依赖?GCD能实现线程依赖吗?
addDependency
5、KVO原理
6、block本质是什么? __block的原理是什么?
7、为什么不能给NSObject的分类添加类方法?
8、runloop的几种模式和区别?怎么切换着几种模式?
9、MVVM 中的Controller属于 M还是V?
10、怎么hook runtime方法?
11、swift可以使用runtime吗?怎么做?
12、消息转发流程

resolveinstanceMethod.jpg

13、怎么优化App启动时间
二进制重排序
Edit Scheme -- 选择一个Scheme(比如:Run)-- 选择Arguments -- Environment Variables -- 点击添加 -- 设置 name: DYLD_PRINT_STATISTICS value : ${DEBUG_ACTIVITY_MODE}

14、tcp和http的关系 三次握手?

15、StatelessWidget和StatefulWidget的生命周期
StatelessWidget:初始化、通过build()渲染。
StatefulWidget


image.png

16、Flutter 是如何与原生Android、iOS进行通信的?Flutter 通过 PlatformChannel 与原生进行交互,其中 PlatformChannel 分为三种:
BasicMessageChannel :用于传递字符串和半结构化的信息。
MethodChannel :用于传递方法调用(method invocation)。
EventChannel : 用于数据流(event streams)的通信。
同时 Platform Channel 并非是线程安全的 ,更多详细可查阅闲鱼技术的 《深入理解Flutter Platform Channel》
17、状态管理

相关文章

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • ios面试题

    初级面试题 中级面试题 高级面试题 swift篇

  • Android超实用最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

  • Android最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

网友评论

      本文标题:面试题

      本文链接:https://www.haomeiwen.com/subject/vgslcdtx.html