<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jingfeng514的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jingfeng514</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jingfeng514]]></copyright><item><title><![CDATA[哈希表的概念+实现]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/156112132</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/156112132</guid><author>jingfeng514</author><pubDate>Sun, 21 Dec 2025 13:38:14 +0800</pubDate><description><![CDATA[当关键字的范围比较集中时，直接定址法就是非常简单高效的方法，比如一组关键字都在[0,99]之间， 那么我们开一个100个数的数组，每个关键字的值直接就是存储位置的下标。负载因子越小，哈希冲突的概率越低，空间利用率越低。开放定址法中所有的元素都放到哈希表里，链地址法中所有的数据不再直接存储在哈希表中，哈希表 中存储⼀个指针，没有数据映射这个位置时，这个指针为空，有多个数据映射到这个位置时，我们把这些冲突的数据链接成⼀个链表，挂在哈希表这个位置下面，链地址法也叫做拉链法或者哈希桶。]]></description><category></category></item><item><title><![CDATA[红黑树的实现]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/155949185</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/155949185</guid><author>jingfeng514</author><pubDate>Mon, 15 Dec 2025 21:03:28 +0800</pubDate><description><![CDATA[c 为红，p 为红，g 为黑，u 不存在或者 u 存在且为黑，u 不存在，则 c 一定是新增结点，u 存在且为黑，则c 一定不是新增，c 之前是黑色的，是在 c 的子树中插入，符合情况 1，变色将 c 从黑色变成红色，更新上来的。图2，展示了hb==3的具体情况组合分析，当hb等于2时，这里组合情况上百亿种，这些样例是帮助我们理解，不论情况多少种，多么复杂，处理方式⼀样的，变色再继续往上处理即可，所以我们只需要看抽象图即可。的违规（因为新节点为红色，其他规则均未被破坏），而连续红节点的根源是。]]></description><category></category></item><item><title><![CDATA[MySQL事务管理]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152945800</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152945800</guid><author>jingfeng514</author><pubDate>Tue, 25 Nov 2025 16:35:02 +0800</pubDate><description><![CDATA[事务就是一组DML语句组成，这些语句在逻辑上存在相关性，这一组DML语句要么全部成功，要么全部失败，是一个整体。MySQL提供一种机制，保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。事务就是要做的或所做的事情，主要用于处理操作量大，复杂度高的数据。]]></description><category></category></item><item><title><![CDATA[MySQL复合查询]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152605240</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152605240</guid><author>jingfeng514</author><pubDate>Tue, 25 Nov 2025 16:34:30 +0800</pubDate><description><![CDATA[对员工表进行自连接后，在where子句中指明筛选条件为员工的领导编号等于领导的编号，这时就能筛选出每个员工信息与其领导信息组合形成的记录，进一步指明筛选条件为员工的姓名为FORD，这时便能筛选出员工FORD的信息和他的领导的信息组成的记录。所谓的对多张表取笛卡尔积，就是得到这多张表的记录的所有可能有序对组成的集合，比如下面对员工表和部门表进行多表查询，由于查询语句中没有指明筛选条件，因此最终得到的结果便是员工表和部门表的笛卡尔积。显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号。]]></description><category></category></item><item><title><![CDATA[C++11 智能指针]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/151289519</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/151289519</guid><author>jingfeng514</author><pubDate>Mon, 24 Nov 2025 11:02:36 +0800</pubDate><description><![CDATA[weak_ptr支持expired检查指向的资源是否过期，use_count也可获取shared_ptr的引用计数，weak_ptr想访问资源时，可以调用lock返回一个管理资源的shared_ptr，如果资源已经被释放，返回的shared_ptr是一个空对象，如果资源没有释放，则通过返回的shared_ptr访问资源是安全的。通过这种引用计数的方式就能支持多个对象一起管理某一个资源，也就是支持了智能指针的拷贝，并且只有当一个资源对应的引用计数减为0时才会释放资源，因此保证了同一个资源不会被释放多次。]]></description><category></category></item><item><title><![CDATA[MySQL内置函数]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152603843</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152603843</guid><author>jingfeng514</author><pubDate>Mon, 20 Oct 2025 07:25:21 +0800</pubDate><description><![CDATA[对于多字节字符来说，不同编码中一个字符所占的字节个数是不同的，比如utf8中一个字符占用3个字节，而gbk中一个字符占用2个字节。strcmp函数用于逐字符按照ASCII码比较两个字符串的大小，两个字符串大小相等返回0，前者大返回1，后者大返回-1。现有如下成绩表，要求以“XXX的语文是XX分，数学是XX分，英语是XX分”的格式显示成绩表中的信息。如果在date_add函数中添加的日期/时间为负值，则相当于在日期的基础上减去日期/时间。在查询成绩表中的信息时，使用concat函数按要求进行字符串连接即可。]]></description><category></category></item><item><title><![CDATA[MySQL表的增删改查]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152517234</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152517234</guid><author>jingfeng514</author><pubDate>Wed, 15 Oct 2025 14:21:14 +0800</pubDate><description><![CDATA[在select的column列表中添加表达式查询，查询的表达式为语文、数学和英语成绩之和，为了方便观察可以将表达式对应的列指定别名为“总分”，在where子句中指明筛选条件为三科成绩之和小于200。也就是说，where子句的执行是先于select语句的，所以在where子句中不能使用别名，如果在where子句中使用别名，那么在查询数据时就会产生报错。查询数据时，在where子句中指明筛选条件为姓孙或姓曹（模糊匹配），在select的column列表中指明要查询的列为姓名和数学成绩。]]></description><category></category></item><item><title><![CDATA[ 表的约束]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152463984</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152463984</guid><author>jingfeng514</author><pubDate>Fri, 10 Oct 2025 19:19:06 +0800</pubDate><description><![CDATA[外键约束 = 把现实世界中的“数据关系”和“逻辑规则”交给数据库，让它帮我们。]]></description><category></category></item><item><title><![CDATA[MySQL数据类型]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152460609</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152460609</guid><author>jingfeng514</author><pubDate>Mon, 06 Oct 2025 16:57:52 +0800</pubDate><description><![CDATA[注：MySQL本身是不支持bool类型的，当把一个数据设置成bool类型时，数据库会自动将其转换成tinyint(1)的数据类型，其实这个就是变相的bool类型，因为tinyint(1)只有1和0两种取值，可以分别对应bool类型的true和false。此外，由于MySQL在保存值时会进行四舍五入，因此实际可插入float(4,2)的范围为-99.994~99.994，如果插入的数据不在该范围内，那么插入数据时就会产生报错。如果要存储的数据是变长的，那就使用varchar类型进行存储，比如名字、地址等。]]></description><category></category></item><item><title><![CDATA[ I/O 多路转接epoll]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152229636</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152229636</guid><author>jingfeng514</author><pubDate>Sun, 05 Oct 2025 09:36:00 +0800</pubDate><description><![CDATA[当ET底层缓冲区有数据后，ET只会通知用户进程一次，逼着用户一次要把缓冲区的数据读完，但是用户并不知道缓冲区的数据大小，只能进行循环读取recv，一旦底层缓冲区的数据被读完后，再调用recv如果是阻塞模式就被阻塞了，服务器就会被挂起。struct epoll_event结构中有两个成员，第一个成员events表示的是需要监视的事件，第二个成员data是一个联合体结构，一般选择使用该结构当中的fd，表示需要监听的文件描述符。网络协议栈或驱动层，当某个 fd 上有数据可读、可写或异常时，触发底层的。]]></description><category></category></item><item><title><![CDATA[MySQL-表的操作]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152451246</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152451246</guid><author>jingfeng514</author><pubDate>Sat, 04 Oct 2025 09:39:31 +0800</pubDate><description><![CDATA[在项目实际开发中，经常修改某个表的结构，比如字段名字，字段大小，字段类型，表的字符集类型， 表的存储引擎等等。可以看到在新增列之前插入表中的两条记录对应的assets值为NULL，因此新增列后可能还需要对原来插入的记录进行修改。数据库创建完毕后选中数据库，在该数据库中创建一个user表，并在建表时指定采用MyISAM存储引擎。在创建表之前需要先选中一个数据库，然后在数据库中创建表，这里我们先创建一个数据库。本篇博客讲的是表的DDL操作，也就是操作表结构的SQL语句。将user表的表名改成employee。]]></description><category></category></item><item><title><![CDATA[MySQL库的操作(ubuntu)]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152415776</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152415776</guid><author>jingfeng514</author><pubDate>Fri, 03 Oct 2025 12:50:24 +0800</pubDate><description><![CDATA[但实际同一中字符集编码格式一般会有多种可选择的校验规则，比如utf8编码格式的校验规则有utf8_general_ci、utf8_bin、utf8_unicode_ci等校验规则。使用不同的校验规则操作数据库中的数据可能会得到不同的结果，比如utf8mb4_general_ci校验规则在比对数据时是不区分大小写的，而utf8mb4_bin校验规则在对比数据时则是区分大小写的。如果没有对MySQL的配置文件进行过修改，则默认的编码格式是utf8，默认的校验规则是utf8_general_ci。]]></description><category></category></item><item><title><![CDATA[MySQL数据库基础(ubuntu环境)]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152412686</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152412686</guid><author>jingfeng514</author><pubDate>Thu, 02 Oct 2025 17:25:25 +0800</pubDate><description><![CDATA[存储数据用文件就可以了，为什么还要弄个数据库?文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便磁盘内存为了解决上述问题，专家们设计出更加利于管理数据的东西——数据库，它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。]]></description><category></category></item><item><title><![CDATA[ I/O 多路转接select、poll]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152169208</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152169208</guid><author>jingfeng514</author><pubDate>Tue, 30 Sep 2025 07:07:11 +0800</pubDate><description><![CDATA[设最大文件描述符是。]]></description><category></category></item><item><title><![CDATA[浏览器发起http，到得到网页的整个过程]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152128943</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152128943</guid><author>jingfeng514</author><pubDate>Sat, 27 Sep 2025 15:39:18 +0800</pubDate><description><![CDATA[当服务端的服务器建立好后，http请求的网页资源位于服务端应用层某路径下的文件(比如index.html在浏览器发起 HTTP 请求之前，需要经过 DNS 解析过程来获取服务器的 IP 地址。]]></description><category></category></item><item><title><![CDATA[数据链路层：网络通信的基础与桥梁]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/152091272</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/152091272</guid><author>jingfeng514</author><pubDate>Thu, 25 Sep 2025 22:07:28 +0800</pubDate><description><![CDATA[负责将数据从源主机传输到目标主机，解决的是跨网络的通信问题，但并不保证数据的可靠性。]]></description><category></category></item><item><title><![CDATA[为什么你的数据能准确送达？——网络层的使命与IP的力量]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/151899391</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/151899391</guid><author>jingfeng514</author><pubDate>Mon, 22 Sep 2025 19:22:45 +0800</pubDate><description><![CDATA[数据包不断经过路由器路由后，最终就能到达目标主机所在的目标网络，此时就不再根据该数据包目的IP地址当中的网络号进行路由了，而是根据目的IP地址当中的主机号进行路由，最终根据该数据包对应的主机号就能将数据发送给目标主机了。也就是说，IP地址中主机号为全0的代表的是当前局域网的网络号，IP地址中主机号为全1的代表的是广播地址，这两个IP地址都是不能作为主机的IP地址的。CIDR虽然在一定程度上缓解了IP地址不够用的问题，因为CIDR提高了IP地址的利用率，减少了浪费，但IP地址的绝对上限并没有增加。]]></description><category></category></item><item><title><![CDATA[TCP 协议全解析：握手、挥手、重传与流控的深度剖析]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/151819230</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/151819230</guid><author>jingfeng514</author><pubDate>Sat, 20 Sep 2025 13:23:06 +0800</pubDate><description><![CDATA[窗口左边界之前的数据已被确认，可以安全释放；以刚才的例子为例，当主机B收到主机A发送过来的32位序号为1的报文时，由于该报文当中包含1000字节的数据，因此主机B已经收到序列号为1-1000的字节数据，于是主机B发给主机A的响应数据的报头当中的32位确认序号的值就会填成1001。在进行网络通信时，一方发出的数据后，它不能保证该数据能够成功被对端收到，因为数据在传输过程中可能会出现各种各样的错误，只有当收到对端主机发来的响应消息后，该主机才能保证上一次发送的数据被对端可靠的收到了，这就叫做真正的可靠。]]></description><category></category></item><item><title><![CDATA[应用层协议——HTTP]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/151315040</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/151315040</guid><author>jingfeng514</author><pubDate>Wed, 17 Sep 2025 08:02:25 +0800</pubDate><description><![CDATA[我们这里要演示临时重定向，可以将HTTP响应当中的状态码改为302，然后跟上对应的状态码描述，此外，还需要在HTTP响应报头当中添加Location字段，这个Location后面跟的就是你需要重定向到的网页，比如我们这里将其设置为qq的首页。其中，前面三部分是一般是HTTP协议自带的，是由HTTP协议自行设置的，而请求正文一般是用户的相关信息或数据，如果用户在请求时没有信息要上传给服务器，此时请求正文就为空字符串。但实际我们上传数据时也有可能使用GET方法，比如百度提交数据时实际使用的就是GET方法。]]></description><category></category></item><item><title><![CDATA[题目：四数之和]]></title><link>https://blog.youkuaiyun.com/jingfeng514/article/details/151588227</link><guid>https://blog.youkuaiyun.com/jingfeng514/article/details/151588227</guid><author>jingfeng514</author><pubDate>Fri, 12 Sep 2025 16:26:02 +0800</pubDate><description><![CDATA[【代码】题目：四数之和。]]></description><category></category></item></channel></rss>