返回首页
21.什么情况下会出现死锁?如何解除死锁?当多个线程在执行过程中,进行资源抢占或者线程间通讯时产生的阻塞现象,线程不能向下执行。然后只有在外力作用下才能向下推进的过程就是死锁。比如A线程拿着B线程想要的资源不释放,同时B线程拿着A线程的资源不释放,然后他们互相等待。产生死锁的原因:系统资源不足,资源分配不当。产生死锁的四个条件是:互斥条件:线程(进程)对于所分配到的资源具有排它性,即一个
转载
2024-01-08 14:25:41
43阅读
一、Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很
第一篇面试题整理:://cocoachina.com/bbs/read.php?tid-459620.html 本篇面试题同样:如答案有问题,欢迎指正! 1.回答person的retainCount值,并解释为什么Person * per = [[Person alloc] init];self.person = per; 2 2.这段代码有
转载
2023-06-05 20:48:17
312阅读
形成死锁的四个必要条件是什么互斥条件:线程(进程)对于所分配到的资源具有排它性,即一个资源只能被一个线程(进程)占用,直到被该线程(进程)释放
请求与保持条件:一个线程(进程)因请求被占用资源而发生阻塞时,对已获得的资源保持不放。
不剥夺条件:线程(进程)已获得的资源在末使用完之前不能被其他线程强行剥夺,只有自己使用完毕后才释放资源。
循环等待条件:当发生死锁时,所等待的线程(进程)必定会形成一个
转载
2023-11-07 11:08:28
39阅读
一.引言不管是Java面试还是Android面试,线程池都是面试官高频考察的点,那我们怎么回答,才能让面试官了解到我们是真的懂Java线程池了呢?这篇文章不涉及到线程池的使用和原理,如果你还不知道怎么使用线程池,可以先去了解一下。下面我会从几个方面入手循序渐进的告诉你怎么回答这一类问题,并切构建自己的知识体系。二.线程池是什么,为什么要有线程池?我们知道线程的创建和销毁都是十分消耗系统资源的,第一
转载
2024-06-28 11:33:46
56阅读
今天刚刚开始面试,接下来这几天把遇到的面试题总结如下:1.内存管理在实际开发中的应用(必考,已经被问两次了)答: 1.UITableView的数据条数太多时会消耗内存,可以给UITableViewCell、UICollectionViewCell、UITableViewHeaderFooterView设置正确的复用ID,充分复用。2.有透明度的View(alpha值在0到1之间),opaque的值
转载
2023-10-13 09:26:26
287阅读
前言:经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便iOS开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案。 1.?你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?答案:Objecitve-C的重
转载
2024-05-30 14:13:59
87阅读
目录2020 阿里、字节iOS面试题之Runtime相关问题1
2020 阿里、字节iOS面试题之Runtime相关问题2
runtime相关问题之 内存管理基本内容包括:weak的实现原理?SideTable的结构是什么样的关联对象的应用?系统如何实现关联对象的关联对象的如何进行内存管理的?关联对象如何实现weak属性Autoreleasepool的原理?所使用的的数据结构是什么ARC的实现原理
死锁是操作系统层面的一个错误,是进程死锁的简称,最早在 1965 年由 Dijkstra 在研究银行家算法时提出的,它是计算机操作系统乃至整个并发程序设计领域最难处理的问题之一。事实上,计算机世界有很多事情需要多线程方式去解决,因为这样才能最大程度上利用资源,才能体现出计算的高效。但是,实际上来说,计算机系统中有很多一次只能由一个进程使用的资源的情况,例如打印机,同时只能有一个进程控制它。在多通道
转载
2024-06-06 17:23:15
50阅读
1、什么时候在 block 中不需要使用 weakSelf 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:什么时候在 block 里面用 self,不需要使用 weak self? 答案如下: 当
转载
2016-12-05 14:02:00
258阅读
2评论
面试能力要求:精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能; 擅长通讯技术,熟悉各种通信协议,精通xml, json, 二进制或其他形式的自定义解析,能架设服务器实现客户端与服务器的通讯以提交开发效率; 熟练掌握各种数据存储技术,如core data, sqlite, 对象序
原创
2013-08-04 19:55:00
409阅读
iOS面试题 1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 浅层复制:指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。 2.What is advantage of categories? What is difference between implementing a category ...
转载
2021-09-01 14:31:08
168阅读
1.写一下UIButton与UITableView的层级结构 2.Cocoa的Foundation对象与Core Foundation对象通过
原创
2023-05-08 19:25:31
105阅读
1.Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写
原创
2023-04-30 15:20:22
301阅读
IOS 面试题
转载
2023-04-28 01:23:44
70阅读
都是一些值得一做,必须掌握的题。
1.写一个NSString类的实现+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t ch
转载
2024-05-16 17:17:23
512阅读
1.看你在重构一个项目,你讲讲你重构的心得?你如何保证你重构后的功能逻辑是完整的?你如何让以后来维护你重构的代码的人能清晰明了的知道你写了什么?2.进程和线程的区别?同一进程不同线程的哪些数据段是共享的?3.http响应header中的cache-control有哪些常规值?4.http中get/post在请求参数上有什么区别?get参数的长度有限制吗?文件上传一般是post请求,那么在body里
转载
2024-07-04 10:38:03
60阅读
作者丨_小迷糊前言随着移动互联网科技不断的发展和创新,如今无论是公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,而面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。下面我们一起来一下看看吧。一、如何绘制UIView?绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView,而是子类化一个UIView并赋予绘制自己的能力。当一个UIView需
转载
2024-05-15 01:42:19
146阅读
续写iOS 面试题及答案20道1~20(一)iOS 面试题及答案20道21~40(二)41.谈谈对OC和Swift动态特性的理解runtime其实就是OC的动态机制。runtime执行的是编译后的代码,这时它可以动态加载对象、添加方法、修改属性、传递信息等。具体过程是,在OC中,对像调用方法时,如[self.tableview reload],经历了两个过程。编译阶段: 编译器会将OC代码翻译成o
转载
2023-08-15 22:30:45
3405阅读
1.什么情况下用分类?分类的优缺点?分类怎么用属性?关联对象的原理?关联策略?分类怎么实现一个weak属性?2.消息发送流程?消息转发流程?runtime的用处?3.直播分辨率,码率,帧率,花屏原因,卡顿原因4.启动时长优化?包体积优化?5.runloop与线程,runloop与autoreleasepool, runloop与定时器,runloop原理,6.weak应用场景(delegate,x
转载
2023-06-01 13:08:02
174阅读