自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机网络常见概念

流量控制就是指,控制发送方的发送数据的速率。接受方通过TCP头部的窗口(占2个字节),来告知发送方降低发送的速率。来达到流量控制的效果。发送方通过滑动窗口的来实现对数据包发送速率的实现。滑动窗口是实现TCP协议流量控制的机制。发送方与接收方都维护了自己的缓冲区,缓冲区就是窗口,发送方的滑动窗口由接受方发送的TCP头部中的窗口定义。发送方的窗口有:已发送并确认,发送未确认,未发送未确认,未发送未确认超出滑动窗口。发送方通过拥塞窗口来控制每次发送数据包的个数。

2023-09-22 17:47:34 347

原创 Redis持久化

Redis 对外提供数据访问服务时,使用的是常驻内存的数据。如果仅将数据存在内存,一旦宕机重启,数据全部丢失。 redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。持久化主要是做灾难恢复、数据恢复,可归类到高可用。比如你的Redis宕机,你要做的事情是让Redis变得可用,尽快变得可用!重启Redis,尽快让它对外提供服务,若你没做数据备份,即使Redis启动了,数据都没了!可用什么呢?很可能说,大量的请求过来,缓存全部无法命中,在Redis里根本找不到数据,这个时候就造成缓存雪

2023-08-28 16:02:54 161

原创 ThreadLocal

ThreadLocal被称为线程局部变量,用于在线程中保存数据。由于在ThreadLocal中保存的数据仅属于当前线程,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal用于在同一个线程间,在不同的类和方法之间共享数据的的场景,也可以用于在不同线程间隔离数据的场景。ThreadLocal利用Thread中的ThreadLocalMap来进行数据存储。// 线程局部变量@OverridethreadLocal.set("妲己");show();

2023-08-22 22:37:34 193

原创 SpringBoot自动配置原理

Spring Boot 的自动配置可以根据添加的jar依赖,自动配置 Spring Boot 应用程序。例如,我们想要使用Redis,直接在POM文件中增加依赖,然后我们配置下连接信息就可以使用了。那么Spring Boot 是如何实现自动配置的呢?下面通过源码分析,来看自动配置的原理。

2023-08-21 19:42:58 151

原创 springIoc与Aop

IoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。IOC名词解释,作用是解耦,使用IOC容器管理项目组件之间的耦合关系IOC( Inversion of Control,中文释义:控制反转 ) 是Spring框架的核心思想之一,主要用于解耦。IOC是指将创建对象的控制权转移给Spring框架进行管理。由Spring框架根据配置文件或注解等方式,创建bean对象并管理各个bean。

2023-08-05 17:57:06 140

原创 MyBatis异常报错:元素类型为 “resultMap“ 的内容必须匹配 “(constructor?,id*,result*,association*,collection*,discrimina

resultMap总结。

2023-07-24 19:21:48 250

原创 《ReentrantLock与synchronized的区别》

FairSync类也继承了 Sync类,表示采用公平策略获取锁:当资源空闲时,它总是会先判断 sync队列是否有等待时间更长的线程,如果存在,则将当前线程加入到等待队列的尾部,实现了公平获取原则。NonfairSync类继承了Sync类,表示采用非公平策略获取锁:每一次都尝试获取锁,不会按照公平等待的原则进行等待,不会让等待最久的线程获得锁。在获取可重入锁时,要记录这是第几次获取,没获取一次记录+1,每次退出可重入锁,记录-1,减到0时,才会真正释放锁。只有获取this锁的线程才能访问当前方法。

2023-07-19 19:55:38 974

原创 《线程池的执行流程》

线程池是一种多线程处理形式,内部维护了若干个线程。没有线程任务的时候,线程都处于空闲状态。如果有新的线程任务,就分配给空闲线程执行。如果所有线程都处于忙碌状态,线程池会创建新线程或者将线程任务放入工作队列中。

2023-07-18 20:26:58 118

原创 《线程的实现方式》

线程的实现方式有四种:第一种是继承Thread类,第二种是实现Runnable接口;第三种是实现Callable接口;最后是通过线程池创建线程。

2023-07-18 19:26:29 162 1

原创 《CopyOnWriteArrayList核心源码阅读》

【代码】《CopyOnWriteArrayList核心源码阅读》

2023-07-17 20:51:50 65 1

原创 《AES算法的CBC和ECB两种工作模式》

3、使用SecretKey,IvParameterSpec初始化Cipher实例,并设置加密模式或解密模式。1、DES(Data Encryption Standard):数据加密标准,速度较快,适合加密大量数据。ECB是最简单的AES加密模式,它需要一个固定的秘钥,固定的明文会产生固定的密文。3、使用SecretKey初始化Cipher实例,并设置加密模式或解密模式。秘钥的长度决定加密长度,工作模式和填充模式可以看成是对称加密算法的参数和格式选择。4、传入明文或密文,获取密文或明文。

2023-07-17 19:07:58 246 1

原创 Java反射(Reflection)总结

Java反射就是在程序运行状态下,对于任意一个类,都能获取到类的所有信息,例如:属性,方法。对于任意一个对象,都能调用它的任意方法和属性。简单来说,反射就是在程序运行期间能够获取自身的信息。要了解反射,就必须要了解Class类。

2023-07-12 20:32:35 426 3

原创 Hash算法总结

哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。相同的输入一定得到相同的输出;不同的输入大概率得到不同的输出。所以,哈希算法的目的:为了验证原始数据是否被篡改。Java字符串的hashCode()就是一个哈希算法,它的输入是任意字符串,输出是固定的4字节int整数.例如:两个相同的字符串永远会计算出相同的hashCode,否则基于hashCode定位的HashMap就无法正常工作。

2023-07-10 19:08:54 258 1

原创 整理FTP协议相关知识,撰写FTP服务器文件列表展示、文件上传、文件下载等代码案例和实现步骤细节;

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和\"上传\"(Upload)。\"下载\"文件就是从远程主机拷贝文件至自己的计算机上;\"上传\"文件就是将文件从自己的计算机中拷贝至远程主机上。

2023-07-08 17:10:17 627 1

原创 JavaMail相关代码案例(邮件发送)

/SMTP服务器连接信息//SMTP主机名//主机端口号//是否需要认证//启用TLS加密//创建Session会话//参数1:smtp服务器连接参数//参数2:账号和密码的授权认证对象@Override// TODO 自动生成的方法存根});

2023-07-08 16:15:59 984 1

原创 《HashMap的数据结构》

HashMap是基于哈希表的Map接口实现的,它存储的内容是键值对映射。该类无序。

2023-05-31 19:38:29 514

原创 《LinkedList源代码阅读》

LinkedList是基于双端链表的List,其内部的实现源于对链表的操作,适用于频繁增加、删除的情况,不适用于频繁的查找;该类不是线程安全的;另外,由于LinkedList实现了Queue接口,所以LinkedList不止有队列的接口,还有栈的接口,可以使用LinkedList作为队列和栈的实现。

2023-04-23 11:32:34 80

原创 ArrayList扩容方式的理解

ArrayList扩容方式的理解

2023-04-17 16:06:52 123

原创 Java数组类型

定义一个数组类型的变量,使用数组类型“数据类型[]”的语法,例如,int[]。和单个基本类型变量不同,数组变量初始化必须使用new int[5]或{... ...}表示创建一个可容纳5个int元素的数组内存空间。Java的数组有几个语法特点:●数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false;●数组一旦创建后,大小就不可改变,所以说数组长度固定;●访问数组中的某一个元素,需要使用索引。数组索引从0开始。例如,5个元素的数组,索引范围是0~4。

2022-12-12 18:57:16 845 1

原创 java链表之反转链表(不带头的单向链表)

java链表之反转链表(不带头的单向链表)

2022-11-05 22:11:50 154 1

原创 微信小程序全局生命周期和页面生命周期。

生命周期是指一个对象从创建→>运行>销毁的整个阶段,强调的是一个时间段。我们可以把每个小程序运行的过程,也概括为生命周期:小程序的启动,表示生命周期的开始小程序的关闭,表示生命周期的结束中间小程序运行的过程,就是小程序的生命周期。...

2022-08-15 19:28:25 427

原创 js原型和原型链及原型继承

当查找一个对象的属性时,js会向上遍历原型链,直到找到给定名称的属性为止,如果查找到达原型链的顶部 ,也就是 Object.prototype ,但是仍然没有找到指定的属性,就会返回 undefined。js中,每当定义一个对象时,对象中都会包含一些预定义的属性。每个函数对象都有一个prototype属性,这个属性指向函数的原型对象。每个实例对象都有一个"_proto_"属性,这个属性指向原型对象。原型对象都会有一个constructor属性,这个属性又会指向prototype所在的函数(构造函数)。...

2022-08-10 19:11:00 88

原创 js防抖函数和函数节流的应用场景

js防抖函数和函数节流的应用场景

2022-08-01 18:48:12 298

原创 js中的数组方法与循环

js中的数组方法与循环

2022-07-26 19:25:52 363

原创 简单的轮播图

轮播图

2022-07-21 18:27:15 74

原创 常见CSS样式

1.css选择器(1)标签选择器(2)类(class)选择器(3)id选择器(4)三种选择器的优先级:2.网页中引入css样式(1):内联(行内)样式(2):内部样式表(3):外部样式表(4)三种css样式优先级3.基础样式(1):字体样式(2).文本样式(3).鼠标样式(cursor)(4).背景样式(5).列表样式4.css伪类5.css高级选择器6.边框样式(1)(2)边框颜色:(3)边框粗细:(4)边框简写:..

2022-07-20 18:40:49 640 3

原创 js做一个红绿灯

js做一个红绿灯。

2022-07-19 19:24:07 317

原创 常用HTML标签及其属性

一、基本标签1.标题标签2.段落标签3.斜体4.粗体5.水平线标签6.换行标签二、特殊符号三、超链接四、锚链接五、图像标签六、列表1.无序列表2.有序列表3.自定义列表七、表格八、表单九、多行文本域...

2022-07-12 22:30:35 496

空空如也

空空如也

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

TA关注的人

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