<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LF19971222的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LF19971222</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LF19971222]]></copyright><item><title><![CDATA[JAVA的Map集合]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/162114317</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/162114317</guid><author>LF19971222</author><pubDate>Wed, 11 Nov 2026 22:55:36 +0800</pubDate><description><![CDATA[Map 集合定义了双列集合所有的共性方法，是双列集合的顶层接口，且该集合定义了 HashMap、TreeMap、LinkedHashMap 这三个实现类。某个班级80名学生，现在需要组成秋游活动，班长提供了四个景点依次是(A、B、C、D)，每个学生只能选择一个景点，请统计出最终哪个景点想去的人数最多。键和值组成的整体一般称为“键值对”，在 Java 中叫做“Entry 对象”。第二种，创建集合时传递Comparator比较器对象，指定比较规则。put 方法在添加数据时，如果键不存在，题目： 统计投票人数。]]></description><category></category></item><item><title><![CDATA[JAVA基础知识回顾和整理]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/147110547</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/147110547</guid><author>LF19971222</author><pubDate>Sun, 20 Apr 2025 19:55:11 +0800</pubDate><description><![CDATA[变量是存储数据的基本单元，通过名字访问，数据可以变化。变量必须先声明后使用。Java的8种基本数据类型类型说明示例int整数（32位）double双精度浮点数（64位）char单个字符（16位Unicode）boolean布尔值（true/false）byte小整数（8位）short短整数（16位）long长整数（64位）（注意L后缀）float单精度浮点数（32位）（注意f后缀）]]></description><category></category></item><item><title><![CDATA[Python基础知识回顾和整理]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/147091807</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/147091807</guid><author>LF19971222</author><pubDate>Wed, 09 Apr 2025 21:31:53 +0800</pubDate><description><![CDATA[类的具体实例（如："根据汽车设计图建造的一辆红色宝马"）：对象的蓝图/模板（如："汽车设计图"）：一个子类继承多个父类（需谨慎使用）：对象的状态特征（如：颜色、型号）：对象的行为能力（如：启动、刹车）接收任意数量关键字参数（字典）接收任意数量位置参数（元组）：包含多个模块的文件夹（需有。：Python内置的功能模块。：有序可变的元素集合，用。：匿名函数，适合简单逻辑。：对扩展开放，对修改关闭。：键值对的映射集合，用。：一个子类继承一个父类。：优先使用组合而非继承。]]></description><category></category></item><item><title><![CDATA[Nvidia Jetson TX1的刷机以及jetson inference的运行]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/128683867</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/128683867</guid><author>LF19971222</author><pubDate>Tue, 17 Jan 2023 16:43:51 +0800</pubDate><description><![CDATA[在通过大半个月的不断尝试和网上攻略的查找，终于在TX1上完成了jetson-inference的运行。期间碰到了一些问题，这里一并给出相应的解决方式，但是每个人碰到的问题原因有很多，这里的方法仅供参考，如有误之处希望大佬多多指正，共同提高。]]></description><category></category></item><item><title><![CDATA[linux网络程序设计]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123368677</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123368677</guid><author>LF19971222</author><pubDate>Wed, 09 Mar 2022 22:32:10 +0800</pubDate><description><![CDATA[一、TCP/IP理论基础

协议栈

Linux的优点之一就是在于它丰富而稳定的网络协议栈，其范围是从协议无关层（如通用的socket层接口和设备层）到各种网络协议的实现；

协议介绍

对于网络理论介绍一般采用OSI模型，但是Linux中网络栈的介绍一般分为四层的Internet模型

网络模型



数据封装图



三大层

1、网络层

网络层主要包括Internet 协议（IP）、网际控制报文协议（ICMP）和地址解析协议（ARP） Internet 协议（IP） 该协议被设计成互联分组交换通信.]]></description><category></category></item><item><title><![CDATA[Linux多线程编程]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123322555</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123322555</guid><author>LF19971222</author><pubDate>Mon, 07 Mar 2022 17:38:40 +0800</pubDate><description><![CDATA[一、线程理论基础

线程技术早在60年代就被提出，但真正应用多线程到操作系统中去，是在80年代中期，solaris是这方面的佼佼者。传统的Unix也支持线程的概念，但在一个进程中只允许有一个线程，这样多线程就意味着多进程。现在，多线程技术已经被许多操作系统所支持，包括Windows/NT、Linux。



有了进程，还要引入线程的原因：

（1）和进程相比，线程是一种非常节俭的多任务操作方式。在Linux系统下，启动一个新的进程必须分配给他独立的地址空间，建立众多的数据表来维护它的代码段、堆栈段和数据段，]]></description><category></category></item><item><title><![CDATA[Linux进程间通信编程]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123289566</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123289566</guid><author>LF19971222</author><pubDate>Sat, 05 Mar 2022 17:37:55 +0800</pubDate><description><![CDATA[一、进程间通信概述

基本目的：

1.数据传输   一个进程需要将它的数据发送给另一个进程

2.资源共享   多个进程之间共享同样的资源

3.通知事件   一个进程需要向另一个或一组进程发送消息，通知它们发生了某种事件

4.进程控制 有些进程希望完全控制另一个进程的执行（如Debug进程），此时控制进程希望能够拦截另一个进程的所有操作，并能够及时知道它的状态改变



Linux进程间通信（IPC）由以下几部分发展而来：

1.UNIX进程间通信 （单机）

2.基于System V进程...]]></description><category></category></item><item><title><![CDATA[Linux进程控制编程]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123246896</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123246896</guid><author>LF19971222</author><pubDate>Thu, 03 Mar 2022 20:35:51 +0800</pubDate><description><![CDATA[进程的定义：进程是一个具有一定独立功能的程序的一次运行活动，同时也是资源分配的最小单元。

ps：如果当前进程没有创建线程，则当前的进程称为主线程。



程序是放到磁盘的可执行文件

进程是指程序执行的实例

进程是动态的，程序是静态的：程序是有序代码的集合；进程是程序的执行。通常进程不可在计算机之间迁移；而程序通常对应着文件、静态和可以复制。

进程是暂时的，程序是长久的：进程是一个状态变化的过程，程序可长久保存。

进程与程序组成不同：进程的组成包括程序、数据和进程控制块（即进程状态信息）

进程与程]]></description><category></category></item><item><title><![CDATA[嵌入式数据库]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123159794</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123159794</guid><author>LF19971222</author><pubDate>Sun, 27 Feb 2022 19:40:04 +0800</pubDate><description><![CDATA[一、数据库综述

数据库（DataBase，简记为DB）

是一个有结构的、集成的、可共享的、统一管理的数据集合。它不仅包括数据本身，而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据；



所谓有结构的，指的是数据是按一定的模型组织起来的。

数据模型可用数据结构来描述。

数据模型决定数据的组织方式、操作方法。

理解数据库的前提是理解数据模型。

现在的数据库多数是以关系模型来组织数据的。

可以简单地把关系模型的数据结构－关系理解成为一张二维表。



所谓集成的，是指数据库中]]></description><category></category></item><item><title><![CDATA[Linux系统编程-文件IO]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123126039</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123126039</guid><author>LF19971222</author><pubDate>Fri, 25 Feb 2022 19:06:50 +0800</pubDate><description><![CDATA[系统调用

所谓系统调用是指操作系统提供给用户的一组“特殊”接口，用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务。

由于在Linux中，为了更好地保护内核空间，将程序的运行空间分为内核空间和用户空间（也就是常称的内核态和用户态），它们分别运行在不同的级别上，在逻辑上是相互隔离的。因此，用户进程在通常情况下不允许访问内核数据，也无法使用内核函数，它们只能在用户空间操作用户数据，调用用户空间的函数。



用户编程接口API

系统调用并不是直接与程序员进行交互的，它仅仅是一个通过软中断机制向]]></description><category></category></item><item><title><![CDATA[数据结构之排序]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123086163</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123086163</guid><author>LF19971222</author><pubDate>Wed, 23 Feb 2022 11:24:33 +0800</pubDate><description><![CDATA[排序的种类：

1、插入排序（直接插入排序、希尔排序）

2、直接选择排序

3、交换排序(起泡排序、快速排序）

4、归并排序

5、内部排序



1、基本概念

定义：

将文件中的数据记录按关键字值的递增或递减的顺序排列起来。

{R1, R2,..., Rn} {Ri1, Ri2,..., Rin}

其中关键字{k1, k2,..., kn}-&gt;有序序列{ki1, ki2,..., kin}

排序方法的稳定性:

对于ki＝kj的记录Ri＝Rj（ Ri在Rj之前),

排序后： Ri仍]]></description><category></category></item><item><title><![CDATA[数据结构之哈希表]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123082569</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123082569</guid><author>LF19971222</author><pubDate>Wed, 23 Feb 2022 11:02:16 +0800</pubDate><description><![CDATA[一、哈希表的基本常识

一般的查找技术例如顺序查找、折半查找、二叉排序树查找都依赖于查找过程中进行的给定值与关键码的比较次数，而哈希表最大的不同则是可以不通过比较，而是通过关键码直接确定存储位置。









哈希函数：

用来定义记录的关键字与记录存储位置的对应关系的函数。其自变量是记录的关键字，函数值是记录存储位置

哈希地址：

由哈希函数求出的记录存储位置称为哈希地址。







哈希表：

    也叫散列表，是将记录按哈希函数确...]]></description><category></category></item><item><title><![CDATA[平衡二叉树]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123048586</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123048586</guid><author>LF19971222</author><pubDate>Mon, 21 Feb 2022 17:57:14 +0800</pubDate><description><![CDATA[概念：

结点的平衡因子：二叉树中某结点左子树的高度与右子树的高度之差称为该结点的平衡因子。

平衡二叉树是另一种形式的二叉查找树。

其特点是：左右子树深度之差的绝对值不大于1

称有这种特性的二叉树称为平衡二叉树。

在算法中，可以通过平衡因子来具体实现平衡二叉树的定义。

从平衡因子的角度可以说，若一颗二叉树中所有结点的平衡因子的绝对小于或等于1，则该数称为平衡二叉树。



1.LL型调整



2.RR型调整



3.LR型调整



4.RL型调整





平衡二叉树中结点的插入与建立

.]]></description><category></category></item><item><title><![CDATA[堆栈与队列]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123024676</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123024676</guid><author>LF19971222</author><pubDate>Sat, 19 Feb 2022 22:21:34 +0800</pubDate><description><![CDATA[堆栈

定义：

1、只允许在一端插入和删除的线性表

2、允许插入和删除的一端称为栈顶，另一端称为栈底。

特点：

后进先出（LIFO）



堆栈进出栈图解

此处的top称为栈顶指针，但它不是真的指针，它只是指向数组的元素位置。

进栈操作是先将top++，再嵌入值

出栈操作是先取出当前top指向位置的值，之后将top--。





顺序栈的框架构建


#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#define SIZE 10

en...]]></description><category></category></item><item><title><![CDATA[带头结点的循环单链表]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/123011842</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/123011842</guid><author>LF19971222</author><pubDate>Fri, 18 Feb 2022 22:31:19 +0800</pubDate><description><![CDATA[一、循环链表

框架构建（头插法）


#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;time.h&gt;

struct hnode
{
 int num;

 struct hnode * next;
};

typedef struct hnode Hnode;
typedef Hnode * Hlink;

void create_new_node(Hlink *new_node)
{
 *new_nod...]]></description><category></category></item><item><title><![CDATA[2022.2.17 数据结构]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/122991144</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/122991144</guid><author>LF19971222</author><pubDate>Thu, 17 Feb 2022 20:49:18 +0800</pubDate><description><![CDATA[头结点单链表的创建框架（头插法）：


#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

struct hnode
{
 int num;
 
 struct hnode * next;
};

typedef struct hnode Hnode;
typedef Hnode * Hlink;

void create_new_node(Hlink *new_node)
{
 *new_node=(Hlink)malloc(si...]]></description><category></category></item><item><title><![CDATA[2022.2.15 数据结构]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/122952022</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/122952022</guid><author>LF19971222</author><pubDate>Tue, 15 Feb 2022 21:45:08 +0800</pubDate><description><![CDATA[线性表

定义：

定义n个数据元素的有限序列，记作（a1，a2，....，an）ai是表中数据元素，n是表长度。

特点：

除第一个元素外，其他每一个元素有且仅有一个直接前驱。

除最后一个元素外，其他每个元素有且仅有一个直接后继。



顺序表

定义：

将线性表中元素相继存放在一个连续的存储空间中。

可利用一堆数组描述存储结构。

特点：

线性表的顺序存储方式。

遍历：

顺序访问，可以随机存取。



链表

特点：

每个元素由结点构成。

线性结构：

●结点可以连续，可以不连续存储（]]></description><category></category></item><item><title><![CDATA[2022.1.25]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/122690817</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/122690817</guid><author>LF19971222</author><pubDate>Tue, 25 Jan 2022 19:25:07 +0800</pubDate><description><![CDATA[‘a’，返回的是a的起始地址。

“a”，a的字符常量。



数组定义的通用格式：

类型 数组名[下标1][下标2].....[下标n]

其中，类型为数组元素的基类型，即每个元素的类型。下标值n表示为所在位的数组元素个数，该维的数组下标的上界是n-1；C语言中数组下标下界始终为0.维数是下标的个数。



一维数组的定义：

类型 数组名[常数表达式]；

Int a[10]

定义一个包括10个整型元素的一维数组。

元素为：a[0]、a[1]、....a[9]

数组名定义规则和变量名相同，遵循标]]></description><category></category></item><item><title><![CDATA[2022.1.23日记]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/122656188</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/122656188</guid><author>LF19971222</author><pubDate>Sun, 23 Jan 2022 20:01:50 +0800</pubDate><description><![CDATA[编程时不能使用TAB键。

相对独立的程序块之间应隔一行。

般情况下，源程序有效注释必须在20%以上。

命名中若有特殊缩写，应有注释。

Add_User这种形式不允许。

#define不能使用数字命名。

函数参数顺序点：函数调用过程中，变量值发生变化的位置（点），称为函数参数“顺序点”。

逗号表达式是有值的。

函数参数求值顺序是从右往左的。

atoi（a[i]）：将数字字符串转换为数值。



va_list



递归函数：在函数调用时，直接或间接地自己调用自己的函数称为递归函数。

形式]]></description><category></category></item><item><title><![CDATA[2022.1.21日记]]></title><link>https://blog.youkuaiyun.com/LF19971222/article/details/122627833</link><guid>https://blog.youkuaiyun.com/LF19971222/article/details/122627833</guid><author>LF19971222</author><pubDate>Fri, 21 Jan 2022 19:23:10 +0800</pubDate><description><![CDATA[一个文件的全局变量定义成静态变量，就说明该变量只能被该文件调用。其他文件同名的函数不冲突；但限制其使用范围。



const修饰的是只读变量。可以自增自减。

int const *a=const int *a



Int *const a；a是一个指向int型的const指针，*a是可以改写的，但a不允许改写。所以这种情况必须将a=&amp;i;即将a初始化。



int const * const a；

a是一个指向const int型的const指针，因此*a和a都不允许改写。



ext.]]></description><category></category></item></channel></rss>