自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP 协议介绍

目录一、TCP协议段格式介绍 1.1 源端口和目的端口1.2 4位TCP报文长度1.3 6位标志位1.4 16位校验和1.5 选项1.6 保留二、TCP内部的工作机制2.1 确认应答2.2 超时重传2.3 连接管理2.3.1 建立连接(三次握手)2.3.2 断开连接(四次挥手)2.4 滑动窗口2.5 流量控制2.6 拥塞控制2.7 延时应答2.8 捎带应答2.9 粘包问题2.10 TCP异常终止1.进程崩溃和主机关机2.主机断电和网线断开下图为TCP协议段格式图:源端口就是表示发送方进程所占用的端口,目的端

2023-05-20 16:43:31 376 1

原创 UDP报文结构和注意事项

要想了解UDP报文结构,那就先让我们看一下UDP的报文结构图是什么样的,UDP的报文结构到底包含什么。这就是UDP的报文结构图,总体来说,UDP的报文结构包括五个部分。分别是:16位源端口号、16位目的端口号、16位UDP长度、16位UDP校验和。那么接下来,我们就针对这五个部分来进行说明。

2023-05-06 17:58:14 353

原创 网络中的一些基本概念

由于网络通信是一个非常复杂的事情,如果将所有的协议放在一起,那么这个协议将会非常复杂。因此,就有人提出了协议分层,将网络通信的协议分成不同的层。在代码中,一方为接口偶的实现类,一方为接口的使用类。在网络通信中,IP地址用于定位主机网络地址,端口号可以标识一个主机中具体的应用程序。:负责地址管理和路由选择(主要负责的是传输路径的规划,走哪条路径比较划算)。:负责设备之间的数据帧的传送和识别(负责两个相邻节点之间,数据怎么传输)。对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

2023-05-02 20:30:51 155

原创 线程安全问题的原因和解决方案

我们的预期是,当t2修改了flag的值之后,使flag不再为0,此时跳出循环,线程t1结束。这里我们也发现,说是保证原子性,不是让这里的三个操作一次执行完成,也不是这三步操作过程中不进行调度,而是让其他想操作的线程阻塞等待了。根据比较结果,来进行下一步的操作。总的来说,就是wait和notify规定了t1和t2线程的执行顺序,因此也就使t1和t2的执行有了顺序,解决了抢占式执行,随机调度。我们要注意的是,虽然我们的wait是阻塞在了synchronized代码块里了,但是实际上,这里的阻塞是释放了锁的。

2023-04-03 22:30:48 880

原创 HTTP协议的基本格式

HTTP协议是一个应用层的协议。主要用于浏览器和web服务器之间的交互。

2023-03-21 21:04:04 7108

原创 HTTPS的加密流程

HTTPS协议就是在HTTP协议之上加上了一个SSL协议,将原来的明文传输转化为密文传输,使信息在传输时候的安全性大大提高。接下来我将介绍一下HTTPS加密的流程。

2023-03-12 16:43:33 2001 8

原创 文件操作和IO

下面是File类中一些常用的方法。注意:InPutStream是一个抽象类,因此无法直接实例化。FileInPutStream是InPutStream的一个实现类。注意:OutPutStream和InPutStream一样,是抽象类,无法直接实例化。因此需要具体的实现类。FileOutPutStream是OutPutStream的一个实现类。

2023-01-16 12:31:50 89

原创 Thread类的基本用法

目录一,线程创建1.1 继承Thread类,重写run方法1.2 实现Runnable接口,重写run方法1.3 使用匿名内部类,继承Thread1.4 使用匿名内部类,实现Runnable接口1.5 使用lambda表达式 ​编辑二,线程中断 三,线程等待四,线程休眠线程的创建一共有五种方法.接下来我将一一演示.这就是继承Thread类,重写run方法来创建线程的方法.其实就是创建了一个新的类,继承Thread,然后重写方法即可.这个其实就是,创建一个类来实现Runnable接口中的run方法

2022-12-07 10:58:33 165

原创 Java线程的几种状态

状态是针对当前的线程调度的情况来描述的.我们现在认为线程是调度的基本单位.因此状态更应该是线程的属性(谈到状态一般都是考虑线程的状态).而在Java中,对于线程的状态进行了细化.有以下几种:1.NEW : 表明创建了Thread对象但是还没有调用start方法(内核中还没有创建对应的PCB,也没有创建相应的线程).2. TERMINATED : 表示内核中的PCB已经释放了,但是Thread对象还在.3.RUNNABLE : 可运行的.包括 a)正坐在CPU上执行的.b) 在就绪队列里,可以随时去CPU上运

2022-12-06 15:28:14 678

原创 进程与线程

每个进程都有自己的内存空间,但是当进程出现BUG的时候,例如进程对内存的使用越过了界限的时候,就可能会对别的进程的内存中的内容进行修改.这样就可能会导致本进程没崩溃,而把别的进程搞崩溃的情况产生.为了防止这样的事情发生,我们一般使用MMU这个硬件设备来对虚拟内存地址来进行转换,转换到真正的物理地址,一旦虚拟地址转换的数值与进程的真正的物理内存地址不匹配,那么就说明产生了BUG,该硬件设备就会反馈一个错误,使出现错误的进程崩溃,这样就不会让出现错误的进程影响到其他进程了!

2022-11-27 22:20:36 333 2

原创 MySQL增删改查(基础)

永远。

2022-11-15 21:25:27 7308 1

原创 浅谈泛型。

方法限定符 返回类型 方法名(参数列表){}例如:}注意:是在返回类型的前面。

2022-11-02 17:21:49 81 1

原创 抽象类和接口

一个被abstract修饰的类叫做抽象类,被abstract修饰的方法叫做抽象方法。抽象方法不用给出具体的实现。上面就是一个抽象类。抽象类可以必须有一个抽象方法,它也可以拥有成员变量、成员方法、构造方法。

2022-09-12 17:01:13 316

原创 继承和多态

在Java世界中,我们可以拥有很多类,例如狗类和猫类。但是我们发现,猫类和狗类有许多相同的元素和方法。比如name,age,还有eat方法。这些都是重复的。因此,我们可以将他们之间的共性抽取,提高代码的复用率。这就是继承。

2022-08-25 16:15:09 149

原创 String类

我们发现,使用String类修改字符串是非常慢的,这是因为String类的对象在修改字符串的时候,都会创建一个新的对象。这是因为s2new了一个字符串,这相当于有了一个新的"hello",String s3=s1是使s3直接指向了同一个字符串,因此相等。s1创建时,把hello保存到了常量池当中,当s2创建时,先在常量池当中去寻找有没有hello,如果没有,就创建一个变量,存储到常量池当中。这次比较,全部是true,这是因为equals方法比较的是他们的内容,而不关心他们引用的对象是否相同。...

2022-08-17 18:06:16 457 1

原创 认识类和对象

field;//字段/成员方法method//行为/成员方法}class是关键字,代表它是一个类。className是你所定义类的名字。field是字段,也叫成员变量。它是描述对象属性的。而method是行为,也叫成员方法,它是描述对象行为的。class Dog{System.out.println(name+ "吃火腿肠");}}注意:1.类名使用大驼峰。this引用可以指引对象,当对象比较多的时候,可以使编译器不混乱。......

2022-08-09 15:35:58 247 1

原创 数组的定义与使用

引用数据类型就是,创建的变量其中存放的是存放数据所在空间的地址。而基本数据类型就是变量中直接存放的就是所对应数据的值。int i=0;int j=0;for(i=0;j++){}}}上面就是定义数组的方法,我用了for循环来打印出了数组的值。二维数组定义时,初始化时,值一定需要运用{}。...

2022-08-03 21:23:53 304

原创 初识方法使用和定义

目录一、方法的定义1.1 有返回值的方法1.2 没有返回值的方法 二、实参和形参三、方法重载四、递归方法在Java中极为重要,它可以使我们少去很多工作量。避免我们重复做事。方法的定义方法如下:接下来,我定义一个add方法作为例子:这就是一个add方法,它可以将两个整数的和作为返回值返回。方法可以有返回值,也可以没有返回值这就是一个没有返回值的方法。n==1的时候打印hahaha,其余情况打印hehehe。注意:1.方法名称一般使用小驼峰。 2.public stati

2022-07-31 16:28:21 142

原创 程序逻辑控制

其中,表达式①是用来设置初始值的。表达式②是用来判断循环是否成立的,如果成立,则循环继续,不成立则退出循环。因为在i==5的时候,先执行了continue,而导致i的值并没有变化。a为3,判断case1,不满足,则判断case2,以此类推。注意看,这个程序没有打印5,这是因为当i==5的时候,循环遇见了continue,跳过了本次循环,因此没有打印5。注意1.switch括号里面的数据类型只能是int,char,short,byte,String类型。当i==5的时候,程序遇见break,退出循环。...

2022-07-29 16:30:14 337

原创 Java数据类型与变量(初识)

目录一、字面常量 二、数据类型三、变量3.1 int类型 3.2 short类型3.3 byte类型 3.4 long类型 3.5 float类型3.6 double类型3.7 boolean类型 3.8 char类型四、类型转换4.1 自动类型转换4.2 强制类型转换五、类型提升六、字符串类型6.1 使用String来定义字符串类型6.2 int和String之间的转换6.2.1 int到Sting 6.2.2 Sting到int字面常量,顾名思义就是常量。在程序运行中一直不变的量,就叫做常量。如"hel

2022-07-26 16:08:54 181 3

原创 程序环境和预处理

这样,int就可以用INT来表示。当然还有其他的)注意切记不要再定义标识符后面加上;这样有时候会导致语法错误。#define机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(这其中的parament-list是一个由逗号隔开的符号表,它们可能出现在stuff中。例子但是宏也会有问题。上面这个程序有的人可能认为是36。但其实打印出来的是11.因为宏是直接替换的原理。因此SQUARE(a+1)就变成了5+1*5+1。所以是11。...

2022-07-18 17:16:51 77

原创 语言文件操作

缓冲文件系统中,关键的概念是“”,简称“”。每个被使用的文件都在内存中开辟了相应的一个文件信息区。这些信息保存在一个结构体中。结构体是有系统声明的,取名为FILE。上面为VS2013编译环境提供的stdio.h头文件中有以下的文件类型声明。每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。下面我们可以创建一个FILE*FILE*pf;定义。...

2022-07-17 21:51:11 157

原创 常见的动态内存错误

因此,要在动态内存分配以后,进行判断。 这个例子i过大,造成了越界访问。因此在使用的时候应该注意自己所使用的内存大小有没有超过所申请的内存大小。 free函数释放的是堆区里申请的空间。而不是栈区的空间。在上面这个例子,p已经不指向动态内存的起始位置了,因此不可以释放。一次free释放之后,p成为野指针,因此不可进行第二次free操作。 这是一个常见错误,如果动态开辟的内存忘记释放,那么将造成内存泄漏问题。 该程序是错误的,因为test运行之后,p申请的内存空间并没有给str,因此str无法打印出hell

2022-07-13 15:16:17 406

原创 动态内存函数的介绍

动态内存分配函数

2022-07-12 15:54:17 275

原创 字符函数与字符串函数

字符函数与字符串函数

2022-07-11 16:01:35 170

原创 数据在内存中的存储

数据如何存储

2022-06-19 16:24:00 96

原创 简易的扫雷小游戏(C语言)

一,框架跟上次的三子棋一样,我们需要game.c,game.h还有test.c。game.c用来实现游戏功能test.c是主体game.h放入各种声明和宏定义这是部分演示二,菜单及其功能实现菜单很简单,输入1就是玩游戏,0就是退出游戏。因为考虑到玩家玩完一局还想玩一局,还有1,0这样的选择。我们使用while和Switch结合实现。三,游戏实现3.1数组创建及其初始化首先创建两个数组,mine数组存放布置的雷,第二个show数组用来展示给玩家。..

2022-05-08 19:18:29 666

原创 C语言实现三子棋

一、游戏规则三子棋是一个以3*3为棋盘的一种游戏。游戏规则是,当你下的棋子当中有三个可以用一条直线串联起来,则胜利。如果当棋盘满时都没有人满足条件,则平局。二、游戏的代码实现1.构建代码架构。在这个游戏中,我们会构建text.c、game.c、game.h三个代码区。其中:text.c的源文件是主代码区,主要的框架都在其中 。game.c是实现游戏代码的地方。text.c中所使用的函数都是在这里实现的。这是为了让代码结构清晰,不至于代码太多而导致混乱。game.h是引头文件和函.

2022-05-03 21:19:10 1230

原创 初识C语言 2

目录一,选择语句二,循环语句三,函数四,数组五,操作符一,选择语句你在大学不浪费光阴,好好学习,你毕业就可以得到好offer,走向人生巅峰。如果你不好好学习,毕业就失业,回家啃老。其实这就是选择!上面的是if-else选择语句。接下来switch-case选择语句。二,循环语句你们是否每天都得吃饭?洗脸?刷牙?这些日复一日做的事情实际上就是循环。而C语言当中主要有三种循环①while语句循环②for语句循环③do-while语句循环。在本...

2022-04-14 15:56:21 108 1

原创 初识C语言 1

每种类型的大小可用下图代码来知晓。

2022-04-07 18:07:00 726

原创 第一篇博客(坚定信心)

一,自我介绍大家好,我是一个来自西安邮电的一名大一学生,我叫朱越,属于是一个编程菜鸟。我比较喜欢没事出去玩玩(最近疫情很严重在宿舍都快发霉了==)。我还比较喜欢打乒乓球,经常和我的几个小伙伴出去打球。当然,我也玩各种游戏,例如王者,云顶等等。二,我的编程目标对于编程,我选的是Java方向,所以我希望在12月到14月按照C~>JaveSE~>数据结构~>数据结构算法~>数据库~>JaveWeb~>JaveEE的道路来学习,希望我可以在这条道路上坚持不懈,跟着

2022-04-05 12:06:40 119 2

空空如也

空空如也

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

TA关注的人

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