- 博客(22)
- 收藏
- 关注
原创 Redis 删除策略
Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态已经过期的数据 或 被删除的数据 或 未定义的数据redis服务器有很多操作需要执行时,CPU的压力会很大,于是redis中的策略是,在内存还够的前提下,先不急着释放已删除的数据的内存空间,先执行客户端的指令。
2024-05-10 12:54:57 594
原创 Vue的生命周期
vue的生命周期函数也叫生命周期钩子;Vue的生命周期就是vue实例从创建到销毁的全过程,也就是在new Vue()开始就是vue的生命周期的开始。Vue生命周期就是从开始创建、初始化数据、编译模板、挂在DOM =>渲染页面、更新页面=>销毁等过程,这就是Vue的生命周期。
2024-04-24 00:00:00 428 2
原创 Vue中的双向数据绑定、MVVM模式
首先要知道什么是单向数据绑定,单向数据绑定就是把Model绑定到View什么是双向数据绑定?当我们用javaScript代码更新Model时,View就会自动更新,在单向数据绑定的基础上,用户更新了View,Model的数据也会自动被更新,这种情况就是双向数据绑定。
2024-04-16 20:44:25 503
原创 Reids的缓存预热、雪崩、击穿、穿透及企业级解决方案
redis缓存预热是服务器在启动后迅速宕机导致。宕机的主要原因就是服务器在启动时,缓存中没有任何数据,从而大量用户发送请求时,会直接查询数据库这也就是导致服务器宕机的主要原因(数据库处理高并发的性能没有redis性能高)缓存雪崩是指在同一时间内,缓存中大量的数据失效或者过期,导致请求直接进入数据库或都后端,从而导致数据库崩溃、服务器崩溃、redis崩溃缓存击穿也叫热点key问题,就是一个高并发高访问的key忽然失效,大量的请求会给数据库带来巨大的压力,从而导致缓存击穿缓存穿透是指。
2024-03-10 17:08:06 1696
原创 @Autowired的实现原理
@Autoeired是通过bean的后置处理器进行解析 什么是@Autowired表示某个属性是否需要进行依赖注入,可以写在属性和方法上,注解中的required属性默认为true,表示如果没有对象可以注入给属性则抛异常核心代码:postProcessPropertiespostProcessProperties()方法的处理流程:1.调用findAutowiringMetadata()方法,尝试从缓存injectionMetadataCache中获取对应的注入元信息,如果缓存不存在,将
2024-02-26 22:55:50 237
原创 SpringBean的生命周期
第四步【执行BeanPostProcessor前置对象】:如果想对Bean进行一些自定义的前置对象,那么可以让Bean实现,BeanPostProcessor接口,将会在该阶段调用postProcessBeforeInitialization(Object obj,String s)方法。第八步【执行DisposableBean销毁Bean】:当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现destory()方法执行销毁;
2024-01-06 23:01:28 741
原创 Comparable接口和Comparator接口的区别
我们若需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口);那么,我们可以建立一个“该类的比较器”来进行排序。这个“比较器”只需要实现Coparator接口即可。也就是说,可以通过“实现Comparator类来新建一个比较器”,然后通过该比较器对垒进行排序。
2023-10-30 19:56:18 60 1
原创 HashSet去重复原理解析
首先HashSet底层是封装了一个HashMap,具体的步骤是先通过比较hashcode值,如果hashcode值相同的话就认为是同一个数据,如果不同的话再去比较equles()方法进行比较。从这段源码可以看出HashSet的底层实际上就是HashMap,众所周知HashMap的值是唯一的,所以说HashSet的值也是唯一的。3.hashset不允许重复元素,原理上hashcode相同的key,新key替换旧key所以看上去是无法存入,其实是没有发生改变。4.hashset线程不同步与HashMap相同。
2023-10-29 21:37:17 50 1
原创 JDBC标准实现
JDBC希望用相同的方式访问不同的数据库,让具体的数据库操作与数据库厂商实现无关,从而在不同数据库之间轻易的进行切换。JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口。(java Database Connectivity)1.Class.forName()加载驱动。JDBC:java访问数据库的解决方案。驱动管理类:DriverManager。语句对象接口:Statement。连接接口:Connection。结果集接口:ResultSet。
2023-09-07 20:30:46 41 1
原创 视图、存储过程和触发器
触发器:什么是视图?试图是从一个或者几个基本表(或试图)导出的表,它与基本表不同,是一个虚表视图的操作:查看所有的试图:select * from information_schma.VIEWS where table_cshema=‘库名’;查看视图的建立:删除存储过程:存储过程:为什么使用存储过程:1.业务流程复杂;2.频繁访问数据库3.先编译后执行。
2023-09-06 18:49:43 46 1
原创 高级数据查询语句
等值查询:select * from 表1,表2 where 表1.字段1 = 表2.字段2。right join:从右表(表1)中返回所有的记录,即便在左(表2)中没有匹配的行。union合并的是结果集,不区分来自于哪一张表,所以可以合并多张表查询出来的数据。left join:从左表(表1)中返回所有的记录,即便在右(表2)中没有匹配的行。4在每个子句中的排序是没有意义的,mysql在进行合并的时候会忽略掉。非等值查询:select * from 表1,表2。when 1 then ‘男’
2023-09-04 21:33:14 41 1
原创 DML数据操作语句和基本的DQL语句
MySQL数据库恢复方法(控制台恢复) mysql-h localhost -P 3306 -u root -p 数据库的名称 < 恢复数据库的备份文件的绝对路径MySQL数据库备份的方法 mysqldump -h localhost -P 3306 -u root -p 要备份的数据库 > 备份得2数据库保存得绝对路径
2023-09-01 22:15:56 67 1
原创 MySQL知识点总结
数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。独立性:存储在数据库的数据和应用程序之间相互独立,互不影响,数据在磁盘上怎么存储由数据库管理而不依赖于应用程序,这样当数据的物理存储改变了,应用程序不用改变。[表级约束:格式:primary key(字段名)]安全性:数据库在1安全性的控制上也有很多措施,比如访问数据库时对用户的口令,用户的权限进行限制,再比如对数据的存储进行限制。
2023-08-31 21:45:16 44
原创 进程,vim,权限,网络
进程:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作1系统进行次元分配和调度的一个独立单位,是应用程序运行的载体。chown -R test /kk 将/kk目录下的所有文件改为test用户所有。程序用户:用户ID为(0<usr_id<1000);(强制写入该文件,但跟你对该文件的权限有关);yy(复制光标所在的那一行)P(则为贴在光标的上一行);一般模式下的操作:x(为向后删除一个字符);选项: -R:递归处理,将指定目录下的所有文件及子目录一并处理。:w(保存编辑的内容);
2023-08-30 19:10:58 41 1
原创 Linux基础总结(2)
find -maxdepth 3 -type f 当前目录开始深度为3层的所有普通文件。find -name “*.txt” 在当前文件夹下查找已.txt结尾的文件。alias cc=”ls -il“ 给ls -il组合命令下起别名。-maxdepth:从当前目录开始搜索的深度(也就是子目录的嵌套)-d:显示字符串所指的日期和时间(字符串必须加上双引号)date +“%y-%m-%d %H-%M-%s” 格式化显示时间。-n:在显示符合范本样式的那一列之前,标示出该列的编号。
2023-08-29 20:34:23 35 1
原创 Linux基础(1)
Linux的起源:Unix:Dennis Ritchie和Ken Thompson发明了C 语言,而后写出了 Unix的内核Minix:MINIX是一种基于微 内核架构的类UNIX计 算机操作系统,由 Andrew S. Tanenbaum发明Linux内核:芬兰赫尔辛基大学的研究生Linus Torvalds基于Gcc、bash开发了Linux内核Linux发行版:因为Linux的内核是 开源的,在之后各个 公司开始通过Linux的内核开发不同发行 版本的LinuxLinux是什么?
2023-08-28 22:28:09 38 1
原创 为什么大部分小数在计算机中不精确
由此我们可以看出double类型的小数部分转化为二进制的过程中容易出现无限循环的情况,通常我们取值都只是取原值的近似值,所以说会导致精度丢失的情况,这就是为什么大部分的小数在计算机中不精确。小数部分0.6的结果为10011001......(1001循环)在计算机中数字储存和运算的时候都是以二进制进行操作。十进制小数8.6的整数部分:结果为1000。(这里是指大部分小数而不是所有小数)可以从进制转换思考这个问题。
2023-06-12 00:08:16 32
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人