自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP协议

TCP协议文章目录TCP协议TCP协议特点TCP报文段结构连接管理建立连接关闭连接数据传输TCP以段的形式发送数据利用窗口控制提高速度部分ACK丢失报文段丢失流量控制拥塞控制慢启动拥塞避免快速恢复TCP协议特点与UDP协议不同TCP协议具有以下特点点对点一个发送方,一个接收方可靠的、按序的字节流流水线机制TCP拥塞控制和流量控制机制设置窗口尺寸发送方/接收方缓存全双工同一连接中能够传输双向数据流面向连接通信双方在发送数据之前必须建立连接,叫做三次握手,发送数据

2021-12-16 19:43:04 503

原创 嵌入式团队结构体&链表培训

嵌入式团队结构体&链表培训结构体从基本数据类型到抽象数据类型由前面我们学习的知识可知,C语言规定了一些基本数据类型,比如int、long、float、char等,但是这些基本数据类型在描述一些比较复杂的事务的时候就显得有些不足了,这就引出了我们今天学习的结构体,它允许用户自定义数据,把一些不同类型的数据看成一个整体。这也蕴含着面向对象的思想。结构体的定义在C语言里我们怎样描述一个学生的信息呢?这个学生包含了姓名,年龄,性别,学号这些属性。我们可以抽象出这样的一个结构体struct st

2021-11-03 22:06:25 409 4

原创 HashMap源码浅析

HashMap源码分析本文参照了黑马程序员的HashMap视频HashMap集合简介HashMap是基于基于哈希表的 Map 接口的实现。允许使用null值和null键,是线程不安全的JDK1.8之前HashMap由数组+链表组成,数组为主题,链表是为了解决哈希冲突存在的。JDK1.8以后,当链表长度大于阈值(或者红黑树的边界值,默认值为8)并且当前数组的长度大于64时,此时此索引位置上的所有数据改为使用红黑树储存。注:将链表转换为红黑树前会判断,即使阈值大于8,但是数组长度小于64,此时并不会将

2021-08-19 22:07:49 289

原创 String 、StringBuffer和StringBuilder

String 、StringBuffer和StringBuilderString类空串与null串构造方法字符串的比较String类常用的APIStringBuffer和StringBuilderString类String类表示字符串常量,是引用类型,它的底层实际上是一个char类型的不可变final数组,所以String的值一旦创建后,是不能被修改的,可以看看源码:字符串储存在字符串常量池中,可以想象将各种字符串存放在公共的存储池中。字符串变量 指向存储池中相应的位置。如果复制一个字符串变量, 原

2021-08-04 22:06:51 207

原创 Java深入理解——IO流

Java深入理解——IO流Java深入理解——IO流File类FileInputStreamFileOutputStream字符流FileReaderFileWriter缓冲流字节缓冲流字符缓冲流转换流InputStreamReaderOutputStreamWriter序列化流ObjectOutputStreamObjectInputStream打印流PrintStreamProperties属性类Java深入理解——IO流输入输出流:Input:输入Output:输出IO流是一个水流模型,IO

2021-08-03 22:48:48 656

原创 Java深度理解——反射

Java深度理解——反射Java深度理解——反射Java深度理解——反射获取class类对象获取Constructor构造器对象获取成员变量Field获取Method方法对象反射的小应用:暴力破解泛型的约束:反射是Java独有的技术,是Java技术的显著特点反射是指对于任何一个类,在运行时都可以直接得到这个类的全部成分(构造器对象,成员变量对象,方法对象等)反射的核心思想和关键就是得到编译以后的class文件对象获取class类对象Class:字节码文件的类型Constructor:构造器的

2021-07-24 21:56:25 476

原创 Java深入学习——异常

Java深入学习——异常Java深入学习——异常Java的异常体系编译时异常的处理机制运行时异常的处理机制finally关键字自定义异常Java深入学习——异常异常是程序在“编译”或者“执行”的过程中可能出现的问题异常一旦出现了,如果没有提前处理,程序就会退出JVM虚拟机而止,开发过程中是需要提前处理的Java通常会为代码异常设计一个类来代表。Java的异常体系Java中的异常继承的根类是:ThrowableError:错误的意思,严重错误Error,无法通过处理的错误,一旦出现,程序员也无

2021-07-22 22:26:40 650

原创 Java深入理解——面向对象

Java深入理解——面向对象类和对象this关键字封装static代码块和内部类静态代码块实例代码块内部类静态内部类成员内部类(实例内部类)匿名内部类继承子类和父类的构造器覆盖方法/方法重写(override)阻止继承:final类和方法Object类:所有类的超类equals方法抽象类与接口抽象类接口多态类和对象类:类是一个模板,它描述一类对象的行为和状态对象:对象是类的一个实例,有状态和行为 类的5大成分(有且仅有):成员变量Field:描述类或者对象的属性信息的成员方法M

2021-07-18 21:10:37 282

原创 字符串移位算法总结

字符串移位算法总结暴力遍历法空间换时间法库函数复制法取余法求逆交换法题目如下:把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。详情请见力扣:左旋转字符串以下的代码均以在力扣AC暴力遍历法这种应该是最容易想到的方法了,要将前n位字符移位就整体向前移位n次,每次整体移位的时候都将此时的首字符移到字符尾。(n^2去世)char* reverseLeftWords(

2021-01-02 13:51:32 2129 4

原创 基本kmp、加强kmp、扩展kmp、原理及其代码实现

目录一、实现原理二、基本kmp1、next数组2、全部代码实现三、加强版kmp1、 为什么会有加强版??nextval数组及完整代码四、 扩展版kmp扩展版kmp的用处实现思路代码实现一、实现原理例如有母串s[100] = {“abcababcab…”},有子串t[6] = {“abcabx”}。前5 个子串与母串都是相等的,当比较进行到第六位时,子串与母串不相等。常规的思路是让子串对齐母串的第二位再进行遍历。BUT,聪明的克努特、莫里斯、普拉特采用了一种很聪明的算法,使得时间复杂度远远下降,实

2020-12-08 19:25:09 728 6

原创 周日分享:文件隐藏器

一,文件的分类ASCII文件:每个字节放一个ASCII码二进制文件:把在内存中的数据按其在内存中的储存形式原样输出到磁盘上存放二,基本函数基本知识1,文件指针:FILE *fp2,常用函数:fopen:用来打开一个文件eg:fp = fopen(文件名,“打开方式”)常用的打开方式有如下图fclose:文件的关闭fclose(文件指针)字符串读写函数:fgets和fputs:ch = fgetc(fp):从fp所指向的文件中读取一个字符并赋给chfputc(ch,fp):将ch的值输出到

2020-11-01 13:55:40 162

原创 二维数组动态分配方法

二维数组动态分配方法C语言中对于二维数组可以只定义列而不定义行,当我们想要定义行和列时,如想定义p3可以用如下方法:int **p;//int*p是指向int的指针,int**p是指向一级指针的指针p = (int**p)malloc(sizeof(int*)*4);//malloc动态分配内存定义行for(int i = 0;i<4;i++){p[i] = (int *)malloc(sizeof(int)*3)//定义列}可按以下图示理解(十二个位子全部存放的是int*型的指针):

2020-10-19 15:44:23 2983 2

空空如也

空空如也

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

TA关注的人

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