- 博客(27)
- 收藏
- 关注
原创 HTTP 全知道:请求与响应的深度剖析
URL(Uniform Resource Locator),统一资源定位符,也是我们常说的 "网址",用于在互联网上标识和定位地址。
2024-10-29 15:20:22
1411
原创 HTTP 协议格式大揭秘:Fiddler 助阵,网络交互全掌握!
HTTP是(Hypertext Transfer Protocol)的缩写,是一种应用非常广泛的我们平时打开一个网站,就是通过HTTP协议来传输数据的.当我们在浏览器中输入小米的"URL"(即网址),浏览器就给小米的服务器,小米的, 这个响应结果被浏览器解析了以后,就展示成了我们看到的页面的内容(这个过程中浏览器就会给小米服务器发送多个HTTP请求, 服务器也会相应的返回请求,这些相应里面就包含了HTML,CSS,JacaScript,图像,字体等信息)
2024-09-21 15:07:09
692
原创 [网络层]-IP协议相关特性
不同的子网就是把网络号相同的主机放在一起, 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致,但是主机号不能和其他主机的主机号重复,通过合理的设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同。IPv4是一个四字节32位的正整数,一共只有2的三十二次方,大概四十三亿,由于互联网快速发展,并且TCP/IP协议规定,每个主机都有一个IP地址,四十三亿这个数字在当今来说已经是不够的了,那么如何解决这个问题呢?IP地址分为两个部分: 网络号和主机号。
2024-09-17 00:26:36
1116
原创 TCP协议相关特性
TCP(Transmission Control Protocol,传输控制协议)是互联网传输层协议之一,也是 TCP/IP 协议簇的核心协议。它的作用是在 IP 网络上提供可靠的、面向连接的通信。TCP基本特点: 有链接,可靠传输, 面向字节流 ,全双工。
2024-09-04 03:09:36
1303
原创 【多线程】常见锁策略,CAS和synchronized
假设在大多数情况下并发操作不会发生冲突,因此允许多个线程同时进行操作,只有在真正更新数据时才进行冲突检测。:假设并发操作会发生冲突,因此在读取和修改数据时会进行加锁操作,保证同一时间只有一个线程能够操作数据。,可以提高并发性能,但可能会导致重复操作或数据丢失的问题。,能够确保数据的一致性,但并发性能相对较低。
2024-07-29 19:48:37
1240
原创 多线程实例-线程池
线程池,就是把线程提前从系统中申请好,放到一个地方,后面需要使用线程的时候,直接从这个地方取,而不是从系统重新申请,线程用完之后也回到刚才的地方。线程池的优点:降低线程创建和销毁的开销、提高任务执行的效率、控制并发线程的数量、提供线程的管理和监控等。
2024-07-27 17:05:25
598
原创 多线程案例-单例模式
单例模式是设计模式之一,能保证某个类在程序中只存在唯一一份实例,而不会创建出多个实例单例模式的具体实现方法有很多,最常见的是和两种。
2024-07-26 22:50:12
303
原创 线程安全问题
线程安全是指在多线程环境下,对于同一个对象的多个线程同时访问时,不会出现数据不一致、不可预测的结果。具体来说,线程安全要求程序在多线程并发执行时能够正确地处理共享资源的访问和操作,保证数据的一致性和正确性。原子性(Atomicity):对于多个线程并发访问同一个对象的某个操作,要么全部执行完毕,要么都不执行,中间不会被其他线程打断。可以使用锁(Lock)或原子操作(Atomic Operation)来保证原子性。
2024-07-21 20:21:34
1155
原创 Thread类的基本用法
此时,如果 t 线程想忽视主线程,catch中可以什么都不做,如果想立即结束,就可以在catch中加上break/return来结束线程,如果要想稍后结束,就可以在catch中写上一些其他逻辑,最后再beak/return。”,线程等待,就是在确定线程的结束顺序,让后结束的线程等待先结束的线程,此时后结束的线程就会进入阻塞状态,一直到先结束的线程结束,阻塞才会解除。例如,有两个线程A和B,B正在运行,A想要B结束,核心就是A想办法让B的 run方法 执行完毕,此时B自己决定是立即结束还是稍后结束。
2024-07-19 23:35:47
597
原创 Java数据结构-二叉树
树是一种的数据结构,它是由n(n>=0)个有限结点组成的一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是的。
2024-07-13 22:09:05
1045
原创 Java数据结构-栈和队列
概念:栈是一种特殊的线性表,其只允许在。进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据元素遵循后进先出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫出栈。出数据在栈顶。栈可以通过数组或链表实现。使用数组实现的栈称为顺序栈,使用链表实现的栈称为链式栈。在实现栈时,需要注意栈的大小,防止栈溢出的问题。
2024-07-12 16:31:08
1127
原创 Java数据结构-链表与LinkedList
LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。LinkedList实现了List接口。LinkedList没有实现RandomAccess接口,因此不支持随机访问。LinkedList的任意位置插入和删除元素时效率比较高,时间复杂度为O(1)方法解释尾插 e将 e 插入到 index 位置尾插 c 中的元素删除 index 位置元素。
2024-07-11 20:38:01
2091
原创 Java数据结构-顺序表与ArrayList
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数祖上完成数据的增删改查。数据表,其实就是一个数组。
2024-07-10 19:05:18
781
原创 MySQL事务
事务是指数据库管理系统中一组可以按照逻辑全或不全地执行的操作。事务用于处理复杂的操作,可以确保数据的一致性和完整性。无论是在应用程序开发还是数据库管理中,事务的概念都是非常重要的。有些场景中,完成某个操作,需要多个 sql 配合完成例如有一个账户余额表账户余额表(id,balance)1给2转账500,需要如下操作(1)给1的账户余额减去500update 账户余额表 set balance = balance - 500 where id = 1;(2)给2的账户余额表加上500。
2024-07-09 23:13:11
873
原创 MySQL索引
索引是指按照一定的规则,将信息进行分类并排序,方便用户快速地查找和获取所需的信息。在计算机领域中,索引一般用于加快数据的查询速度,常见的索引有数据库索引、搜索引擎索引等。索引就想当于是在数据库中,构建一个特殊的“目录”(一系列特定的数据结构),通过这样的数据结构,加快查询的速度,尽可能避免针对表数据的便利操作。代价:引入索引,需要消耗额外的存储空间 ,也可能会影响到增删改的速度show index from 表名;自带索引,可在创建表时自动生成create index 索引名 on 表名(列名);
2024-07-09 18:35:29
323
原创 计算机基础
计算机是如何工作的计算机最早的是进行军事用途。埃尼阿克(世界上第一台计算机)(冯诺依曼参与研发)主要是计算弹道导弹的轨迹的,后来人们觉得计算机能做更多事情,以冯诺依曼为首的计算机先祖们开发了“通用计算机”,计算机后来成为民用的重要支撑。(John von Neumann,1903年12月28日—1957年2月8日),出生于匈牙利布达佩斯,匈牙利犹太裔美籍数学家、计算机科学家、物理学家和化学家,美国国家科学院院士。
2024-07-08 21:44:21
505
原创 Java继承和多态(多态)
因此,在进行向下转型时,最好先使用instanceof运算符来判断对象是否是指定的子类类型,以避免异常的发生。当调用被重载的方法时,Java编译器会根据传入的参数类型或个数选择合适的方法进行调用。上述代码中,父类是Animal,子类是Cat,Cat中的eat方法对Animal中的eat方法进行了方法的重写。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的 方法,此时:将父类引用再还原为子类对象即可,即向下转换。向上转型的缺陷:不能调用到子类特有的方法。
2024-04-27 20:10:45
995
原创 Java继承和多态(继承)
上图中,Dog和Cat类都继承了Animal类,Animal类叫做父类,Cat和Dog类叫做子类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员即可。由于设计不好,或者因场景需要,子类和父类中可能会存在相同名称的成员,如果要在子类方法中访问父类同名成 员时,该如何操作?通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到 则访问,否则编译报错。如果访问的成员变量子类中无,则访问父类继承下来的,如果父类也没有定义,则编译报错。
2024-03-31 15:26:47
1728
1
原创 Java类和对象
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干 啥),描述完成后计算机就可以识别了。在java中定义类时需要用到class关键字,具体语法如下// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法class为定义类的关键字,ClassName为类的名字,{}中为类的主体。1. 一般一个文件当中只定义一个类。
2024-03-10 21:21:49
923
1
原创 Java 数组的定义与使用
数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,该编号称为数组的下标,数组可以通过 下标访问其任意位置的元素。Java中的数组是一种数据结构,可以存储一组相同类型的元素。数组是一段连续的内存空间,因此支持随机访问,即通过下标访问快速访问数组中任意位置的元素。在Java中,数组是一个对象,由一个固定大小的连续数据元素集合组成。数组:可以看成是相同类型元素的一个集合。3. 每个空间有自己的编号,其实位置的编号为0,即数组的下标。:在创建数组时,直接指定数组中元素的个数。数组的初始化主要分为。
2024-03-07 22:55:42
444
1
原创 Java方法的使用
方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义:1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用, 一份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发.
2024-03-05 22:43:27
982
1
原创 Java逻辑控制
Java中的do-while循环是一种后测试循环结构,它先执行循环体中的代码,然后再检查循环条件。但需要注意的是,Switch语句只能用于离散的取值,不能用于范围判断或复杂的条件判断。在这个例子中,循环会先执行一次循环体,打印出 i 的值,然后将变量 i 递增1。循环会遍历数组中的所有元素。其中,初始化部分用于初始化循环控制变量,条件部分用于检查循环是否继续执行,更新部分则用于更新循环控制变量的值。需要注意的是,在使用while循环时,一定要确保循环内部的代码可以改变控制条件,否则可能会导致死循环。
2024-03-03 13:11:11
837
原创 Java运算符
int a = 10;int b = 20;a + b;a < b;上述 + 和 < 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。
2024-03-02 14:26:41
2062
原创 Java数据类型与变量
常量即程序运行期间,固定不变的量。字面常量的分类:1. 字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、10003. 浮点数常量:程序中直接写的小数,比如:3.14、0.494. 字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’5. 布尔常量:只有两种true和false6. 空常量:null。
2024-03-01 13:32:03
2398
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人