- 博客(51)
- 收藏
- 关注

原创 HTTP常见状态码和HTTP的发展
HTTP状态码是服务器返回响应结果的一个标识,告诉客户端请求的处理情况,一般分成以下几类:(其中红色的是常见的几个状态码),即请求和响应仍是串行处理,一个请求完成后才能处理下一个请求。,请求完成后会立即关闭,导致大量的连接创建和关闭,性能较差。(由UDP构建的新的传输层协议),可提供低延迟和高性能,,减少了冗余头部带来的开销,尤其是重复的头部字段,可。,即同一个TCP连接可以承载多个请求和响应,同时。,多个请求可以复用同一个TCP连接,但。,即服务器可以主动的给客户端推送资源,,不需要单独配置HTTPS,
2025-02-20 17:31:50
533

原创 iOS App的启动与优化
• 动态链接器 dyld 负责加载应用的可执行文件及其依赖的动态库。此时,系统将会做如下工作:• 查找应用的可执行文件和动态库• 将它们加载到内存中• 进行符号解析和绑定• 执行初始化函数(如 +load 方法和静态构造函数)
2025-02-18 21:29:26
1459
2

原创 MYSQL数据库——InnoDB存储引擎
Change Buffer 针对于非唯一二级索引页,在执行DML语句时,如果这些数据Page没有在Buffer Pool中,不会直接操作磁盘,而会将数据变更存在更改缓冲区(Change Buffer)中,在未来数据被读取中,再将数据合并恢复到Buffer Pool中,再将合并后的数据刷新到磁盘中。在磁盘中,InnoDB 存储引擎将 数据、索引、表结构和其他缓存信息等 存放的空间称为 表空间(Tablespace),它是 物理存储中的最高层,由 段Segment、区Extent、页Page、行Row 组成。
2024-09-11 23:42:16
1452

原创 计算机网络第三章——数据链路层
数据链路层是计算机网络中的一层,位于网络协议栈的第二层。它的主要任务是在物理层提供的传输介质上实现可靠的数据传输,并为网络层提供一个透明的通信通道。数据链路层通过封装数据成为帧(Frame),在网络节点之间传递和管理这些帧。:链路是指从一个节点到相邻节点的一段物理线路,中间无任何节点。:把实现控制数据运输的协议的硬件和软件加到链路上,功成数据链路。注:网卡和其相应的软件驱动程序实现了这些协议,一般都包含物理层和数据链路层的功能。:数据链路层对等实体间在水平方向进行逻辑通信的协议数据单元(PDU)
2023-12-31 13:19:40
1839
原创 数据结构——链表
链表是一种常见的线性数据结构,由一系列的节点组成,每个节点由两部分组成:数据域和指针域。数据域用于存储节点的数据,而指针域用于指向下一个节点,从而形成一系列的连接。
2025-01-05 18:20:23
1247
原创 离屏渲染概述
我们知道,图像的处理基本都是在GPU中进行,然后GPU将渲染的结果放入当前渲染屏幕的帧缓冲区中,视频控制器取出里面的内容,在屏幕上进行显示。那么有没有什么情况,会因为某些限制,GPU无法将全部的渲染结果直接写入帧缓冲区呢?
2024-12-11 23:32:44
816
原创 iOS渲染概述
我们在使用UIVIew,Image等组件的时候,是怎么一步步渲染到屏幕上的呢?动画又是怎么实现的?这里我们先了解几个概念:1.CPU:CPU主要负责的是逻辑运算,如图像的布局,文本的计算和排版,图片格式的转换和解码,图像的绘制等。2.GPU:GPU主要负责图片渲染的运算,它可以把CPU计算好的显示内容进行纹理渲染,然后把渲染后的内容放入Frame Buffer(帧缓存区)。
2024-12-11 21:05:12
1174
原创 Runloop
Runloop是一种事件循环机制,用来循环的处理线程中的事件,当Runloop启动时,如果线程中有事件,它就会调用方法来处理该事件,如果没有事件,就会进入休眠,等该线程中有事件需要处理时才会被唤醒。
2024-12-10 00:03:22
777
原创 Runtime
iOS中的Runtime机制是OC和Swift的一种动态特性,它允许应用在运行时动态地创建类对象和实例对象,并通过消息传递和转发来实现方法的调用。
2024-12-05 23:46:16
1088
原创 控制访问权限
privateSwift中的控制访问权限有5种,分别是如果我们没有写访问权限关键字时,默认的访问权限是intelnalprivate仅在当前定义的作用域有效。:仅在当前定义的源文件中有效Intelnal:默认的访问权限,可以被定义模块中的任意源文件访问,但不可以被该模块外的任何源文件访问public:开放式的访问,能够在定义的模块中任何源文件中访问open:最不受限制的访问级别,可以在任何地方、任何模块间被继承或重写private。
2024-12-03 23:16:19
718
原创 KVC&KVO
KVC意思是键值编码,是一种可以通过键名来访问对象属性的机制,也可以对属性进行赋值,包括私有属性,由于KVC的定义是对OC中的NSObject的扩展进行实现的,所以如果要使用KVC机制,那么这个类需要继承NSObject,同时属性需添加@objc关键字。在上面的示例中,name和age变量的用了@objc修饰,所以可以通过KVC机制对这两个变量进行读写,而_name没有@objc关键字修饰,则不能通过KVC机制进行读写。
2024-12-03 19:57:14
1021
原创 iOS——MVC、MVP、MVVM
MVC模式是将应用程序分成三个部分的一种架构模式,一般分为:Model(模型),View(视图),Controller(控制器)。三者关系如图:MVC的优缺点:优点:能提高开发效率,减少冗余代码缺点:会出现大量代码堆积在ViewController中对Model层的误解、误用:很多人把Model理解成只是单独的数据模型,比如上面示例中只定义了几个字段,但Model层正确定义是业务模型层,就是所有业务数据以及数据逻辑都应该在Model层中。
2024-11-29 23:23:12
1535
原创 Swift——自动引用计数ARC
ARC是swift使用的一种管理应用程序内存的机制,对于C语言我们知道,当我们申请一块空间,通常需要手动释放,不然会造成空间浪费,而有了ARC机制,你无需考虑内存的管理,因为ARC会在类的实例不再被使用时,自动释放内存空间。ARC通常适用引用类型,比如类。
2024-11-27 23:57:12
539
原创 Swift——单例模式
单例是软件设计常用的一种模式,它的核心结构中只有一个被称为单例的特殊类,通过单例模式可以保证应用该模式的类只有一个实例化对象,其作用就是能够使类中的一个对象成为系统中的唯一实例。这种方式的好处是确保了单例的唯一性,避免了单例被重新赋值的风险。这对于单例模式非常有用,因为它可以延迟对象的初始化,直到真正需要使用该对象时才进行加载,从而节省资源。还有一点原因就是类的构造器已经设置为私有,意味着你不可以在类的外部创建实例对象,如果不用static修饰的话,你的单例对象是无法被访问的。
2024-11-27 20:14:45
925
原创 类的构造器继承与重写
Swift中的类的构造过程分两个阶段,第一个阶段主要是对类中属性进行初始化,第二阶段是在实例对象准备使用对象前进一步自定义存储属性。。必须遵守的四大规则:第一阶段:调用类的指定构造器或者便利构造器。对类的实例对象进行内存分配,但内存未被初始化(不能通过self访问)调用的构造器保证类中引入的相关属性都已经初始化,属性所属内存也完成分配。构造器向上切换到父类构造器,对父类存储属性完成跟子类一样的任务。不断往上层切换,直到最顶端。此时所有存储属性都已初始化,实例内存也完成初始化,该阶段完成。
2024-11-26 21:19:59
552
原创 Swift——类与结构体
在swift的标准库中,大部分的类型都是结构体,比如:Int,Double,String,Array,Dictionary等等,它们都是结构体。
2024-11-26 19:13:08
1483
原创 计算机网络第五章——传输层
数据链路层以及网络层共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机与主机之间的通信。而传输层的任务就会是传输层是主机才有的层次。
2024-09-24 14:18:20
1125
原创 error:Framework ‘Pods_xxx‘ not found解决方法
报错“Framework Pod_xxx.framework找不到”通常意味着你的项目正在尝试链接或使用一个名为。1.点击项目蓝色图标,在左侧Target部分,点击你当前的项目。的框架,但是这个框架并没有被正确地添加到项目中。
2024-09-13 21:53:30
1946
原创 iOS开发----轮播图实现
()return pc}()在代理方法的第二个实现方法里我们所使用的cell是自定义的,这里的cell是UICOllectionViewCell轮播图3-CSDN直播。
2024-09-13 21:31:02
2433
原创 MySOL数据库进阶篇——存储引擎
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,不是基于数据库的,所以存储引擎也被称为表类型。常见的MySQL存储引擎包括以下几种:1.InnoDB存储引擎InnoDB存储引擎是MySQL中最常用的一个存储引擎,也是默认的存储引擎。它支持ACID事务,具有行级锁定和外键约束等特性,适合于应用于事务性和高并发的应用程序。InnoDB支持数据的热备份和恢复,并提供了高效的缓存机制。2.MyISAM存储引擎MyISAM不支持事务,并且对于更新操作会锁定整个表,但是在。
2024-09-12 15:58:42
1064
原创 MySQL数据库基础篇——事务
事务就是由单独单元的一个或多个sql语句组成,在这个单元中,每个sql语句都是的。而整个单独单元是作为一个的整体存在。往通俗的讲,事务就是一个整体,里面的内容要么都执行成功,要么都不成功。不可能存在部分执行成功而部分执行不成功的情况。对于MySQL存储引擎,Innodb支持事务,而myIsam等不支持事务。
2024-09-12 15:58:12
517
原创 MYSQL数据库基础篇——多表查询
所以在多表查询中,我们往往需要消除笛卡尔积。我们可以给多表查询加上连接查询的条件即可。2.外连接:左外连接:查询左表所有数据,以及两张表交集部分数据;右外连接:查询右表所有数据,以及两张表交集部分数据。顾名思义,即可以多张表一起查询,只需在select查询语句后面添加多张表名即可。这是因为多表查询得到的是多表组合的集合,这种现象称为笛卡尔积。3.自连接:当前表与自身的连接查询,自连接必须使用表别名。实现: 在多的一方建立外键,指向一的一方的主键。1.内连接:相当于查询A、B交集部分数据。
2024-09-11 23:48:25
462
原创 MYSQL数据库基础篇——DDL
DDL:DDL是数据定义语言,用来定义数据库对象。输入;得到结果:输入;例如执行下面语句:输入然后展示数据库即可得到结果:注意:创建的数据库名必须与已创建的数据库不同名,不然会报错。如果在数据库名称前加上if not exists可以不报错,也不会创建。当然,也可以在创建的数据库名后面添加数据库默认字符集,例如:输入:[]里面的表示可以省略。输入:然后我们输入:可以查询当前使用的数据库:例如:例如:例如:例如:例如为上述的test表中添加date类型的time,注释为“考试时间”:例如:在上述建表中,用到了
2024-09-11 23:46:14
1629
原创 MYSQL数据库基础篇——MYSQL的安装与使用
mysql -u表示用于登录的用户名,后面的root就是用户名称,之前讲到,安装mYSQL时默认用户名是root,-p表示指定密码,即登录密码。首先打开命令提升符,并输入net start mysql80可以启动,输入net stop mysql80可以停止。这里选择第一个,当然,有可能你的版本下的MYSQL并没有这个选项,那么我们可以选择。注意:如果报以下错误,则可以尝试通过管理员的方式打开命令提示符进行操作。输入mysql -u root -p,然后输入密码就好了。然后显示下面的界面说明连接成功了;
2024-09-11 23:45:23
664
原创 MYSQL数据库进阶篇——视图
视图是一种虚拟的表,视图中的数据并不在数据库中真实存在,也就是说,视图只保存查询的sql逻辑,不保存查询结果。1.语法2.检查使用with check option子句创建视图时,MYSQL会检查正在更改的每一行(增删改),为了符合定义。可以基于另一个视图来创建新视图,MYSQL会检查两个视图的一致性,有两个选项:①CASCADED②LOCAL 默认是①CASCADED:3.视图更新要使视图可更新,视图的行和基础表的行之间必须是一对一的关系,如果包含以下任何一项,视图不可更新
2024-09-11 23:44:16
343
原创 MYSQL数据库进阶篇——存储过程
用户定义变量指用户自己定义的变量,用户变量不用提前声明,直接用“@变量名”使用即可,作用域为当前连接。例如:用户定义的变量不需要声明或初始化,默认为null;例如:3.局部变量局部变量是根据·定义在局部生效的变量,通过declare声明,可用作存储过程内的局部变量和输入参数,范围在begin...end之间。
2024-09-11 23:43:57
2309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人