<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pingwenqi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/pingwenqi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pingwenqi]]></copyright><item><title><![CDATA[网络基础概念]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158623975</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158623975</guid><author>pingwenqi</author><pubDate>Tue, 03 Mar 2026 23:00:05 +0800</pubDate><description><![CDATA[本文系统介绍了计算机网络通信的核心概念与技术实现。主要内容包括：1.网络协议分层模型（OSI七层和TCP/IP四层）；2.数据传输机制（封装/解封、字节序转换）；3.通信模型（B/S和C/S模式）；4.核心通信要素（IP地址、端口号、套接字）；5.UDP/TCP协议特性及实现（重点讲解TCP三次握手/四次挥手）；6.I/O多路复用技术（select/poll/epoll原理对比）；7.服务器模型（循环/并发服务器）。特别详细解析了TCP套接字API、epoll事件驱动机制以及多线程并发服务器实现，为网络编程]]></description><category></category></item><item><title><![CDATA[线程与信号量]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158623801</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158623801</guid><author>pingwenqi</author><pubDate>Tue, 03 Mar 2026 22:42:15 +0800</pubDate><description><![CDATA[本文介绍了线程的基本概念及其与进程的关系。线程作为轻量级进程(LWP)，共享进程资源但拥有独立PCB，是系统调度的最小单位。重点分析了线程的特点：共享进程地址空间、文件描述符等资源，创建开销小，通信方便。详细讲解了线程操作函数如pthread_create、pthread_join的使用方法，并阐述了线程同步机制（互斥锁和信号量）的原理与实现。最后对比了进程与线程的关键区别：进程是资源分配单位，线程是CPU调度单位；进程拥有独立地址空间而线程共享；进程创建开销大，线程开销小；进程间通信复杂，线程通信简单。通]]></description><category></category></item><item><title><![CDATA[Linux下IO]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158538829</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158538829</guid><author>pingwenqi</author><pubDate>Sun, 01 Mar 2026 15:59:44 +0800</pubDate><description><![CDATA[本文系统介绍了Linux系统中的I/O操作，涵盖标准I/O和文件I/O两大核心内容。标准I/O部分详细讲解了fopen、fclose、fgets等文件操作函数的使用方法，以及缓冲区类型（行缓冲、全缓冲、无缓冲）及其特性。文件I/O部分重点解析了open、close、write等系统调用，并比较了两种I/O方式的区别。此外还涉及目录操作函数和库文件概念，为Linux系统编程提供了全面的I/O操作指南。文中通过具体示例演示了各API的使用场景，包括参数设置、返回值处理等关键细节。]]></description><category></category></item><item><title><![CDATA[进程与系统调度]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158469675</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158469675</guid><author>pingwenqi</author><pubDate>Fri, 27 Feb 2026 21:24:13 +0800</pubDate><description><![CDATA[正在运行的程序 进程是程序的载体执行./a.outlinux系统就创建一个进程，分配内存程序： 是一个静态的概念。数据段、正文段。它是一些保存在磁盘上的指令的有序集合，没有任何执行的概念进程：是一个动态的概念 程序的执行过程。数据段、正文段、堆栈段。进程是程序执行的过程，包括创建、调度和消亡进程是一个独立的可调度的任务进程是一个抽象实体。当系统在执行某个程序时，分配和释放的各种资源进程是程序执行和资源管理的最小单位。]]></description><category></category></item><item><title><![CDATA[数据结构基础]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158233862</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158233862</guid><author>pingwenqi</author><pubDate>Tue, 24 Feb 2026 21:51:23 +0800</pubDate><description><![CDATA[本文系统梳理了数据结构与算法的核心知识体系。主要内容包括：数据结构基础（逻辑结构与存储结构）、算法复杂度分析、线性表（顺序表与链表实现）、栈与队列的实现及应用、查找算法（顺序/二分/分块/哈希查找）、树结构（二叉树性质与遍历、查找树、赫夫曼树）、排序算法（冒泡/选择/插入/希尔/归并/堆/快速排序等）。重点讲解了各数据结构的封装实现方法，分析了时间复杂度与空间复杂度，比较了不同结构的优缺点，并提供了完整的代码示例。文章全面覆盖了数据结构与算法的关键概念和实践应用，适合作为计算机专业学习的系统参考资料。]]></description><category></category></item><item><title><![CDATA[Linux系统下，C语言进阶]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158207061</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158207061</guid><author>pingwenqi</author><pubDate>Fri, 20 Feb 2026 17:54:43 +0800</pubDate><description><![CDATA[本文摘要： C语言进阶知识总结，主要包含以下核心内容：1.指针进阶（二级指针、指针数组、函数指针等）及其运算规则；2.Linux标准main函数参数使用；3.枚举、共用体和位域等特殊数据类型的应用场景；4.const关键字的常量指针与指针常量区别；5.内存分配函数（malloc/realloc/calloc）和内存操作函数（memset/memcpy）的使用；6.带参宏与条件编译的预处理技巧；7.typedef类型重定义的实践方法；8.函数递归调用的实现要点。全文通过代码示例详细讲解各知识点的语法规则和实际]]></description><category></category></item><item><title><![CDATA[linux系统与指令介绍]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158180541</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158180541</guid><author>pingwenqi</author><pubDate>Thu, 19 Feb 2026 12:34:38 +0800</pubDate><description><![CDATA[本文系统介绍了Linux系统的核心概念和常用操作。主要内容包括：Linux内核与发行版的区别、GNU自由软件协议、目录结构解析、基础命令使用、用户管理、进程管理、文件操作、网络配置、GCC编译器原理、Shell脚本编程、Make工程管理工具以及GDB调试器使用。重点讲解了Linux&quot;万物皆文件&quot;的核心理念、权限管理系统、命令行操作技巧、Shell脚本编写规范等内容，涵盖了Linux系统从基础到进阶的核心知识点，为Linux系统管理和开发工作提供了全面的技术参考。]]></description><category></category></item><item><title><![CDATA[Linux系统下，C语言基础]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/158154093</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/158154093</guid><author>pingwenqi</author><pubDate>Wed, 18 Feb 2026 14:38:10 +0800</pubDate><description><![CDATA[数据类型（关键字） 变量名称（标识符）        int  a关键字：C语言中带有特殊含义的字符串，不可用来定义变量名称     标识符：自己起的名字int a[10];intarr10数组长度是10是数组中元素的个数 不能省略，不能使用变量每个元素的类型是int类型数组名叫arrarr[0];//第一个元素的下标一定是0arr[9];//最后一个元素的下标一定是 长度-1不能给整个数组一次性赋值，只能逐个元素赋值区分：int a[5]和a[5]]]></description><category></category></item><item><title><![CDATA[基于Linux系统vim编译器情况下的C语言学习]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/156731822</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/156731822</guid><author>pingwenqi</author><pubDate>Thu, 08 Jan 2026 19:58:38 +0800</pubDate><description><![CDATA[本文总结了C语言编程基础要点，包括：1)Linux系统操作技巧；2)预处理指令与变量命名规则；3)数据类型、格式符号及编码规范；4)输入输出函数注意事项；5)运算符优先级与特性；6)选择与循环语句结构；7)进制转换方法；8)数组定义与操作；9)关键字break和continue的用法区别。最后通过一个综合练习演示如何输入10个分数并计算最高分和最低分，涵盖数组操作和输入验证等核心知识点。]]></description><category></category></item><item><title><![CDATA[安装虚拟机与初识C语言]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/156613087</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/156613087</guid><author>pingwenqi</author><pubDate>Mon, 05 Jan 2026 19:10:05 +0800</pubDate><description><![CDATA[本文介绍了虚拟机安装Linux系统及使用Linux编写C语言程序的方法。首先通过VMware安装Ubuntu系统，然后在终端中使用vim/vi编辑器编写C程序，包括进入编辑模式、保存退出、用gcc编译和运行程序等步骤。最后简要说明C语言的输入输出缓存机制，即数据先存入缓存，待需要时才进行输出。详细C语言知识可参考提供的优快云博客链接。]]></description><category></category></item><item><title><![CDATA[数据结构☞泛型]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145823615</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145823615</guid><author>pingwenqi</author><pubDate>Mon, 24 Feb 2025 15:22:45 +0800</pubDate><description><![CDATA[1.定义：一般的类和方法，只能使用具体的类型要么是基本类型，要么是自定义的类。如果要编写可以的代码，这种刻板的限制对代码的束缚就会很大。-----来源《Java编程思想》对泛型的介绍。2.例如：实现一个类，类中包含一个数组成员，使得数组中可以存放任何类型的数据，也可以根据成员方法返回数组中某个下标的值？注意：这样写虽然基本数据类型都可以传入在传出，但是对于引用类型数据就不行会出现报错。（原因在于确定传参类型为Object类，String类不能传）如果想避免这种情况，就要使用泛型。]]></description><category></category></item><item><title><![CDATA[初始数据结构☞复杂度与泛式]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145523038</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145523038</guid><author>pingwenqi</author><pubDate>Sat, 08 Feb 2025 22:03:53 +0800</pubDate><description><![CDATA[空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度。空间复杂度不是程序占用了多少bytes的空间，因为这个也没太大意义，所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟时间复杂度类似，也使用大O渐进表示法。// 计算bubbleSort的空间复杂度？end > 0;}}}// 计算fibonacci的空间复杂度？i <= n;i++) {// 计算阶乘递归Factorial的空间复杂度？在。]]></description><category></category></item><item><title><![CDATA[初识Java8]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145413793</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145413793</guid><author>pingwenqi</author><pubDate>Sat, 01 Feb 2025 20:32:15 +0800</pubDate><description><![CDATA[对异常并没有真正处理，而是将异常报告给抛出异常方法的调用者，由调用者处理。处在方法声明时参数列表之后，当方法中抛出编译时异常，用户不想处理该异常，此时就可以借助throws。时异常类型不匹配，即异常不会被成功捕获，也就不会被处理，继续往外抛，直到JVM收到后中断程序。在程序执行期间发生的异常，称为运行时异常，也称为非受检查异常。当异常被捕获到时，异常就被处理了，这里的后序代码一定会执行。在程序编译期间发生的异常，称为编译时异常，也称为受检查异常。异常的捕获，也就是异常的具体处理方式，主要有两种：异常声明。]]></description><category></category></item><item><title><![CDATA[初始Java7]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145340754</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145340754</guid><author>pingwenqi</author><pubDate>Sun, 26 Jan 2025 16:19:19 +0800</pubDate><description><![CDATA[String[] split(String regex, int limit)                  将字符串以指定的格式，拆分为limit。String为引用类型（此意味着其创建时变量内部存的地址），是Java进行字符串相关操作的相关类型。字符串转化为数据：基本类型的封装类型.parse其基本类型(“字符串内容”)先按照字典次序大小比较，如果出现不等的字符，直接返回这两个字符的大小差值。可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。另外有些特殊字符作为分割符可能无法正确切分。]]></description><category></category></item><item><title><![CDATA[初始Java6]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145227030</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145227030</guid><author>pingwenqi</author><pubDate>Sat, 18 Jan 2025 16:20:28 +0800</pubDate><description><![CDATA[Object是Java默认提供的一个类。Java里面除了Object类，所有的类都是存在继承关系的。默认会继承Object父类。即所有类的对象都可以使用Object的引用进行接收。//执行结果：自定义方法传参的时候可以进行传入Object类。当一个事物的内部，还有一个部分需要一个完整的结构进行描述，而这个内部的完整的结构又只为外部事物提供服务，那么这个内部的完整结构最好使用内部类。在Java中，可以将一个类定义在另一个类或者一个方法的内部，前者称为内部类，后者称为外部类。]]></description><category></category></item><item><title><![CDATA[初始Java5]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145172788</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145172788</guid><author>pingwenqi</author><pubDate>Thu, 16 Jan 2025 22:29:21 +0800</pubDate><description><![CDATA[4.实现多个接口在Java中，类和类之间是单继承的，一个类只能有一个父类，即Java中不支持多继承，但是一个类可以实现多个接口。//下面通过类来表示一组动物.//再提供一组接口, 分别表示 "会飞的", "会跑的", "会游泳的".void fly();void run();//接下来我们创建几个具体的动物@OverrideSystem.out.println(this.name + "正在用四条腿跑");@Override。]]></description><category></category></item><item><title><![CDATA[初始Java4]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145155133</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145155133</guid><author>pingwenqi</author><pubDate>Wed, 15 Jan 2025 22:24:44 +0800</pubDate><description><![CDATA[面向对象思想中提出了继承的概念，专门用来进行共性抽取，实现代码复用（作用简化代码）。其中子类/派生类（继承者）还可以在父类/基类/超类（被继承者）的基础上进行添加。]]></description><category></category></item><item><title><![CDATA[初识Java3]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145098317</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145098317</guid><author>pingwenqi</author><pubDate>Mon, 13 Jan 2025 19:50:50 +0800</pubDate><description><![CDATA[既对事务功能的提取（抽象化）。举例：对于洗衣机（具体事物），其标签就相当于一种类的抽象化如图红框内这样在src中就有com文件夹其中有java，在其中有text。]]></description><category></category></item><item><title><![CDATA[初识Java 2]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/145072371</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/145072371</guid><author>pingwenqi</author><pubDate>Sat, 11 Jan 2025 20:45:07 +0800</pubDate><description><![CDATA[T[] 数组名 = new T[N];T：表示数组中存放元素的类型T[]：表示数组的类型N：表示数组的长度。]]></description><category></category></item><item><title><![CDATA[初识java1]]></title><link>https://blog.youkuaiyun.com/pingwenqi/article/details/142065078</link><guid>https://blog.youkuaiyun.com/pingwenqi/article/details/142065078</guid><author>pingwenqi</author><pubDate>Wed, 11 Sep 2024 17:23:42 +0800</pubDate><description><![CDATA[Java规定好的，具有特殊含义的字符串。（内容暂不详讲）]]></description><category></category></item></channel></rss>