自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构】链表(1)

【概念】一种物理存储结构上的非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序来实现的也就是说,链表是由一个一个的节点组织起来的,如车厢一般,整体就叫做链表【链表结构】节点可以理解为”节点对象“,它有两个域,一个val域,用于存储数据,一个next域,用于存储下一个节点的地址【单向,不带头,非循环链表】一般定义一个"head"对象作为链表的头节点这是最常见的链表类型【单向,带头,非循环链表】head这个节点可以认为是一个标志,其val域存储的值不

2024-09-28 09:00:00 549

原创 【多线程】多线程(4)(线程安全问题的原因,如何解决线程安全问题)

因此,在该代码中,由于t1和t2都是针对locker进行加锁,t1先加锁,因此t1加锁成功,并执行锁内部的代码,t2后加锁,发现locker对象被t1已经使用了,因此t2加锁失败,进入阻塞,一直阻塞到t1释放锁为止。一个Java进程中,一个类的类对象是只有一个的,类对象也是对象,所以也能写到synchronized中,写类对象和写其他对象没有任何本质区别。此外,若是多个线程(两个以上)针对同一个锁对象加锁,拿到锁的对象释放了锁后,剩下的线程谁先拿到锁?(包括return,抛出异常),针对锁对象解锁。

2024-09-28 08:00:00 742

原创 【多线程】多线程(3):线程等待,获取线程实例,线程状态,串行与并发执行

操作系统针对多个线程的执行,是一个“随机调度,抢占式执行”,而「线程」等待,就是在确定两个线程的结束顺序,它无法控制两个线程调度执行的顺序,但是可以控制谁先结束,谁后结束。注意,这只是该笔记中的表述方式,不同架构的cpu有不同的指令集,不同的指令集中有不用的指令,针对这三个操作,不同cpu中对应指令的名称肯定是不同的。因此,让后结束的线程等待先结束的线程即可,此时后结束的线程会进入阻塞,直到先结束的线程真的结束了,阻塞才解除。

2024-09-27 09:15:00 958

原创 【数据结构】哈希表

在决定好寻找下一个空位置的方法后,设定好比例,当空位已经不足一个比例时(比如已经有十分之七的位置被使用),这样哈希冲突产生的概率就会大大提高,因此就需要对其进行扩容操作,随后把原本的值依照新的存储空间大小来进行新的操作。首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。对元素的关键码进行同样的计算,把求得的函数值当作元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。

2024-09-27 08:00:00 446

原创 【网络原理】网络初识,协议分层,网络通信中的整体流程

QQ这样的应用程序,就会调用操作系统的API(传输层给应用层提供的api),操作系统就会提供一个类似于“发送数据”这样的API,然后应用程序就会把上述组织好的应用层数据包,作为参数传进来,于是应用层数据包,就到了系统内核中,就进入到传输层的代码部分了。由于网络通信非常复杂,如果只使用一个协议约定所有的网络通信细节,这个协议就十分庞大,因此需要对协议进行分层,把一个大的协议拆分成多个小的协议,让每个小协议专注于解决一个/一类问题,再让这些小协议相互配合。

2024-09-26 09:30:00 744

原创 【数据结构】Map&Set

【概念】【概念】Map和Set是一种专门用于搜索的数据结构,其搜索效率与具体实例化的子类数量有关,本质上是一颗搜索的关键数据为关键字“Key”,关键字对应的数据为值“Value”,将其称为“Key-Value键值对”【关于Map】Map是一个接口类,该类没有继承至Collection,该类中存储的是<K,V>结构的键值对,且K一定是唯一的,不可重复Map.Entry<K,V>是Map内部实现的,用于存放<K,V>键值对之间映射关系的内部类为什么有Entry?

2024-09-26 06:30:00 744

原创 【网络原理】特殊IP地址,数据链路层,DNS

一旦有数据变更,针对这种数据变更,需要约定以某个服务器的数据为基准,一旦有变更,就修改这个基准的服务器,其他服务器从基准的服务器同步数据,这种基准服务器称为。但全世界这么多设备上网,每时每刻都在访问DNS服务器,单独一个服务器无法顶得住这么大的访问量,那么就需要多搞出来一些DNS服务器,这样的服务器称为。但网站很多,意味着域名很多,IP地址也很多,为了解决过多的问题,就搭建了DNS服务器,当某个电脑需要进行域名解析,就可以访问DNS服务器。因此,给局域网中的某个设备分配IP地址时,不能把主机号设置为全0。

2024-09-25 08:15:00 445

原创 【数据结构】栈和队列

在模拟栈时,可以使用usedSize这个变量,它不但可以标识当前数组中存放元素的个数,还可以表示当前存放元素的下标位置。,只允许在固定的一端进行插入和删除元素操作,进行插入和删除元素操作的一端称为“栈顶”,另一端称为“栈底”源码中,“E”的意思是“入栈/出栈的元素”,因此可以通过与出入栈元素相符的数据类型所定义的变量进行接收。,调用push方法实现的方法是链表头插法,而pop则是头删,peek等方法皆有类似的体现。一种先进先出的数据结构,只允许在一端插入数据 ,另一端删除数据,进行插入操作的一端叫。

2024-09-24 15:53:23 374

原创 【网络原理】IP协议

发送一个IP数据包时,会有一个初始的TTL的值(32,64,128……在该图这个局域网中,网络号不相同的设备(网络号不是192.168.0)无法上网,网络号相同的设表,如果主机号相同,也无法上网。假设构造一个IP数据包,目的IP写错了,写成了不存在的IP,若让这样的数据包无限传输,会消耗很多的网络资源?IP地址是一个32位的整数,左半部分是网络号,右半部分是主机号,如何判断左半部分和右半部分的界限。IP地址,用来标识网络上的一个设备,期望IP地址是唯一的,但如今可以上网的设备太多,IP不够用。

2024-09-24 09:00:00 1653

原创 【TCP】TCP核心机制:流量控制,拥塞控制,延时应答,面向字节流,异常处理

在通信中并非是发送方和接收方两点一线的结构,其是一个共享的空间,其中间还有一系列中转的设备,只要其中某个中转节点的数据承受能力超出了其的承受上限,那么这个中转节点就会进入“阻塞”状态,TCO数据报无法通过,进而导致这个中转节点在内的整条通信路径发生阻塞。正常情况下,ACK和响应是不同的时机,无法合并,但ack涉及到“延时应答”,延时应答会令ACK返回的时间往后拖,这样一延时,就可能赶得上接下来发送响应数据的操作了,于是就可以在发送响应信息时,把刚才ACK信息也带上。发送方不发送数据,要等待多久?

2024-09-23 09:30:00 945

原创 【TCP】TCP核心机制:连接管理,滑动窗口

上图中,收到2001ACK,意味着1001-2000的数据得到应答了,然后立即发送5001-6000这个数据,此时等待数据的范围就是2001-6000(四份数据),窗口大小还是4000,窗口大小不变,窗口所处的位置改变了。批量发数据,批量ACK,多个ACK只是丢其中的一部分,此时要理解确认序号的含义:其表示收到数据的最后一个字节的下一个序号,进一步可理解为:确认序号之前的数据都已经收到了,接下来发送的数据就从确认序号这里向后发。

2024-09-22 12:00:00 682

原创 【TCP】UDP和TCP的协议结构和大体区别,TCP核心机制:确认应答,超时重传

这种面向方式允许数据被封装成一个个独立的集合数据单元(即“UDP数据报”),每个UDP数据报都包含了足够的信息,具有传输速度快,开销小,灵活性高的优点。这里的“一共四样东西”起到的作用即“校验和”的职务,通过“一共四样东西”,小明在买完菜后将可以对手里的菜进行校验检查,观察有没有买多、买少。校验和存在的目的,就是为了能够“发现”或者“纠正”里面的错误,其体现通常是携带一些「额外的数据」,用于发现/纠正传输数据的错误。此处谈到的“连接”,是抽象的“连接”,通信双方,如果保存了通信对端的信息,就相当于。

2024-09-21 11:49:59 735

原创 【HTTP(1)】HTTP协议介绍

文本的意思是字符串,超文本,意味着http不仅能传输文本,还能传输图片,传输音频文件,传输视频,传输其他的各种数据等。网络上资源很多(资源可以是一个网页/文件/图片等,须要有一套规则,能找到某个指定的资源)键值对是一种特殊的结构,分「键」和「值」两部分,键和值之间使用:空格 来进行分割。有的键值对只能出现在请求中,而有的只能出现在响应中,有的两者都能出现。:把通过网卡上的数据,获取到,并且解析显示出去,可以简单的理解成,URL是URI的一种实现。有的请求中有body,有的请求中没有。

2024-09-21 11:11:19 439

原创 【HTTP(2)】方法介绍,关于请求和响应的报头(header)

举一个简单的例子,奶牛吃进去的是草,挤出去的是奶,如果今天吃草,今天挤出来奶,明天吃草,明天挤出来也是奶(不管什么时候吃草,挤出来的都是奶)这种情况,就是。这两个方法没有本质区别(GET能用的场景换成POST也可以,POST能用的场景换成GET也可以),这两个方法的使用场景在很多情况下也是可以相互替换的。GET如果设计成幂等的,此时GET的结果是可以被缓存的,POST不设计成幂等的,POST就不应该被缓存。但如果今天吃草,挤出来的是奶,明天吃草,挤出来的是排泄物(?),那么结果就并不稳定,这就是。

2024-09-21 10:46:21 1152

空空如也

空空如也

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

TA关注的人

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