- 博客(23)
- 收藏
- 关注
原创 多线程相关
修饰的state变量来同步状态,和一个先进先出的线程等待队列(双向),在多个线程竞争共享资源时,aqs会将未获得资源的线程放入等待队列中,等资源空闲时会从队列中唤醒对应线程。AbstractQuenedSynchronizer,是java并发包里的一个抽象同步框架,维护了一个由volatile。aqs是不管加不加锁的,它只是处理线程排队的细节,锁逻辑是交给实现类自己决定的。
2025-10-19 00:40:16
105
原创 一个获取时间范围的工具类
本周的开始时间->结束时间。本月的开始时间->结束时间。本季的开始时间->结束时间。本年的开始时间->结束时间。包括: 当日的开始时间->结束时间。
2024-11-18 14:31:16
259
原创 常用 lambda表达式 及 方法引用
定义:对 调用函数式接口 简化的操作作用:减少冗余代码,简化内部类的形参和方法体语法:函数式接口 变量名 = (形参) -> { 方法体 }
2024-09-03 10:33:03
541
原创 Mysql为什么使用B+Tree作为索引结构
B树是一种自平衡的多路搜索树数据结构,可以存储大量数据。多路树表示每一个节点可能会有许多的子节点,因此,它的整个高度会相比二叉树来说,会矮很多。B+ 树是 B 树的一种变种,其所有的键值对都保存在叶子节点中,并且叶子节点之间通过链表相连。这使得 B+ 树非常适合范围查询和顺序访问。
2024-08-03 15:14:02
275
原创 MySQL中的InnoDB 与MyISAM 的区别
MyISAM引擎的数据是通过二进制的方式存储在磁盘上,它在磁盘上体现为两个文件——.MYD文件和.MYI文件,D代表Data,是MyISAM的数据文件,存放数据记录,I代表Index,是MyISAM的索引文件。MyISAM索引和数据是分离的,所以在进行查找的时候,先从索引文件中找到数据的磁盘位置,再到数据文件中找到索引对应的数据内容。在B+树的叶子节点里面存储了索引对应的数据,在通过索引进行检索的时候,命中叶子节点,就可以直接从叶子节点中取出行数据。MyISAM不支持外键;InnoDB支持外键。
2024-08-01 16:16:43
257
原创 什么是过滤器?为什么要使用过滤器?
用于对请求和响应进行预处理和后处理的组件。响应前处理:在请求到达目标资源之前执行。响应后处理:在响应离开目标资源之后执行。
2024-08-01 14:28:11
413
原创 数据库分库分表设计
当数据量很大的时候,分库分表策略可以减少单个服务器的压力,提高查询性能,并提高扩展性,随时可以添加新的数据库来处理更多的请求,甚至做到业务分离,将不同的业务逻辑和数据存储分离,使得每个数据存储集群或者数据表专注于特定的功能,遵循单一责任原则。此时,就需要考虑分表了,将数据拆分到多张表中来减少单表存储的数据量,从而提升读写的效率。结合前面的两种情况,如果同时满足前面的两个条件,也就是数据连接也不够用,并且单表的数据量也很大,从而导致数据库读写速度变慢的情况,这个时候就要考虑既分库又分表。
2024-07-31 20:28:02
788
原创 MySQL的性能优化
CPU、可用内存大小、磁盘读写速度、网络带宽等因素都会影响MySQL的性能,选择合适的设备搭建,对MySQL的性能提升也会起到不小的作用。
2024-07-30 20:41:25
408
原创 MySQL中的死锁
请求保持(在获取其他资源之前,不会释放自己占有的资源)、循环等待(线程1在等待资源B的同时线程2在等待资源A)、不可抢占(线程1不可抢占线程2占有的资源A),互斥(资源A或者资源B都同一时间只能被一个线程获取)3.修改代码去破坏这四个条件里面的任意一个,就可以解决死锁问题。2.从日志里面定位到具体死锁的程序代码。1.使用jstack命令。导出线程的dump日志。(互斥条件不可修改)
2024-07-30 17:31:53
268
原创 MySQL索引
1.InnoDB引擎里面有两种索引类型,一种是主键索引、一种是普通索引mysql默认存储引擎是InnoDB,支持事务处理、外键约束和崩溃恢复。它具有高可靠性和高性能,是处理大型数据集和并发操作的首选引擎。1.InnoDB引擎里面有两种索引类型,一种是主键索引、一种是普通索引。
2024-07-27 19:26:41
1048
原创 开发中常见的数据安全问题
当用户在浏览器中保持登录状态时,浏览器会自动发送包含用户身份信息的cookie,这使得攻击者可以伪造包含用户身份信息的请求。解决:使用加密算法对敏感数据进行加密,确保数据在传输和存储过程中的安全性;解决:对用户输入进行合适的转义和过滤,使用HTML转义字符替换特殊字符,避免直接将用户输入插入到HTML中。选择可信赖的第三方库,避免使用已经废弃或者不再维护的库。对上传的文件进行严格的验证和过滤,确保其不包含恶意代码。将恶意脚本注入到网页中,使用户浏览器执行,从而窃取用户的会话信息或者篡改页面内容。
2024-04-11 20:50:59
673
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅