自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络原理 一> HTTPS协议详解,加密方式, 证书原理,中间人攻击 (一文搞懂)

这个校验和被第三方机构自己生成的的私钥进行加密,第三方机构生成的公钥让客户端拿到来获取这个校验和。中间人攻击主要是因为客户端区分不了,收到的公钥是服务器真实的公钥,还是“假公钥”客户端误以为是服务端发来的,就拿着这个 “假公钥” 自己的对称密钥加密。拿到后会根据自己从服务端拿到的信息“主要是公钥”根据证书中的内容->私钥黑客拿不到只有服务器自己持有,公钥是公开的都可以拿得到。服务器的IP地址,域名 服务器的公钥等等进行计算算出一个。校验和,拿着这个校验和与证书上的校验和进行比较。是一个被加密的校验和。

2024-12-28 01:10:30 1100 10

原创 网络原理一>HTTP协议详解,<一文搞懂HTTP协议,抓包工具使用,HTTP协议报头>

是浏览器允许网页在本地磁盘存储数据的一种机制,但是,不是让网页代码直接访问文件系统(JS也不可以) 而是包装了一层,就是套了一层壳。带有层次结构的路径:(表示要想访问某个主机上某个程序上的某个资源) 像盘符一样,每一层就相当于一个目录,有很多子目录构成。早期浏览器支持的功能比较少,一些用户浏览器版本高,一些用 户版本底,所以为了给不同用户更好的体验;查询字符串:要对查询的资源的补充说明,结构为键值对之间使用 “&”分隔,键和值之间用“=”分隔。在给服务器发送数据时会通过查询字符串发送过去,一般。

2024-12-19 15:57:56 1291 12

原创 网络原理初识一>网络基本的概念, 网络如何转发

⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵 从的⼀组约定、规则。经过二次转发,物理层解析,数据链路层解析,构造以太网数据帧,和二进制数据进行转发。多个局域⽹连接起来,在物理上组成很⼤范围的⽹络,就形成了⼴域⽹。序列化:把这个结构体的数据包,转化为字符串或者bit流的方式。数据包在发送和接收的时候,会涉及序列化,和反序列化;(网络传输实际上就是0,1或者光电信号的方式传输)标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。(这个协议一般都是开发者自己自定义的)

2024-12-13 13:47:49 1730 10

原创 Java多线程八股(一), 锁策略,synchronized锁策略详解

轻量级锁的经典案例,应用程序级别的量级,加锁的时候发现竞争一般不会加入阻塞等待的状态,而是采用忙等形式进行等待。注意: 接下来讲解的锁策略不仅仅是局限于 Java . 任何和 "锁" 相关的话题, 都可能会涉及到以下内容.悲观:加锁的时候预测接下来的锁竞争激烈,就需要针对这样的激烈情况做额外的工作。两个线程都只是读⼀个数据, 此时并没有线程安全问题. 直接并发的读取即可.:加锁的时候预测接下来的锁竞争不激烈,就不需要做额外的工作。重量级锁:应对悲观场景,此时付出的代价大,比较低效。

2024-11-15 17:11:15 1334 4

原创 Java多线程编程(四)- 阻塞队列,生产者消费者模型,线程池

就和常量池类似,在Java程序构建时候准备好,等程序运行时直接加载到内存中使用。,弥补构造方法的缺陷,但是在构造方法上有时候无法重载,如果必须要系统类型的参数时。注:Java线程池中有几个线程任务多时自动创建出多个线程,任务少时会销毁。put 方法用于阻塞式的⼊队列, take ⽤于阻塞式的出队列.阻塞队列是⼀种特殊的队列. 也遵守 "先进先出" 的原则。核心线程在线程池创建时就创建,一直到线程池销毁才会跟着销毁。线程任务多时自动创建出多个线程,任务少时会销毁。让我们高效的创建销毁线程,

2024-11-10 14:00:35 974 19

原创 Java多线程编程(三)一>详解synchronized, 死锁,wait和notify

synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时, 其他线程如果也执行。由于线程之间是抢占式执行的, 因此线程之间执行的先后顺序难以预知.但是实际开发中有时候我们希望合理的协调多个线程之间的执行先后顺序.因为wait()方法会,先进行解锁,如果事先没有锁,会抛出异常。wait()方法,都是要在wait()方法之后执行才可以。两个线程竞争同⼀把锁, 才会产生阻塞等待.第⼆次加锁, 锁已经被占⽤, 阻塞等待.使当前执行代码的线程进行等待,释放当前的锁。

2024-11-04 19:22:43 1497 18

原创 java多线程编程(二)一一>线程安全问题, 单例模式, 解决程线程安全问题的措施

如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的。

2024-10-31 12:33:33 1425 9

原创 Java多线程编程(一)

用我们上面的例子来看,每个执行流,也需要有⼀个对象来描述,类似下图所示,而Thread 类的对象就是面来描述⼀个线程执行流的,JVM 会将这些 Thread 对象组织起来,用于线程调度,线程管理。Thread 类是 JVM 用来管理线程的⼀个类,换句话说,每个线程都有⼀个唯⼀的 Thread 对象与之关联。为了让业务更快的办理好,张三⼜找来两。位同事李四、王五⼀起来帮助他,三个⼈分别负责⼀个事情,分别申请⼀个号码进⾏排队,⾃此就有。有时,我们需要等待⼀个线程完成它的⼯作后,才能进⾏⾃⼰的下⼀步⼯作。

2024-10-24 00:58:57 1002 8

原创 Mysql中的事务

事务具备的ACID特性,是我们使用事务的原因,在我们日常的业务场景中有⼤量的需求要⽤事务来保证。支持事务的数据库能够简化我们的编程模型, 不需要我们去考虑各种各样的潜在错误和并发问题,在使⽤事务过程中,要么提交,要么回滚,不⽤去考虑⽹络异常,服务器宕机等其他因素,因此我们经常接触的事务本质上是数据库对。支持事务的数据库中最基本的特性,一组SQL语句要么全部成功,要么全部失败,不会出现只执行了⼀半的情况,如果事务在执行过程中发生错误,会回滚( Rollback )到事务开始前的状态。

2024-10-03 17:42:16 2301 26

原创 数据库之索引<保姆级文章>

将页内包括头行、尾⾏在内的所有⾏进⾏分组,约定头行单独为⼀组,其他每个组最多8条数据,同时把每个组最后⼀行在页中的地址,按主键从⼩到⼤的顺序记录在页⽬录中在,页⽬录中的每⼀个位置称为⼀个槽,每个槽都对应了⼀个分组,⼀旦分组中的数据行超过分组的上限8个时,就会分裂出⼀个新的分组;后续在查询某⾏时,就可以通过⼆分查找,先找到对应的槽,然后在槽内最多8个数据行中进行遍历即可,从⽽⼤幅提高了查询效率,这时⼀个页的核⼼结构就完成了。使⽤索引的⽬的只有⼀个,就是提升数据检索的效率,在应⽤程序的运⾏过程中,查。

2024-09-16 20:17:25 3345 37

原创 字符串系列一>字符串相乘

【代码】字符串系列一>字符串相乘。

2025-05-10 00:32:48 230 1

原创 栈系列一>字符串解码

【代码】栈系列一>字符串解码。

2025-05-04 12:21:32 161

原创 栈系列一>基本计算器II

【代码】栈系列一>基本计算器II。

2025-05-03 20:12:50 422

原创 链表系列一> K 个一组翻转链表

【代码】链表系列一> K 个一组翻转链表。

2025-05-02 16:09:16 236

原创 链表系列一>合并 k 个升序链表

【代码】链表系列一>合并 k 个升序链表。

2025-05-01 13:05:09 599

原创 链表系列一>重排链表

【代码】链表系列一>重排链表。

2025-04-27 11:54:33 210

原创 链表系列一>两两交换链表中的结点

【代码】链表系列一>两两交换链表中的结点。

2025-04-26 00:24:43 453

原创 链表系列一>两数相加

【代码】链表系列一>两数相加。

2025-04-23 23:21:18 321

原创 栈系列一>删除字符中的所有相邻重复项

【代码】栈系列一>删除字符中的所有相邻重复项。

2025-04-22 09:20:01 180

原创 Spring中Bean的作用域和生命周期

singleton | 每个SpringIoC容器内同名称的bean只有一个实例(单例)(默认)prototype | 每次使用该bean时会创建新的实例(非单例)request | 每个HTTP 请求⽣命周期内, 创建新的实例(web环境中, 了解)| websocket | 每个WebSocket⽣命周期内, 创建新的实例(web环境中, 了解)

2025-04-20 13:04:46 1055 5

原创 字符串系列一>二进制求和

【代码】字符串系列一>二进制求和。

2025-04-20 00:05:35 255

原创 字符串系列一>最长回文子串

【代码】字符串系列一>最长回文子串。

2025-04-18 23:48:18 356

原创 字符串系列一>最长公共前缀

【代码】字符串系列一>最长公共前缀。

2025-04-17 00:39:12 196

原创 哈希表系列一>字母异位词分组

【代码】哈希表系列一>字母异位词分组。

2025-04-15 11:05:20 141

原创 哈希表系列一>存在重复元素II && 存在重复元素I

【代码】哈希表系列一>存在重复元素II && 存在重复元素I。

2025-04-12 23:14:33 322

原创 分治-归并系列一>翻转对

【代码】分治-归并系列一>翻转对。

2025-04-11 18:25:58 284 2

原创 动态规划系列一>卡特兰数-不同的二叉搜索树

【代码】动态规划系列一>卡特兰数-不同的二叉搜索树。

2025-04-09 16:58:09 200

原创 双指针系列一>三数之和

【代码】双指针系列一>三数之和。

2025-04-08 16:02:21 142

原创 哈希表系列一>判定是否互为字符重排

【代码】哈希表系列一>判定是否互为字符重排。

2025-04-07 09:48:57 226

原创 Spring-AOP详解(AOP概念,原理,动态代理,静态代理)

重点:1.Spring-Framework的proxytargetclass默认值为false,所以Spring-Framework,JDK和CGLIB两个代理都使用2.而Spring-Boot需要区分版本:对于Spring-Boot 2.xxx版本,proxytargetclass默认值也为false.所以,Spring-Boot 2.xxx版本也是JDK和CGLIB两个代理都使用,而Spring-Boot 3.xxx版本proxytargetclass默认值则为true,所以Spring-Boot 3

2025-04-06 17:14:33 1443 7

原创 分治-归并系列一>计算右侧小于当前元素的个数

【代码】分治-归并系列一>计算右侧小于当前元素的个数。

2025-04-06 00:10:11 149

原创 动态规划似包非包系列一>组合总和IIV

【代码】动态规划似包非包系列一>组合总和IIV。

2025-04-04 20:14:38 250

原创 哈希表系列一>两数之和

【代码】哈希表系列一>两数之和。

2025-04-03 17:05:47 172

原创 Spring事务的传播机制

7.Propagation.NESTED:> **如果当前存在事务则创建新事务作为嵌套事务来运行,如果不存在事务则等价于Propagation.REQUIRED**

2025-04-02 17:11:14 1370 6

原创 动态规划二维费用的背包问题系列一>盈利计划

【代码】动态规划二维费用的背包问题系列一>盈利计划。

2025-04-01 14:11:07 190

原创 分治-归并系列一>数组中的逆序对

【代码】分治-归并系列一>数组中的逆序对。

2025-03-30 22:29:47 292

原创 分治-归并系列一>归并排序

【代码】分治-归并系列一>归并排序。

2025-03-29 19:33:02 160

原创 分治-快排系列一>最小的K个数

【代码】分治-快排系列一>最小的K个数。

2025-03-27 15:05:57 207

原创 动态规划二维费用的背包系列一>一和零

【代码】动态规划二维费用的背包系列一>一和零。

2025-03-25 18:36:57 356 1

原创 双指针系列一>移动零

【代码】双指针系列一>移动零。

2025-03-25 16:43:57 334 1

自己加载的快排序动图,帮助学习

自己加载的快排序动图,帮助学习

2024-08-04

空空如也

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

TA关注的人

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