- 博客(89)
- 收藏
- 关注
原创 <项目> 日志系统
一、项目介绍本项⽬主要实现⼀个⽇志系统, 其主要⽀持以下功能:⽀持多级别⽇志消息⽀持同步⽇志和异步⽇志⽀持可靠写⼊⽇志到控制台、⽂件以及滚动⽂件中⽀持多线程程序并发写⽇志⽀持扩展不同的⽇志落地⽬标地二、为什么需要日志系统⽣产环境的产品为了保证其稳定性及安全性是不允许开发⼈员附加调试器去排查问题, 可以借助日志系统来打印⼀些⽇志帮助开发⼈员解决问题。上线客户端的产品出现bug⽆法复现并解决,可以借助⽇志系统打印⽇志并上传到服务端帮助开发⼈员进⾏分析。
2024-06-27 23:37:33
730
原创 18. 四数之和 - 力扣
给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bcd你可以按返回答案。
2024-06-12 13:41:34
578
1
原创 <MySQL> 内外连接
在MySQL中,连接(Join)是用于在多个表之间建立关联关系的操作。内连接(Inner Join)和外连接(Outer Join)是最常见的连接类型。
2024-06-10 19:57:16
842
原创 <MySQL> 用户管理
MySQL中的用户管理是指对数据库用户进行创建、授权、修改和删除等操作的过程。用户是MySQL数据库的访问身份,它们定义了连接到数据库的权限和限制。MySQL中也是有root用户和普通用户之分的。跟Linux一样,root用户就是所谓的超级用户,权限较大且基本上没有限制。普通用户都是我们自己后期创建的,权限相对较小且较多限制。
2024-06-09 22:22:12
862
原创 <MySQL> 事务
其中隔离级别越严格,安全性越高,但数据库的并发性能也就越低,往往需要在两者之间找一个平衡点。不可重复读的重点是修改和删除:同样的条件, 你读取过的数据,再次读取出来发现值不一样了。幻读的重点在于新增(insert):同样的条件,第1次和第2次读出来的记录数不一样。说明:mysql 默认的隔离级别是可重复读一般情况下不要修改。上面的例子可以看出,事务也有长短事务这样的概念。事务间互相影响,指的是事务在并行执行的时候,即都没有commit的时候,影响会比较大。MySQL在操作上并没有过多的去维护一致性。
2024-06-09 15:15:26
861
原创 16. 最接近的三数之和 - 力扣
给你一个长度为n的整数数组nums和 一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。
2024-06-04 11:15:51
374
1
原创 1961. 检查字符串是否为数组前缀 - 力扣
给你一个字符串s和一个字符串数组words,请你判断s是否为words的。字符串s要成为words的s可以由words中的前kk为)个字符串按顺序相连得到,且k不超过。如果s是words的,返回true;否则,返回false。
2024-06-03 13:11:01
230
原创 <MySQL> 表的约束
在前面的文章中提到了约束,是通过数据类型对字段产生的约束。所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。这 就是“约束。通过约束,让我们未来插入数据表中的数据是符合预期的。但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性和可预期性。于是就引入了表的约束。其本质就是通过技术手段,倒逼程序员,插入正确的数据。反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。
2024-05-31 23:50:04
581
原创 922. 按奇偶排序数组 II - 力扣
给定一个非负整数数组numsnums中一半整数是,一半整数是。对数组进行排序,以便当nums[i]为奇数时,i也是;当nums[i]为偶数时,i也是。你可以返回任何满足上述条件的数组作为答案。
2024-05-28 21:58:40
363
原创 905. 按奇偶排序数组 - 力扣
给你一个整数数组nums,将nums中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。返回满足此条件的作为答案。
2024-05-28 14:44:39
349
原创 832. 翻转图像 - 力扣
给定一个n x n的二进制矩阵image,先翻转图像,然后图像并返回结果。翻转图片就是将图片的每一行都进行翻转,即逆序。[1,1,0][0,1,1]图片的意思是图片中的0全部被1替换,1全部被0替换。
2024-05-27 23:44:09
1260
原创 821. 字符的最短距离 - 力扣
给你一个字符串s和一个字符c,且c是s中出现过的字符。返回一个整数数组answer,其中且answer[i]是s中从下标i到离它的字符c的。两个下标i和j之间的为abs(i - j),其中abs是绝对值函数。
2024-05-27 16:58:39
390
原创 455. 分发饼干 - 力扣
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
2024-05-24 12:49:17
129
原创 <项目> 云备份
自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载,其中下载过程支持断点续传功能,而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间。
2024-05-23 22:13:34
1102
原创 <网络> IP协议
前面我们学习了应用层的HTTP/HTTPS协议和传输层的TCP/UDP协议。HTTP/HTTPS协议主要是对数据请求的一个传输超文本应用层协议。HTTP/HTTPS协议的主要目的是确保客户端和服务器之间的数据传输安全、可靠、高效。通过HTTP/HTTPS协议,用户可以使用浏览器访问互联网上的各种网站,并且在网站之间浏览、跳转、获取信息等操作。TCP协议是对传输的数据进行控制,保证数据传输的可靠性的传输层协议。UDP协议是对传输的数据可以容忍一定数据丢失的传输层协议。
2024-05-03 18:24:07
715
原创 <网络> 通信函数listen的第二个参数
在编写 TCP 套接字跟 HTTP 的服务器代码时,我们使用listen函数将套接字设置为监听状态,等待客户端的连接请求。其中 listen 函数的第一个参数就是需要设置为监听状态的套接字,而 listen 函数的第二个参数我们一般将其设置为32,该参数常常被忽略或者不完全理解,那么该参数具体是什么含义呢?接下来通过实验来理解一下该参数。
2024-04-28 16:16:54
773
原创 <网络> 传输层的TCP/UDP协议
TCP的面向字节流是指它将数据视为连续的字节流,而不是将数据划分为离散的消息或数据包。这意味着在TCP连接中,数据被视为一系列无结构的字节,发送方和接收方之间没有明确的消息边界。这与UDP不同,因为UDP是面向数据报的,每个数据包都是独立的单元,有明确的边界。TCP:数据在TCP连接中被视为一个无间断的字节流。发送的数据可以被拆分成多个小块,然后在接收端重新组装,但这一切都在传输层进行,上层应用程序不需要关心数据的分段和重组。UDP:UDP以数据报的形式传输数据,每个数据报都是独立的消息。
2024-04-28 10:10:39
632
原创 <网络> TCP协议的三次握手四次挥手
TCP的三次握手和四次挥手是面试被高频问到的一个知识点。其中有较多的细节问题,本篇文章全部会详细讲解!TCP使用三次握手和四次挥手分别用来建立和终止连接。为什么建立和终止连接还需要这么麻烦呢?TCP设置三次握手和四次挥手是为了确保可靠的连接建立和终止,在网络通信中保护数据传输的完整性和可靠性。后文会有更加详细的解释。一次握手不行,因为在建立连接时需要都确认双方的发送和接收能力是否正常。如果只进行一次握手,那么无法确认对方是否能够接收到自己的消息。ps:这里额外说明一点。当我们使用。
2024-04-27 12:51:53
961
原创 <网络> HTTPS
上篇文章(<网络> HTTP)我们详细讲解了HTTP协议后,我们发现HTTP协议并不是安全的,所以这篇文章会详解基于HTTP进行传输加密的HTTPS协议。上篇文章(<网络> HTTP)我们详细讲解了HTTP协议后,我们发现HTTP协议并不是安全的。数据传输的明文HTTP协议传输的数据是明文的,即未经过加密处理。这使得任何人都可以截获传输的数据并进行监听、分析或篡改,导致数据的安全性受到威胁。HTTP协议没有对传输的数据进行完整性校验的机制,意味着在传输过程中数据可能会被篡改,而无法被检测到。
2024-04-25 13:53:34
1005
原创 <网络> HTTP
在序列化与反序列化文章中,我们了解了协议的制定与使用流程,不过太过于简陋了,真正的协议会复杂得多,也强大得多,比如在网络中使用最为广泛的 HTTP/HTTPS超文本传输协议。HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种应用层的协议,用于在网络中传输超文本(如网页)。HTTP是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
2024-04-24 12:20:30
1043
4
原创 <网络> 网络Socket 编程基于UDP协议模拟简易网络通信
网络编程(Network Programming)是指编写程序来实现计算机网络之间的通信。这通常涉及到使用套接字(sockets)来建立连接、发送和接收数据。网络编程可以应用于各种场景,如开发网站、构建分布式系统、实现网络服务等。
2024-04-01 18:27:56
1292
原创 面试题 08.01. 三步问题
三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。
2024-03-25 11:35:32
208
原创 <Linux> 模拟实现文件流 - 简易版
在以前篇章中提过了一个疑问:为什么会打印两次 hello fprintf 就很好理解了:因为没有触发刷新条件(文件一般为全缓冲),所以数据滞留在用户层缓冲区中,fork 创建子进程后,子进程结束,刷新用户层缓冲区[子进程],此时会触发写时拷贝机制,父子进程的用户层缓冲区不再是同一个;如果是一次写不完的情况,需要通过循环写入数据,并且在缓冲区满后进行刷新,因为循环写入时,目标数据的读取位置是在不断变化的(一次读取一部分,不断后移),先手动冲刷五次,再手动冲刷十次,最后程序结束后,自动冲刷剩余五次.
2024-03-24 10:12:45
731
原创 <Linux> 线程池
关于线程池的理解,及四种不同版本的线程池模拟实现,还有单例模式的详解,并且还有就是关于线程安全引发周边问题的解释,最后就是读者写者模型的知识补充
2024-03-23 11:10:47
1306
原创 1137. 第N个泰波那契数- 力扣
泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数n,请返回第 n 个泰波那契数 Tn 的值。
2024-03-12 23:40:10
453
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人