自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 点击一张图片,到最后渲染到屏幕,都经历了哪些流程?

读取的图片数据通常是压缩格式(如JPEG、PNG),需要解码成像素数据(位图-bitmap)。为了保证流畅的用户体验,iOS会进行一系列优化,如异步加载图片、使用CATiledLayer来分块加载大图片、使用UIImage的draw方法进行自定义渲染等。5.颜色空间转换:将解码后的图像数据从文件的颜色空间(如YCbCr或索引颜色)转换为显示设备的颜色空间(通常是RGB)。iOS系统会自动管理图片的内存使用,特别是当内存紧张时会释放不再使用的图片缓存。4.数据解码:将压缩或编码的图像数据解码为原始像素数据。

2024-06-09 14:24:41 1077

原创 Git分支管理(Git分支的原理、创建、切换、合并、删除分支)

在上一篇文章中,我们学习了如何使用Git的一些基本操作,例如安装Git、创建本地仓库、配置Git、添加文件、修改文件、删除文件、版本回退等操作,现在我们来学习一下Git的必杀技特性:分支模型。

2024-03-10 23:04:54 3255

原创 Git的基本操作(安装Git,创建本地仓库,配置Git,添加、修改、回退、撤销修改、删除文件)

这篇文章主要介绍了Git的一些基本操作,安装Git,创建本地仓库,配置Git,git add 和 git commit 文件,对文件进行修改,版本回退,以及如何撤销修改和删除文件,让我们对Git有初步的了解,能进行简单的版本管理。

2024-03-10 01:09:35 2732

原创 STL中push_back和emplace_back效率的对比

我们以STL中的vector容器为例。

2024-03-07 16:38:51 700

原创 什么是AJAX?它的运用场景有哪些?

AJAX 即 Asynchronous Javascript And XML(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。它可以令开发者只向服务器获取数据(而不是图片,HTML文档等资源),互联网资源的传输变得前所未有的轻量级和纯粹,这激发了广大开发者的创造力,使各式各样功能强大的网络站点,和互联网应用如雨后春笋一般冒出,不断带给人惊喜。Ajax是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助。

2024-03-05 23:02:03 2563

原创 为什么有了HTTP协议,还要有WebSocket协议?

TCP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。

2024-03-05 22:28:27 798

原创 7层OSI网络模型中每一层的作用

本文主要介绍了7层OSI网络模型中每一层的作用

2024-03-04 10:43:20 391

原创 从浏览器输入一个URL后到底发生了什么?(总结自《网络是怎样连接的》)

从浏览器输入一个URL后到底发生了什么呢?浏览器向Web服务器发送请求,接收来自服务器的响应并将内容展现在浏览器中。但是这样的回答并不能体现出中间的重要过程,而这些过程会覆盖到计算机网络大部分的知识,所以我们对于这个问题回答的深度,体现了我们对计算机网络功力的深厚。而在互联网公司的面试中,也经常会通过这个问题来考察我们对网络的掌握情况。接下来我们便通过《网络是怎样连接的》一书中的思路来解答这个问题!!

2024-03-04 00:38:45 1164

原创 HTTPS的加密过程

什么是HTTPS?超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。具体介绍以前先来介绍一下以前常见的HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文,因此使用HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯,而HTTPS占用443端口通讯。

2024-02-29 00:43:32 1256

原创 你真的了解Cookie和Session吗?

HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。什么是 CookieHTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。

2024-02-28 22:48:47 919

原创 HTTP详解(HTTP的特点,状态码,工作原理,GET和POST的区别,如何解决无状态通信)!!!

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系、统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

2024-02-28 21:33:25 1207

原创 MySQL 可重复读隔离级别,完全解决幻读了吗?

在mysql隔离可重复读级别中,针对快照读,用到了MVCC的方式解决幻读,针对当前读,用到了next-key lock解决幻读,但还有一些场景仍有幻读问题,这篇文章便是探讨这个问题!

2024-02-01 21:32:10 1677

原创 一篇文章带你弄懂MySQL事务!(事务特性ACID、并发读的问题、事务的隔离等级、Read View 原理、可重复读和读提交分别怎么工作)

这篇文章介绍了什么是事务,以及事务的原子性、一致性、隔离性、持久性,并介绍了4种隔离等级,并介绍了快照(Read View)的原理,然后用具体实例分析了可重复读和读提交的工作过程!

2024-02-01 17:09:02 1103

原创 MYSQL用户、权限管理(如何创建用户,给用户授权,远程登录)

MySQL的权限简单的理解就是MySQL允许你做你权利以内的事情,不可以越界。MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库中,由mysql_install_db脚本初始化。存储账户权限信息表主要有:user、db、tables_priv、columns_priv、procs_priv、proxies_priv这六张表(5.6版本之前还有host表,现在已经把host内容整合进user表)

2024-02-01 09:54:13 3993

原创 MYSQL视图特性

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。通过视图,可以展现基表的部分数据。而用来创建视图的表叫做基表 :base table。

2024-01-30 13:01:13 535

原创 一篇文章带你弄懂mysql的索引!(详解为什么有索引、b+树更适合做索引、索引操作、MyISAM和InnoDB索引实现)

这篇文章介绍了索引的作用,用在海量数据中查找作为实列,带我们看到了索引对查找效率的提示,然后介绍了mysql和磁盘的交互方式,探索了索引底层结构用什么实现效率更高,然后解释了索引操作,并且介绍了MyISAM和InnoDB的实现索引实现!

2024-01-30 09:40:50 778

原创 MYSQL内外连接

我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。如果联合查询,左侧的表完全显示我们就说是左外连接。如果联合查询,右侧的表完全显示我们就说是右外连接。

2024-01-29 15:45:43 507

原创 MYSQL复合查询(多表查询、自连接、子查询、union、union all)

这篇文章介绍了MYSQL的复合查询,包括多表查询、自连接、子查询、union、union all,用具体的实例来介绍了它们的用法

2024-01-29 15:25:06 876

原创 MYSQL内置函数

MySQL的内置函数不但可以在SELECT查询语句中应用,同样也可以在INSERT、UPDATE和DELECT等语句中应用。例如,在INSERT添加语句中,应用日期时间函数获取系统的当前时间,并且将其添加到数据表中。

2024-01-28 20:15:41 273

原创 MYSQL中group by分组查询的用法详解(where和having的区别)!

这篇文章主要介绍了MYSQL中分组查询 group by的用法,用具体实例介绍了其特性,并比较了where 和 having的区别!

2024-01-28 19:38:01 1171

原创 MYSQL基本查询(CURD:创建、读取、更新、删除)

本文主要介绍了MYSQL中常见的CURD操作:创建,读取,更改,删除,并利用了大量了例子来帮助我们去理解这些操作及用法!

2024-01-28 17:46:41 776

原创 MYSQL表的约束详解!

本文介绍了MSYQL中常见的约束:对于字段的描述,有时候需要一些特定的约束来满足逻辑,在文章中详细探讨了主键约束,唯一键约束,外键约束,默认值,非空约束等常见场景,并附带了实例介绍其用法!

2024-01-27 19:10:33 1002

原创 MYSQL数据类型(数值,字符串,时间)

本文介绍了mysql的数据类型,包含整数、浮点型、字符、日期、enum、set,介绍了它们的特定和用法!

2024-01-27 16:55:23 692

原创 MYSQL库和表的操作(修改字符集和校验规则,备份和恢复数据库及库和表的增删改查)

文章介绍了MYSQL中库和表的增删查改,介绍了字符集和校验规则的修改,以及校验规则对数据库的影响,还介绍了如何备份数据库,恢复数据库。

2024-01-27 15:01:29 1674

原创 什么是SQL,什么是MYSQL?MYSQL的架构以及SQL执行语句的过程是什么?有哪些数据库的类型?一篇文章带你弄懂!

数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。在现实中,数据、DBMS 及关联应用一起被称为数据库系统,简称为数据库。目前几乎所有的关系数据库都使用 SQL 编程语言来查询、操作和定义数据,进行数据访问控制。SQL 最初于 20 世纪 70 年代由 IBM 开发,当时 Oracle 是一个主要的贡献者,这推动了 SQL ANSI 标准的实施,而 SQL 的兴起也刺激了 IBM、Oracle 和 Microsoft 等公司开始全面扩张。

2024-01-27 11:21:39 2064

原创 C++强制类型转换

将类型名作为强制类型转换运算符的做法是c的老式做法,c++为保持兼容而予以保留。转换太过随意,可以在任意类型之间转换。没有统一的关键字和标示符。对于大型系统,做代码排查时容易遗漏和忽略。C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换。强制类型转换关闭或挂起了正常的类型检查,每次使用强制类型转换前,程序员应该仔细考虑是否还有其他不同的方法达到同一目的,如果非强制类型转换不可,则应限制强制转换值的作用域,以减少发生错误的机会。强烈建议:避免使用强制类型转换。

2024-01-22 22:37:45 975

原创 特殊类的设计(含单例模式)

一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息,这种方式简化了在复杂环境下的配置管理。

2024-01-22 21:47:17 1151

原创 详谈c++智能指针!!!

C/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念。这里不置贬褒,手动分配内存与手动释放内存有利也有弊,自动分配内存和自动释放内存亦如此,这是两种不同的设计哲学。有人认为,内存如此重要的东西怎么能放心交给用户去管理呢?而另外一些人则认为,内存如此重要的东西怎么能放心交给系统去管理呢?

2024-01-22 17:04:38 1241

原创 c++中的包装器 function

C++提供了多个包装器(wrapper,也叫适配器adapter)。这些对象用于给其他编程接口提供更一致或更合适的接口。bind1st和bind2ed就是两个适配器,它们让接受两个参数的函数能够与这样的STL算法匹配,即它要求将接受一个参数的函数作为参数。模板bind可替代bind1st和bind2nd,但更灵活;模板mem_fn让我们能够将成员函数作为常规函数进行传递;模板让我们能够创建行为像引用但可被复制的对象;包装器function让我们能够以统一的方式处理多种类似于函数的形式。

2024-01-21 23:35:33 400

原创 右值引用和move语义

我们可以通过右值引用来实现移动拷贝和移动赋值提高效率,移动构造本质是将参数右值的资源窃取过来,占为已有,那么就不用做深拷贝了。但是左值引用也有它的局限,当函数返回对象是一个局部变量,出了函数作用域就不存在了,就不能使用左值引用返回;函数位于头文件中,该函数名字具有迷惑性,它并不搬移任何东西,唯一的功能就是将一个左值强制转化为右值引用,然后实现移动语义。

2024-01-21 22:17:01 924

原创 七大排序(含快排+归并的递归版和非递归版)

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。数据元素全部放在内存中的排序。数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

2024-01-15 18:42:41 1280 2

原创 对Linux线程的理解(什么是线程,线程的创建终止等待分离,线程互斥,Linux常见的锁,线程同步),两万字总结,有这一篇文章就够了!

什么是线程,线程的创建、终止、等待、分离,线程互斥,Linux常见的锁,线程同步

2023-10-29 15:23:42 324

原创 一篇文章带你彻底弄懂Linux中的信号

Linux系统共定义了64种信号,分为两大类:可靠信号与不可靠信号,前32种信号为不可靠信号,后32种为可靠信号。本文详细介绍了从信号的产生,到捕捉过程,最后如何被递达的整个过程。

2023-10-26 16:06:57 785

原创 进程间通信(匿名管道、命名管道、消息队列、共享内存、信号量、信号、Socket)

本文主要介绍了进程间通信的几种方式,包括匿名管道,命名管道,消息队列,共享内存,信号量,信号,Socket

2023-10-26 12:38:19 276

原创 Linux文件系统、文件I/O和动静态库

本文详细介绍了Linux的文件系统,以及文件IO操作,并实现了一个简单的动静态库

2023-10-25 17:40:58 162

原创 认识环境变量和进程替换,实现一个简易的shell

首先,在百度百科中,环境变量的解释是这样的:环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

2023-10-25 00:26:15 136

原创 进程状态和进程优先级

本文介绍了Linux中进程的几种状态,以及出现的情况,包括僵尸进程,孤儿进程,并介绍了进程的优先级

2023-10-24 16:13:40 75

原创 进程是什么以及进程是如何创建的(了解fork系统调用的过程)

首先程序的本质其实就是文件,该文件可以被永久性的存放在磁盘当中,一个加载到内存中的程序,我们就称之为进程,在windows下我们可以看到许多进程,包括正在运行的和后台运行的进程:在深入理解进程创建之前,我们先来看一下进程的数据结构。在 Linux 中,是用一个 task_struct 来实现 Linux 进程的(其实 Linux 线程也同样是用 task_struct 来表示的,这个我们以后文章单独再说)。

2023-10-24 14:11:50 105

原创 谈谈函数指针,仿函数(函数对象)和lambda函数

本文主要介绍函数指针,仿函数和lambda的用法和原理,以及优缺点

2023-10-17 00:17:40 462

原创 一篇文章带你弄懂c++多态

C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。在继承中要必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写

2023-10-16 15:42:17 56

空空如也

空空如也

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

TA关注的人

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