当前位置: 首页 > news >正文

BAT面试笔记

为什么80%的码农都做不了架构师?>>>   hot3.png

1、亿级日志中,查找登陆次数最多的十个用户

解题思路:先用哈希表保存登陆次数和ID,然后用红黑树保存最大的十个数。

2、说说你对 OC 中 load 方法和 initialize 方法的异同。

主要说一下执行时间,各自用途,没实现子类的方法会不会调用父类的

3、 说说你对 block 的理解。

 三种 block,栈上的自动复制到堆上,block 的属性修饰符是 copy,循环引用的原理和解决方案。

4、 说说你对 runtime 的理解。

主要是方法调用时如何查找缓存,如何找到方法,找不到方法时怎么转发,对象的内存布局。

 5、说说你对 MVC 和 MVVM 的理解。

MVC 的 C 太臃肿,可以和 V 合并,变成 MVVM 中的 V,而 VM 用来将 M 转化成 V 能用的数据。 

6、说说 UITableView 的调优。

一方面是通过 instruments 检查影响性能的地方,另一方面是估算高度并在 runloop 空闲时缓存。

7、 谈谈你对 ARC 的理解。

ARC 是编译器完成的,依靠引用计数,谈谈几个属性修饰符的内存管理策略,什么情况下会内存泄露。

8、野指针是什么,iOS 开发中什么情况下会有野指针?

野指针是不为 nil,但是指向已经被释放的内存的指针....

9、介绍 block

提到栈上的 block 在 ARC 下会自动复制到堆上

10、 ARC 会对代码做什么优化?

比如 NSString *s2 = s1; s2 = nil 这样的语句,可能就不会有 retain 和 release 方法了

11、数据的双向绑定怎么做, bind 函数了解过么?

12、怎么判断某个 cell 是否显示在屏幕上 进程和线程的区别 TCP 与 UDP 区别 TCP 流量控制 数组和链表的区别 

13、UIView 生命周期 如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用? 

14、block 循环引用问题 ARC 的本质 RunLoop 的基本概念,它是怎么休眠的? Autoreleasepool 什么时候释放,在什么场景下使用? 如何找到字符串中第一个不重复的字符 哈希表如何处理冲突


转载于:https://my.oschina.net/qiukun/blog/661625

相关文章:

  • Architecture.the-reactive-manifesto
  • 一起Polyfill系列:Function.prototype.bind的四个阶段
  • Mybatis 中在传参时,$ 和# 的区别
  • 敏捷方法在测试计划中的应用
  • ARM9学习笔记之——MiniOS
  • 线程同步之条件变量
  • 混合牛奶 | 贪心算法 (USACO练习题)
  • Solarized Scheme
  • Leetcode题目:Symmetric Tree
  • spring测试junit事务管理及spring面向接口注入和实现类单独注入(无实现接口),实现类实现接口而实现类单独注入否则会报错。...
  • CodeForces 660C Hard Process
  • 流媒体选择Nginx是福还是祸?
  • 解读Secondary NameNode的功能
  • linux下Bash函数功能之编写脚本(十二)
  • PHP~foreach遍历名单数组~有必要多次观看练习
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 230. Kth Smallest Element in a BST
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • gulp 教程
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode388. Longest Absolute File Path
  • Lsb图片隐写
  • tweak 支持第三方库
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 入手阿里云新服务器的部署NODE
  • 手机app有了短信验证码还有没必要有图片验证码?
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 国内开源镜像站点
  • ​Python 3 新特性:类型注解
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (AngularJS)Angular 控制器之间通信初探
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (南京观海微电子)——COF介绍
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (已解决)什么是vue导航守卫
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)德国人的记事本
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .form文件_SSM框架文件上传篇
  • .NET 读取 JSON格式的数据
  • .Net的C#语言取月份数值对应的MonthName值
  • .net反混淆脱壳工具de4dot的使用
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @Autowired注解的实现原理
  • [Django 0-1] Core.Handlers 模块
  • [Editor]Unity Editor类常用方法
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档
  • [GN] DP学习笔记板子
  • [HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页