自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 iOS多线程的那些事

多线程的执行原理CPU同一时间只能处理一个线程,只有一个线程在执行。多线程“同时“执行 是CPU快速的在多个线程之间的切换.CPU执行速度较快,导致CPU调度线程的时间足够短,造成同时执行的假象。线程会提高程序执行的效率,但并不是线程数量越多越好,线程过多会导致CPU之间频繁的切换,消耗大量的资源。iOS多线程的技术方案GCD介绍1、什么是GCD全称:Grand Central Dispatch纯C语言,提供非常多强大的函数库2、GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案

2020-09-02 17:04:18 139

原创 UITableView的那些事

UITableView是什么:1、UITableVIew是最常用的UI控件,基本各大APP都是基于tableview的设计。2、UITableView经常用于列表展示,然后自定义cell类型来适用不同功能。UITableView的故事:UITableView的创建:第一步:遵守代理和数据源协议@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>第二步:创建一个UITableViewsty

2020-08-06 20:19:52 559

原创 Block的那些事

Block是什么1、block是一种数据类型,所以我们可以声明一个block类型的变量2、block类型的变量专门用来存储一段代码,这段代码可以有参数,可以有返回值Block的故事UIButton就像是一件衣服,一般人会直接不加修饰的穿上,可以实现它作为一件衣服的功能,但是不能突显它真正的漂亮。优秀的人根据自己的理解,进行部门的修改并且还搭配一些小饰品,穿出来的就不仅仅是一件衣服,更像是艺术品。UIButton可以简单用也可以复杂用,关键看你怎么用。Block的声明方法:block的声明: 必

2020-08-04 14:59:13 211

原创 UIButton的故事

UIButton是什么UIButton是OC编程语言中很普通的一种控件,就是按钮,它可以实现作为一个按钮应该有的功能,我们往往会通过对按钮的一些属性进行修改以达到美观且功能强大目的。UIButton的故事UIButton就像是一件衣服,一般人会直接不加修饰的穿上,可以实现它作为一件衣服的功能,但是不能突显它真正的漂亮。优秀的人根据自己的理解,进行部门的修改并且还搭配一些小饰品,穿出来的就不仅仅是一件衣服,更像是艺术品。UIButton可以简单用也可以复杂用,关键看你怎么用。提前准备工作:声明一个U

2020-08-03 19:26:35 185

原创 Masonry的故事

提前准备工作:创建一个UIView,背景颜色设置成黑色,添加到self.view中UIView* view = [[UIView alloc]init];view.backgroundColor = [UIColor blackColor];[self.view addSubview: view];约束类型:尺寸width、height、size[view mas_makeConstraints:^(MASConstraintMaker *make) { //1、

2020-07-29 15:58:17 111

转载 【C/C++】秋/春招技术岗面试基础——cosnt和define

C和C++中const的区别C中的constC语言中的const只是让变量变为只读属性,其本质还是变量,不是真正意义上的常量(只有enum枚举定义的才是常量).注意:const变量不能被直接赋值,但是可以通过指针来修改const变量.由于const局部变量会存在栈里,而const全局变量会存在只读存储内存上所以我们可以通过指针来修改const局部变量,但是修改const全局变量,会使程序...

2020-03-06 02:56:27 108

原创 【面经】秋/春招技术岗面试基础——对称加密与非对称加密

对称加密指的就是加、解密使用的同是一串密钥,所以被称做对称加密。对称加密只有一个密钥作为私钥。常见的对称加密算法:DES,AES等。DES加密原理非对称加密指的是加、解密使用不同的密钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。反之,私钥加密的信息,只有公钥才能解密。最常用的非对称加密算法:RSA对称加密的优缺点对称加密相比非对称加密算法来说,加...

2020-03-05 00:59:10 168

原创 【面经】秋/春招技术岗面经——死锁

死锁的定义死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁产生的根本原因系统资源不足进程推进顺序不当死锁的四个必要条件1、互斥条件:进程在运行中对资源进行排他性使用,即一个资源仅能被一个进程使用,此时其他进程请求资源...

2020-03-05 00:41:08 158

转载 【面经】秋/春招技术岗面试基础——HTTP1.0和HTTP1.1和HTTP2.0的区别

1 HTTP1.0和HTTP1.1的区别1.1 长连接(Persistent Connection)HTTP1.1支持长连接和请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启长连接keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。HTTP1.0需要使用keep-alive参数来告知服务...

2020-03-04 01:12:59 335

原创 【C/C++】秋/春招技术岗面试基础——C++的指针和引用

C++ 引用 vs指针引用很容易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间被初始化。解析本质:(引用是别名,指针是地址)1、不存在指向空值的引用这个事实,意味着使用引用的代码效率比使用指针的要高。因为在使用引用...

2020-03-04 00:45:30 132

原创 【C/C++】秋/春招技术岗面试基础——深浅拷贝

c++的拷贝方式、介绍了深浅拷贝的区别先看一下下面的代码(C++、Vc6.0)一个person类, 一个构造函数、一个析构函数、一个char * 成员变量,一个 int成员变量。构造函数:len是字符串的长度,然后为指针p分配内存空间,长度为len+1,1是为了字符串末尾的/0,然后strcpy进行字符串拷贝析构函数:当该类执行结束,收回内存空间是,判断指针指向是否为空,不为空则释放掉内存...

2020-03-04 00:26:35 113

原创 【C/C++面经】秋/春招技术岗面试基础篇-智能指针

1.智能指针定义:智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针。智能指针的类都是栈上的对象,所以当函数(或程序)结束时会自动被释放。智能指针的作用:智能指针的作用是防止忘记调用delete释放内存和程序异常的进入catch块忘记释放内存。另外指针的释放时机也是非常有考究的,多次释放同一个指针会造成程序崩溃(浅拷贝),这些都可以通过智能指针来解决。常用的...

2020-03-03 23:40:16 575

原创 【Linux】软连接与硬链接

看前须知:引入链接的原因:为解决文件的共享使用文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据> (metadata)。用户数据,即文件数据块 (data> block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux> 中,元数据中的 inode 号(inod...

2020-02-28 02:34:10 177

原创 【Linux】用户和用户组管理

本文介绍指令功能useradd添加新的用户账号userdel删除账号usermod修改账号passwd修改密码groupadd增加一个新的用户组groupdel删除一个已有的用户组groupmod修改用户组的属性newgrp切换用户组1、useradd添加新的用户账号使用useradd 选项 用户名-c...

2020-02-28 02:03:43 110

原创 【Linux】文件权限的表示和修改

文件基本属性的表示#ls -l(列出目录命令,包含文件的属性和权限)dr-xr-xr-x 2 root root 4096 Dec 14 2012 bindr-xr-xr-x 4 root root 4096 Apr 19 2012 boot1、在Linux中第一个字符代表这个文件是目录、文件或链接文件等等当为[ d ]则是目录当为[ - ]则是文件若是[ l ]则...

2020-02-28 01:41:50 471

原创 【Linux】vi/vim工作模式

什么是vimVim是从 vi 发展出来的一个文本编辑器。vim/vim的使用vi/vim 共分为三种模式命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)命令模式用户刚刚启动 vi/vim,便进入了命令模式。以下是常用的几个命令:i/o/a   切换到输入模式,以输入字符。x     删除当前光标所在处的字符...

2020-02-27 01:42:13 284

原创 【Linux】查看文件内容指令

指令功能cat由第一行开始显示文件内容tac从最后一行开始显示nl显示的时候,顺便输出行号more一页一页的显示文件内容less同more,但它可以往前翻页head只看头几行tail只看尾巴几行详解1. cat由第一行开始显示文件内容cat [-AbEnTv]-A :相当於 -vET 的整合选项,可列出一些特殊...

2020-02-27 01:21:58 180

原创 【Linux】文件与目录的基本操作

1. ls列出文件或者目录的信息,目录的消息就是其中包含的文件。#ls [ - aAdfFhilnrRSt] file | dir-a : 列出全部文件-d :仅列出目录本身-l :以长数据串列出,包含文件的属性和权限等数据2. cd更换当前目录。cd [相对路径或者绝对路径]3. mkdir创建目录。#mkdir [- mp] 目录名称-m...

2020-02-26 01:46:33 193

原创 【排序算法 二】冒泡选择插入希尔归并排序算法(C++)

各种排序算法的思想不在详细介绍,直接看代码(不唯一)文章底部有各种排序算法的时间复杂度冒泡排序算法void bubble_sort(int arr[],int len)//len为数组a的元素个数{ int i,j,temp; //一定进行len-1轮比较 for (i=0;i<len-1;i++) //每一轮比较前len-1-i个,即已排序好的最后i个不用进行比较 ...

2020-02-25 15:19:07 129

原创 【排序算法 一】快排算法-递归(C/C++)

快速排序算法的思想快速排序是对冒泡排序的改进,它使用分治法的思想,每次循环根据指定的基准数,将其他元素分别放置其左右(升序排序,大的放右小的放左),第二次循环,以基准数为中心,分为左右两部分,每部分再通过新的基准数排序…(不做具体举例说明,直接分析时间复杂度然后粘贴代码)快速排序算法的时间/空间复杂度排序n个项目要比较O(n log n)次比较在最优的情况下,快速排序算法的时间复杂度...

2020-02-25 13:09:32 380

原创 【史上最详】Web页面的请求过程

1.DHCP配置主机信息假设主机最开始没有IP地址以及其他信息,那么就需要先使用DHCP获取IP地址。主机生成一个DHCP请求报文,并将报文放入具有目的端口67和源端口68的UDP报文段中,报文段加上头部尾部放在目的IP(255.255.255.255)和源IP(0.0.0.0)的广播IP数据报中。该数据包再加上相应的头部尾部放置在MAC帧中,帧的目的MAC (FF:FF:FF:FF:FF:...

2020-02-24 00:55:04 184

原创 【操作系统】进程、线程、程序的概念与区别

进程定义:可并发执行的程序在数据集上的一次动态执行过程。线程定义程序执行的最小的单位。一个进程可以有多个线程,他们共享进程的资源。程序定义程序是指令的有序集合。进程和线程的区别拥有资源进程是资源分配的基本单位,但线程不拥有资源,线程可以访问隶属进程的资源。调度线程是独立调度的基本单位,在同一进程内,线程的切换不会引起进程的切换,从一个进程中的线程切换到另一个进程中的线...

2020-02-20 23:47:18 277

原创 【传输层】TCP的三次握手与四次挥手

TCP的三次握手假设 A 为客户端,B 为服务器端。首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号y。A 收到 B 的连接确认报文后,还要向 B 发出确认,...

2020-02-19 01:24:04 90

原创 【传输层】TCP和UDP的特点和区别

UDP和TCP的特点用户数据报协议UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文,支持一对一、一对多、多对多的交互通信。传输控制协议TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流,只支持一对一(点对点)的通信。UDP首部格式首部...

2020-02-19 01:16:07 401

原创 GET和POST比较

作用GET用于获取资源POST用于传输实体主体参数GET的参数是以查询字符串出现在URL中POST的参数存储在实体主体中。安全性安全的HTTP方法不会改变服务器状态,也就是说它是可读的。GET方法是安全的POST方法不是安全的幂等性幂等的HTTP方法,同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。换句话说就是,幂等方法不应该就有副...

2020-02-19 00:15:50 137

原创 HTTP和HTTPS的区别

HTTP有一下安全性问题:使用明文进行通信,内容可能会被窃听验证通信方的身份,通信方的身份有可能遭遇伪装无法证明报文的完整性,报文有可能遭篡改HTTPS并不是新协议,而是让HTTP先和SSL(Secure Sockets Layer)通信,再由SSL和TCP通信,也就会说HTTPS使用了隧道进行通信。通过使用SSL,HTTPS具有了加密(防窃听)、认证(防伪装)、和完整性保护(防篡改...

2020-02-18 23:54:55 158

原创 Cookie

定义HTTP 协议是无状态的,主要是为了让 HTTP 协议尽可能简单,使得它能够处理大量事务。HTTP/1.1 引入 Cookie 来保存状态信息。Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带上,用于告知服务端两个请求是否来自同一浏览器。由于之后每次请求都会需要携带 Cookie 数据,因此会带来额外的性能开销(尤其是在移动环...

2020-02-18 00:15:26 105

原创 HTTP响应状态码说明详解(Response Status Code)

不多说,直接看内容(加黑为重点哦)100——信息类100继续请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分。101切换协议请求者已要求服务器切换协议,服务器已确认并准备切换。200——成功类200成功服务器已成功处理了请求。(OK)201已创建请求成功并且服务器创建了新的资源。(Created)202已接受服务器已接受请求,但尚未处理。(Accepted)203...

2020-02-15 16:16:35 2697

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除