ios开发调用getusermedia_字节跳动iOS客户端面经第七期

3ce2281c0c4764e51aea56662eb43b68.png

长安宁。

——敢敢

C和C++的区别

1)C是面向过程的语言,是一个结构化的语言,考虑如何通过一个过程对输入进行处理得到输出;C++是面向对象的语言,主要特征是“封装、继承和多态”。封装隐藏了实现细节,使得代码模块化;派生类可以继承父类的数据和方法,扩展了已经存在的模块,实现了代码重用;多态则是“一个接口,多种实现”,通过派生类重写父类的虚函数,实现了接口的重用。 2)C和C++动态管理内存的方法不一样,C是使用malloc/free,而C++除此之外还有new/delete关键字。 3)C++支持函数重载,C不支持函数重载 4)C++中有引用,C中不存在引用的概念

C++中指针和引用的区别

1)指针是一个新的变量,存储了另一个变量的地址,我们可以通过访问这个地址来修改另一个变量; 引用只是一个别名,还是变量本身,对引用的任何操作就是对变量本身进行操作,以达到修改变量的目的 2)引用只有一级,而指针可以有多级 3)指针传参的时候,还是值传递,指针本身的值不可以修改,需要通过解引用才能对指向的对象进行操作 引用传参的时候,传进来的就是变量本身,因此变量可以被修改

delete和delete[]的区别

delete只会调用一次析构函数,而delete[]会调用每个成员的析构函数

用new分配的内存用delete释放,用new[]分配的内存用delete[]释放

STL库用过吗?常见的STL容器有哪些?算法用过几个?

STL包括两部分内容:容器和算法 容器即存放数据的地方,比如array, vector,分为两类,序列式容器和关联式容器 序列式容器,其中的元素不一定有序,但是都可以被排序,比如vector,list,queue,stack,heap, priority-queue, slist 关联式容器,内部结构是一个平衡二叉树,每个元素都有一个键值和一个实值,比如map, set, hashtable, hash_set 算法有排序,复制等,以及各个容器特定的算法 迭代器是STL的精髓,迭代器提供了一种方法,使得它能够按照顺序访问某个容器所含的各个元素,但无需暴露该容器的内部结构,它将容器和算法分开,让二者独立设计。 80701431c95298980186367c6f90ed41.png 488800e1c727ae38f281313752320397.png 881451d209f17dd733a1afedeb05387a.png

谈谈 UITableView 的优化

1)正确的复用cell。
2)设计统一规格的Cell
3)提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法;
4)异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;
4)滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!
5)减少子视图的层级关系
6)尽量使所有的视图不透明化以及做切圆操作。
7)不要动态的add 或者 remove 子控件。最好在初始化时就添加完,然后通过hidden来控制是否显示。
8)使用调试工具分析问题。

如何重写类方法

1、在子类中实现一个同基类名字一样的静态方法
2、在调用的时候不要使用类名调用,而是使用[self class]的方式调用。原理,用类名调用是早绑定,在编译期绑定,用[self class]是晚绑定,在运行时决定调用哪个方法。

 NSTimer创建后,会在哪个线程运行。

用scheduledTimerWithTimeInterval创建的,在哪个线程创建就会被加入哪个线程的RunLoop中就运行在哪个线程
自己创建的Timer,加入到哪个线程的RunLoop中就运行在哪个线程。

     建筑大师柯布西耶说:建筑即精神。通往伟大建筑的征程,从来不是一蹴而就。臻于极致的探索,专注细节的执着,每一步皆是对自我的超越,也是成就“作品”的必经之途。

NSNotification和KVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?

答:NSNotification是通知模式在iOS的实现,KVO的全称是键值观察
(Key-value observing),其是基于KVC(key-value coding)的,KVC是一
个通过属性名访问属性变量的机制。例如将Module层的变化,通知到多
个Controller对象时,可以使用NSNotification;如果是只需要观察某个
对象的某个属性,可以使用KVO。
对于委托模式,在设计模式中是对象适配器模式,其是delegate是指向
某个对象的,这是一对一的关系,而在通知模式中,往往是一对多的关
系。委托模式,从技术上可以现在改变delegate指向的对象,但不建议
这样做,会让人迷惑,如果一个delegate对象不断改变,指向不同的对
象。

什么是内存泄漏?面对内存泄漏和指针越界,你有哪些方法?

动态分配内存所开辟的空间,在使用完毕后未手动释放,导致一直占据该内存,即为内存泄漏。 方法:malloc/free要配套,对指针赋值的时候应该注意被赋值的指针是否需要释放;使用的时候记得指针的长度,防止越界

C++文件编译与执行的四个阶段

1)预处理:根据文件中的预处理指令来修改源文件的内容 2)编译:编译成汇编代码 3)汇编:把汇编代码翻译成目标机器指令 4)链接:链接目标代码生成可执行程序

1766edb5db256cd5d46a61faa992894e.png

更多面经推荐

拼多多-Java开发面经(二)

拼多多-Java开发面经(一)

滴滴-前端开发面经(三)

滴滴-前端开发面经(二)

滴滴-前端开发面经(一)

快手客户端面经总结第二期

百度C++面经总结第四期

宝洁CBD岗校招面经分享

干货分享:无领导小组面试知识点

Java后端开发学习方法分享

快手客户端面经总结第一期

字节跳动 C++面经总结 第十期

我想去大厂工作之产品经理练成篇

拼多多数据分析面经总结第六期

阿里-Android开发面经(五)

哔哩哔哩-软件测试面经(一)

史上最全最详细的产品运营推广策划方案

小米-Java开发面经(二)

小米-Java开发面经(一)

网易-前端开发面经(一)

百度-Android开发面经(二)

字节跳动 C++面经总结 第九期

字节跳动 C++面经总结 第八期

网易 C++面经总结 第二期

网易 C++面经总结 第一期

干货分享:设计岗常见面试题

干货分享:人力资源岗常见面试题

干货分享:游戏策划岗常见面试题

干货分享:销售岗常见面试题

干货分享:项目经理常见面试题

拼多多数据分析面经总结第四期

光大科技软件开发面经总结第一期

阿里-Java开发面经(一)干货分享:产品经理常见面试题(下)干货分享:产品经理常见面试题(上)事业单位计算机综合知识材料|文末更多资料可以领取拼多多数据分析面经总结第三期拼多多数据分析面经总结第二期字节跳动-测试开发面经(四)字节跳动-测试开发面经(三)拼多多数据分析面经总结第一期程序员or公务员,到底哪个更香?字节跳动iOS客户端面经第五期干货分享:运营岗位高频面试题阿里-Android开发面经(五)字节跳动 C++面经总结 第七期字节跳动iOS客户端面经第四期字节跳动iOS客户端面经第三期字节跳动iOS客户端面经第二期字节跳动iOS客户端面经第一期不会吧不会吧还有人不知道简历怎么写??| 文末精选校招简历模板1000+阿里-Android开发面经(四)百词斩Server端面经第二期百词斩Server端面经第一期阿里-Android开发面经(三)阿里-Android开发面经(二)阿里-Android开发面经(一)字节跳动 C++面经总结第六期字节跳动-测试开发面经(二)字节跳动-测试开发面经(一)阿里-前端面经(二)滴滴-Android开发(二)字节跳动Java开发(五)字节跳动Java开发(四)阿里-前端面经(一)百度-测试开发面经(二)百度-测试开发(三)百度-测试开发面经(一)字节跳动 C++面经总结 Penta kill字节跳动 C++面经总结 quadruple kill字节跳动 C++面经总结 triple kill字节跳动 C++面经总结 Duoble kill字节跳动 C++面经总结 First blood字节跳动-Java开发(三)字节跳动-Java开发(二)字节跳动-Java开发(一)百度 Android面经总结第一期京东前端面经第二期京东前端面经第一期考研数学最全公式|来袭京东测试面经总结第一期百度提前批c++面经总结第三期字节跳动-前端开发-一面(一)面试项目详细解析之数据库项目面试项目详细解析之人脸识别百度提前批c++面经总结第二期百度提前批c++面经总结第一期快手-Java开发-一面(一)前端工程师之React篇(一)滴滴-Android开发-一面(一)如何备战秋招,拿到心仪offer?测试开发工程师-数据库篇(一)测试开发工程师-测试基础篇(一) 关于考研我想告诉你的那些事
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值