- 博客(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
原创 Spring中Bean的作用域和生命周期
singleton | 每个SpringIoC容器内同名称的bean只有一个实例(单例)(默认)prototype | 每次使用该bean时会创建新的实例(非单例)request | 每个HTTP 请求⽣命周期内, 创建新的实例(web环境中, 了解)| websocket | 每个WebSocket⽣命周期内, 创建新的实例(web环境中, 了解)
2025-04-20 13:04:46
1055
5
原创 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
原创 Spring事务的传播机制
7.Propagation.NESTED:> **如果当前存在事务则创建新事务作为嵌套事务来运行,如果不存在事务则等价于Propagation.REQUIRED**
2025-04-02 17:11:14
1370
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人