自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DNS(域名解析系统)

当我们想要访问其他人的电脑或者服务器的内容的时候,我们就需要准确知道对方的IP地址,如果IP地址出错,那么我们就会访问出错,但是IP地址是一长串无关联的数字,想要记住实在是太困难了,从而诞生了DNS(域名解析系统)去解决这个问题,采用一些简单的单词构成的字符串来表示IP地址。以百度为例:百度的IP地址是202.108.22.5,与www.baidu.com相比,前者的记忆难度显然大于后者DNS,全称为域名系统(Domain Name System),是一种负责将域名解析为IP地址的系统。

2023-12-05 19:46:56 902

原创 阻塞队列与生产者消费者模型

生产者消费者模型是一种用于解决多线程并发问题的编程模式。在这个模型中,生产者负责生产数据,而消费者负责处理这些数据。这种模型的主要目标是将数据的生产和消费过程解耦开来,使得它们可以独立地进行开发、测试和优化。如何来理解这个模型呢?以包饺子为例,一个人负责生产饺子皮,进行擀皮,并将饺子皮放在桌子上,被称为生产者,一个人负责包饺子,消耗饺子皮,从桌子上拿饺子皮,被称为消费者,桌子就是阻塞队列,如果生产饺子皮的人慢了,那么包饺子的就要等一会,如果我生产太快了,桌子上放不下了,我就等一会。

2023-11-29 15:34:07 938

原创 设计模式--单例模式说明

设计模式是在软件设计中常见的一种解决问题的方法论,它是经过反复验证和实践的一种通用的解决方案,用来解决在软件设计中常见的问题。设计模式就是套路,就好像你学习六级的时候,针对阅读问题有阅读的套路,针对听力问题有听力的套路,你根据那些套路,可以更好的做题。在软件开发中也有很多常见的"问题场景",针对这些问题场景,大佬们总结了一些套路,按照套路来实现代码,会更顺利,减少出错的可能性。今天我们来说一下单例模式。单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点。

2023-11-22 19:50:42 80

原创 理解wait和notify

线程最大的问题是抢占式执行,随机调度,但是随机性的东西,往往是最难掌握的,为了解决这个问题,从而会使用一些API让线程主动阻塞,主动放弃CPU,而wait和notify就是其中之一。在Java中,wait和notify是两个用于线程间通信的方法,它们通常与synchronized关键字一起使用,需要注意的是,wait、notify和notifyAll方法必须在同步代码块或同步方法中调用,否则会抛出IllegalMonitorStateException异常。

2023-11-20 14:22:40 107

原创 对于volatile关键字说明

volatile关键字是Java中的一个关键字,用于修饰变量,它保证变量的可见性:当一个线程修改了一个volatile变量的值,新值对于其他线程来说是立即可见的。这样可以确保多个线程在操作同一个变量时,能够看到该变量的最新值,需要注意的是,volatile关键字不能保证原子性,也不能保证复合操作的原子性,如果需要保证原子性,可以使用synchronized关键字。

2023-11-20 08:22:00 23

原创 死锁问题说明

多个进程竞争有限数量的资源时,当一个进程申请的资源被其他等待进程占用,那么该等待线程有可能再也无法改变状态,这种情况被称为死锁,一旦程序发生死锁,线程就会崩溃,无法执行后续工作。

2023-11-13 23:46:26 62 1

原创 Linux的常用命令

2.不要使用 rm -rf /root/text.txt,因为在实际使用中,很有可能rm -rf /_root/text.txt,在/后面多了一个空格(_下划线代表空格),rm 会认为你想删除两个目录,1./,2.root/test.txt,第一个代表根目录,所有文件目录均没有,只能重装系统(5.如果vim没有正确关闭,在下次启动的时候,会报错提示,按D键就是删除未保存的内容,R就是恢复之前的编辑内容。2.输入ls后面加上一个路径(绝对/相对),查看指定目录的内容," / "是·根目录的意思。

2023-11-06 21:00:40 27

原创 IP地址和IP协议

*NAT要求:**公网IP必须是唯一,私网IP可以在不同的局域网中重复,如果某个私网里的设备想访问公网的设备,就需要对应的 NAT 设备(路由器),把 IP 地址进映射,从而完成网络访问,反之,公网的设备,无法直接访问私网的设备,不同局域网的私网的设备无法直接相互访问。,IPv6使用16个字节表示IP地址即128位,是4个版本4相乘,即42亿 * 42亿 * 42亿 * 42亿,这样世界上的每一粒沙子都可以分配到单独的地址,从而解决了IP地址不够用的问题,但是实际上并没有投入使用。

2023-10-31 21:54:46 1115

原创 操作系统里的进程

操作系统里的进程

2023-10-11 21:41:53 425

原创 UDP协议

UDP协议是无连接的传输层协议,它不保证数据传输的可靠性和顺序性。与TCP协议相比,UDP协议具有以下特点:1.速度快:因为UDP协议不需要建立连接、确认数据包和重传丢失的数据包等操作,所以它的传输速度更快。2.简单:UDP协议没有复杂的控制流程和错误处理机制,因此它比TCP协议更加简单易用。3.应用场景广泛:由于UDP协议的速度快和简单,因此它适用于一些对实时性要求高但不需要可靠传输的应用,例如音视频流媒体、游戏等。

2023-10-11 20:52:13 945

原创 TCP协议中的几个机制

TCP协议一: TCP协议之特点和首部格式TCP协议二: TCP协议之可靠传输TCP协议三: TCP的三次握手和四次挥手确认应答,超时重传,连接管理都是给TCP的可靠性提供的支持,引入了可靠性,那就牺牲了传输效率,可靠性和效率是冲突的,因此UDP虽然没有可靠性,但是传输效率要比TCP高,TCP竭尽可能的提高传输效率运输(本质上补救措施),滑动窗口本质上就是降低了确认应答,等待ack消耗的时间。对于基本确认应答就是如此,每次都是发送一个数据后,等待ack到达后,再发送下一个数据而滑动窗口的本质是批量发送

2023-10-09 23:15:24 103

原创 TCP的三次握手和四次挥手

TCP作为一个有连接的协议,需要建立连接和断开连接,其建立连接就是三次握手,断开连接就是四次挥手,理解三次挥手的意义:1.让通信双方各自建立对对方的"认同",2.验证通信双方各自的发送能力和接受能力是否OK,3.在握手过程中,双方来协商一些重要的参数;四次挥手,理解为什么是四次挥手,理解FIN和ACK的传输机制以及TIME_WAIT意义和作用。

2023-09-24 22:36:43 59

原创 TCP协议之可靠传输

可靠传输是TCP最核心的部分,TCP的可靠传输是通过确认应答+超时重传来进行体现的,确认应答描述的是传输顺利的情况,超时重传描述的是传输出现问题的情况,这两者相互配合,支撑TCP可靠性。

2023-09-23 20:00:00 296

原创 前端发送数据给后端,后端只得部分数据

在Java后端中,类别的变量声明时,首字母不要小写或者大写,大写也是类似的结果,从而避免类似的错误。

2023-09-22 12:00:00 163

原创 TCP协议之特点和首部格式

TCP是一种面向连接的运输层协议,它提供了可靠的数据传输服务。在使用TCP之前,必须先建立TCP连接,在传输完成后释放连接。每一条TCP连接只能有两个端点,即两个套接字(socket)。每个套接字由IP地址和端口号组成。每一条TCP连接都是唯一的,由通信两端的两个套接字所确定。一个IP地址可以对应多个不同的TCP连接,同一个端口号也可以出现在多个不同的TCP连接中。这种特性使得TCP能够在复杂的网络环境中实现可靠的数据传输。

2023-09-21 12:00:00 101 1

原创 对于gitee的项目拉取

gitee项目拉取

2023-09-20 14:35:59 965 1

原创 OSI七层模型和TCP/IP四层模型

下面是一张图,总结了两个模式的联系和区别。

2023-05-25 15:43:55 152

原创 对接口的理解和说明

Java中的接口是一种特殊的抽象类,它只包含常量和抽象方法的定义,没有任何具体实现,简单而言,接口是多个类的公共规范,是一种引用数据类型。

2023-05-19 14:08:34 215

原创 对抽象类的解释说明

Java中的抽象类是一种不能直接被实例化的类,需要通过被继承之后才能被使用。抽象类通常被用来作为其他类的基类,以定义一组通用的属性和方法,并强制子类实现其中的一些方法。简单而言,如果一个类没有包含足够的信息来描绘一个具体的对象,那么这个类就是抽象类。使用抽象类的主要目的是为了将一些通用的行为和状态抽象出来,从而实现更好的代码重用和维护。

2023-05-18 18:51:18 120

原创 重写和重载的区别

重写和重载的区别

2023-04-26 12:09:18 78

原创 Java中的多态

Java中使用多态的主要目的是提高代码的可重用性和扩展性,使得代码更加灵活和易于维护。

2023-04-23 14:37:43 4796

原创 Java中的继承

Java当中的继承

2023-04-19 19:57:00 753

原创 HTTP协议的基本格式

HTTP(全称为 “超文本传输协议”) 是一种应用非常广泛的应用层协议。HTTP 往往是基于传输层的 TCP 协议实现的,其中HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP实现,这里是主要讨论的是HTTP 以 1.1 版本。平时所用的网站就是通过HTTP来传输数据。对于定义的理解:1.为什么说是超文本: 因为传输的内容不仅可以是文本(html,css),还可以是其他资源(图片,视频,音频等二进制的数据)。2.HTTP应用层协议的理解。

2023-04-05 16:09:22 585

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

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

2023-03-05 16:39:21 80

原创 Java 线程的几种状态

线程状态是针对当前的线程调度的情况来描述的。

2023-01-10 21:01:15 87

原创 Thread 类的基本用法

Thread 类是 JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一的 Thread 对象与之关联。

2023-01-07 22:01:18 356 1

原创 进程和线程的关系

进程和线程的关系

2022-12-19 11:06:21 891

原创 理解事务的四个特性

理解MySQL事务的四个特性

2022-11-22 15:48:42 763

原创 java中LinkedList与链表

java中LinkedList与链表

2022-10-01 21:17:28 482

原创 ArrayList和顺序表

Java当中ArrayList和顺序表

2022-09-22 14:08:31 209

原创 初识数据结构

初识数据结构

2022-09-16 22:51:31 110

原创 类和对象的初步认识

Java类和对象的初步认识

2022-09-08 20:04:33 83

原创 Java类型转换和类型提升

Java类型转换和类型提升

2022-07-27 15:00:59 111

空空如也

空空如也

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

TA关注的人

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