面试笔试宝典
总结各个公司面试题目
马拉萨的春天
这个世界所看中的不仅仅是态度,有时候更侧重的是能力。一个90分能力的人,即使只有7分的态度,也是可以把事情做成的。然而一个只有50分能力的人,即使付出百分百的努力,也未必可以把事情做好。所以,态度是成功的前提和基础,但最终能否成功,终究还是要看你的能力。而态度是在能力相差无几的情况的下的决定性因素,但是前提你得不断的提高你的能力。
展开
-
iOS block截获变量
block截获变量是什么意思?我们先来看一段代码: int i = 10; void (^block)(void) = ^{ NSLog(@"In block, i = %d", i); }; i = 200; block(); NSLog(@"i = %d", i); 这段代码的输出结果是什么呢?控制台输出结果为:有人肯定会想,在 block 执行之前已经把变量 i 的值改成 20 了,为什么在block中打印 i 的.转载 2021-02-20 22:17:53 · 153 阅读 · 0 评论 -
2019 iOS 面试题大全(补充完整版)
原文地址:2018 iOS 面试题大全由于原作者并没有继续更新,这里我转过来继续更新下整理的一些iOS面试相关问题,持续更新,敬请关注2018 iOS面试题大全---全方面剖析面试1、2018 iOS面试题---UI相关:事件传递,图像显示,性能优化,离屏渲染2、2018 iOS面试题---Objective_C语言特性相关问题3、2018 iOS面试题---runtime相关4、2018 iOS面试题---算法相关5、2019 iOS面试题-----内存管理、自动释放池与循环引用6、转载 2020-12-06 20:18:04 · 255 阅读 · 0 评论 -
在浏览器输入URL回车之后发生了什么?(超详细版)
前言 这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了。 这篇笔记是我这两天看了数十篇文章总结出来的,所以相对全面一点,但由于我是做前端的,所以会比较重点分析浏览器渲染页面那一部分,至于其他部分我会罗列出关键词,感兴趣的可以自行查阅,注意:本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS、HTTP2、最简单的 DNS、没有代理、并且服务器没有任何问题的基础上,尽管这是不切实.转载 2020-11-03 12:06:14 · 1096 阅读 · 0 评论 -
抓包工具Charles的使用心得
简介Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。开发iOS都在Mac系统上吧,安装Charles的时候要先装好Java环境。这么好的软件不是免费的,官网要好几十刀呢,我这里有一个Mac上的破解版,点击这里下载,当然不是最新版的。如果你想体验最新版,Charles是提供试用的。Charles主要功能支持SSL代理。可以截取分析SSL的请求。 支持流量控制。可以模转载 2020-11-03 11:59:00 · 334 阅读 · 0 评论 -
iOS arc weak指针原理
iOS arc weak指针原理 ARC 都帮我们做了什么? weak是什么? weak是怎么实现的? 1. weak原理简介 2. weak简单测试 3. weak原理分析 3.1 weak指针帮我们干了啥? 3.2 weak实现的流程 3.2.1 初始化时:runtime会调用objc_initWeak函数,objc_initWeak函数会初始化一个新的weak指针指向对象的地址。 3.2.2转载 2020-11-03 11:47:05 · 139 阅读 · 0 评论 -
Block - __weak、__block的使用
一、__weak、__block区别!__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 __weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。 __block对象可以在block中被重新赋值,__weak不可以。使用一:解决循环引用具体参考文章 -- 循环引用的场景 & 处理__weak:ARC下__block:MRC下__unsafe_unretained:如果要兼容iOS4.3,则用转载 2020-11-03 11:36:25 · 225 阅读 · 0 评论 -
iOS 堆和栈的区别?
前言堆和栈是什么?有什么区别?是干嘛的?啥东西呀这是?别急,慢慢看下去内存管理移动设备的内存及其有限,每一个APP所能占用的内存是有限制的(吐槽一下:iPhone6s还是16G起步,还好我也买不起->_-> 扯远了~~~)什么行为会增加APP的内存占用创建一个oc对象 定义一个变量 调用一个函数或者方法内存管理范围任何继承了NSObject的对象 对其它非对象类型无效 简单来说: 只有oc对象需要进行内存管理 非oc对象类型比如基本数据类型不需要进原创 2020-11-03 11:22:00 · 905 阅读 · 0 评论 -
TCP 为什么三次握手而不是两次握手(正解版)
参考文章Why do we need a 3-way handshake? Why not just 2-way大部分网络博客的错误解读首先需要声明的是, 百度搜索到的大部分网络博客关于这个问题的解答都是不清晰或者不准确的。 讨论这个问题的大部分博客都会引用《计算机网络》的内容:防止已失效的连接请求又传送到服务器端,因而产生错误不幸的是, 这种解释是不准确的, TCP 采用三次握手的原因其实非常简单, 远没有大部分博客所描述的那样云山雾绕。这里先给出结论:为了实现可靠数据传输,转载 2020-11-03 11:18:42 · 3463 阅读 · 2 评论 -
HTTP协议三次握手过程
HTTP协议三次握手过程TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge numbe转载 2020-11-03 11:09:19 · 389 阅读 · 0 评论 -
Static、const、extern区别
一、Static、const、extern区别-------------------------------STATIC--------------------------------static 全局的,可以改的,如果在一个类中声明static,类中其他地方用到的时候,也是使用的改变量。但不能用类名直接访问。static全局变量只能在一个文件中使用,也即是说不可能用extern使它支持外部引用,而全局变量则可以通过extern在外部文件中引用,在真正的开发中,一般要使用...转载 2020-11-03 10:56:26 · 834 阅读 · 0 评论 -
iOS缓存机制详解
应用离线工的两种方式:第一种是**按需缓存**,这种情况下应用缓存起请求应答,就和Web浏览器的工作原理一样;第二种是**预缓存**,这种情况是缓存全部内容(或者最近n条记录)以便离线访问。IOS缓存机制详解 借鉴网址http://www.cnblogs.com/qiqibo/p/3520635.html在众多可以本地保存数据的技术中,有三种脱颖而出:URL缓存、数据模型缓存(利用NSKeyedArchiver)和Core Data。数据模型缓存与URL缓存按需缓存可以用数据模型缓存或U转载 2020-11-03 10:47:20 · 724 阅读 · 0 评论 -
判定IP地址合法性的三种方法
IPIP合法性校验是开发中非常常用的,看起来很简单的判断,作用的确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法。IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~255)正则表达式判定法最简单的实现方法是构造一个正则表达式。判断用户的输入与正则表达式是否匹配。若匹配则是正确的IP地址,否则不是正确的IP地址。下面给出相对应的验证ip的正则表达式:^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[转载 2020-11-03 10:42:58 · 14022 阅读 · 0 评论 -
iOS性能优化UI篇(一)
这是一个老生常谈的话题,程序猿的一生除了在编译、写bug、改bug,就是在不断地重构优化,优化的点也多种多样,其中最直观有效的就是UI部分的优化了,这方面有很多相关资料,也有如YYkit、Texture这种神级框架从根源上解决了卡顿的问题。作为菜鸟的我无法像大佬们一样从根源上分析解决UI性能问题,只能写一篇比较基础的文章,总结一下常用的控件的使用注意点,希望对你的日常开发有帮助~基本法先来一波UI操作的基本法则:尽量减少在主线程中的操作,避免阻塞主线程。执行的操作越多就意味着越高的丢帧率,从而导转载 2020-10-27 16:45:57 · 445 阅读 · 0 评论 -
iOS性能优化-UI卡顿检测
前言在实现需求的同时,能写出既优雅性能又高效的代码是每个开发者都在追求的目标,但是在实际开发中,随着每个版本需求的迭代,功能变得越来越复杂,加上开发者的意识不够或者一时疏忽,日渐复杂的工程很容易产生或多或少的问题。比如,app随机丢失动画、用户反馈app卡死等等的问题,这些问题都严重影响使用,也会降低产品口碑,我们除了在开发过程中,通过instrument来检测这些问题,还可以借助一些第三方监控工具来解决这些问题,KMCGeigerCounter就是一个很好的卡顿检测器。在分析KMCGeige.转载 2020-10-27 16:33:05 · 982 阅读 · 0 评论 -
2020年面试:整理出一份高级iOS面试题
1、NSArray与NSSet的区别?NSArray内存中存储地址连续,而NSSet不连续 NSSet效率高,内部使用hash查找;NSArray查找需要遍历 NSSet通过anyObject访问元素,NSArray通过下标访问2、NSHashTable与NSMapTable?NSHashTable是NSSet的通用版本,对元素弱引用,可变类型;可以在访问成员时copy NSMapTable是NSDictionary的通用版本,对元素弱引用,可变类型;可以在访问成员时copy(注:NSHa转载 2020-10-27 16:31:04 · 703 阅读 · 0 评论 -
ios面试题目
1、事件响应链是如何传递的?手势的点击会发生两个重要事情,事件传递和事件响应。事件传递:从UIApplication开始,到window,再逐步往下层(子视图)找,直到找到最深层的子视图,其为first responder。用到的判断方法是pointInside:withEvent和hitTest:withEvent。事件响应:从识别到的视图(first responder)开始验证能否响应事件,如果不能就交给其上层(父视图)视图,如果能相应将不再往下传递,如果直到找到UIApplication转载 2020-10-10 16:12:36 · 1085 阅读 · 0 评论 -
iOS面试宝典第12章-操作系统
原创 2020-08-31 17:13:18 · 114 阅读 · 0 评论 -
iOS面试宝典第10章-iOS其他话题
原创 2020-08-31 11:12:54 · 113 阅读 · 0 评论 -
iOS面试宝典第9章-iOS中的网络和多线程编程
原创 2020-08-31 11:09:09 · 94 阅读 · 0 评论 -
iOS面试宝典第8章-iOS中的内存管理
原创 2020-08-31 11:00:46 · 97 阅读 · 0 评论 -
iOS面试宝典第7章- ios 中的数据持久化
原创 2020-08-31 09:54:07 · 136 阅读 · 0 评论 -
iOS面试宝典第6章-iOS中的图层与动画
原创 2020-08-28 16:10:06 · 101 阅读 · 0 评论 -
iOS面试宝典第5章-iOS开发中的对象间通信机制
原创 2020-08-28 16:05:45 · 106 阅读 · 0 评论 -
iOS面试宝典第4章-CocoaTouch框架相关
原创 2020-08-28 16:02:09 · 120 阅读 · 0 评论 -
iOS面试宝典第3章-Objective-C语言的高级特性
原创 2020-08-28 15:45:20 · 214 阅读 · 0 评论 -
iOS面试宝典2 - Objective-C语言基础
原创 2020-08-27 17:36:49 · 120 阅读 · 0 评论 -
iOS面试宝典1-iOS开发基础概念
原创 2020-08-27 17:08:24 · 88 阅读 · 0 评论 -
Runtime-iOS运行时基础篇
本文主要整理了Runtime的相关知识。对于一个iOS开发者来说,掌握Runtime的重要性早已不言而喻。OC能够作为一门优秀的动态特性语言,在其背后默默工作着的就是Runtime。在网上也看过很多资料,最终我还是希望在一些关键的知识点上能够融入自己的理解,从简单的问题出发,一步一步理解和学以致用。iOS运行时Runtime.png相关文章:iOS运行时Runtime应用目录:一、怎么理解OC是动态语言,Runtime又是什么?二、理解消息机制的基本原理三、与Runtime交互的三种转载 2020-07-09 15:14:42 · 117 阅读 · 0 评论 -
iOS Runtime详解
Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发,具体怎么实现的呢。我们从下面几个方面探寻Runtime的实现机制。Runtime介绍 Runtime消息传递 Runtime消息转发 Runtime应用Runtime介绍Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。..转载 2020-07-09 15:10:54 · 198 阅读 · 0 评论 -
Objective-C是动态运行时语言是什么意思?
Objective-C是动态运行时语言是什么意思? (When we call objective c is runtimelanguage what does it mean?)主要是将数据类型的确定由编译时,推迟到了运行时。这个问题其实浅涉及到两个概念,运行时和多态。简单来说, 运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法。多态:不同对象以自己的方式响应 相同的消息的能力叫做多态。意思就是假设生物类(life)都拥有一个相同的方法-eat;那人类属于生物,猪也属于生物转载 2020-07-09 15:05:06 · 241 阅读 · 0 评论 -
ios面试题目
2020-iOS最新面试题解析(原理篇)https://www.jianshu.com/p/a66da9351fff2020-iOS最新面试题解析(Swift篇)https://www.jianshu.com/p/e4168664d1962020-iOS最新面试题解析(UI篇)https://www.jianshu.com/p/6799d5a652f62020-iOS最新面试题解析(网络篇)https://www.jianshu.com/p/7aa730830238...原创 2020-07-01 15:35:18 · 141 阅读 · 0 评论 -
iOS面试题目
iOS开发【完美世界】面试经验:第一轮就有三个 1对1https://www.jianshu.com/p/dec638ef4373字节跳动2020面试算法题+场景题+智力题100题https://www.jianshu.com/p/0aef53a3caf6字节跳动 ios开发实习 面经https://www.jianshu.com/p/a198d55c370diOS实习面经(字节美团阿里蘑菇街)https://www.jianshu.com/p/604fac0bcb45...原创 2020-06-29 10:12:40 · 318 阅读 · 0 评论 -
2020-iOS最新面试题解析(原理篇)
https://www.jianshu.com/p/a66da9351fffhttps://www.jianshu.com/p/b5fc9e6310a6iOS开发者面试简历亮点技术-音视频知识详解https://www.jianshu.com/p/ac418fd80055阿里、字节:一套高效的iOS面试题( 多线程 GCD底层原理篇)https://www.jianshu.com/p/325cd73721fdiOS开发大厂面试题(Objective-C版本...原创 2020-06-29 10:00:25 · 363 阅读 · 0 评论