自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 总结jwt和token

关于Cookie、Session、Token、JWT的详细和了解可以参考这篇博客。这里主要按照黑马点评和苍穹外卖的实现逻辑来整理。

2024-05-08 15:53:50 215 4

原创 springBoot总结(结合一些spring基础知识)继续更新

我们都知道spring的两大核心功能就是IOC和AOP,先了解一下IOC和AOP的原理。

2024-05-02 13:16:35 356 2

原创 mysql锁个人总结、理解

首先第一点,加锁是在开始事务到提交事务这个之间,不懂事务先提前取了解一下。

2024-05-01 12:47:13 3 1

原创 正则表达式快速入门

可以理解成通配符的增强版,作用就是匹配指定规则的字符串 ?:表示前面字符出去0或者1次(也就是可有可无) * :表示可以没有或者出现多次 + :出现一次以上的字符 {} :可以指定字符个数(可以是范围) ^ :加在[]前表示除开[]里面的字符 . : 任意字符但不包括换行符 ^ 和 $ : ^会匹配行首 ,$

2024-04-29 21:56:57 79

原创 redis总结

布隆过滤器:底层实现原理是使用一个很大的01数组,通过多次hash函数的计算,将对应的数组位置改为1,查询时检验hash对应的数组是否为1。当Rdis中的内存不够用时,此时在向Redis中添加新的key,那么Redis就会按照某一种规则将内存中的数据删除掉,这种数据的删除则被称之为内存的淘汰策略。给某一个key设置了过期时间,当key过期的时候,恰好这个时间点对这个key有大量的请求并发请求过来,这些并发的请求可能会瞬间把DB压垮。volatile-lfu:对设置了TTL的key,基于LFU算法进行淘汰。

2024-04-28 00:57:59 570

原创 JAVA常见集合总结

ArrayList在进行扩容的时候是原来容量的1.5倍(oldCapacity=oldCapacity+oldCapacity>>1)elementData object对象数组 用来存储数据 (也反应了ArrayList的底层是数组实现的)计数数组的容量,如果当前数组已使用长度+1后的大于当前的数组长度,则调用grow()方法扩容(1.5倍)总结就是当需要扩容时,查看是否需要初始化,没有就16,有就扩大两倍,然后从遍历数组每一个元素,重新走一遍添加元素。总结就是从数组到红黑树,逐层往下查,找到就放。

2024-04-13 01:06:59 584

原创 MySQL 总结

索引是帮助MySQL高效获取数据的数据结构(有序)提高数据检索的效率,降低数据库的IO成本(不需要全表扫描)通过索引列对数据进行排序,降低数据排序的成本,降低了 CPU的消耗聚簇索引(聚集索引):数据和索引放在一块,B+树的叶子节点保存了整行数据,有且只要一个非聚簇索引(二级索引):数据与索引分开存放,B+树的叶子节点保存对应的主键(也就是聚簇索引所对应的主键),可以有多个。

2024-04-11 22:30:29 652 1

原创 JVM总结

每个线程运行时所需要的内存,称为虚拟机栈每个栈由多个栈帧(frame)组成,对应着每次方法调用是所占用的内存每个多线程只能有一个活动栈帧,对应着当前正在执行的那个方法常量池:可以看作一张表,虚拟机指令根据这种常量表找到要执行的类名、方法名、参数类型、字面量等信息当类被加载,它的常量池信息也会放入运行时常量池,并把里面的符号地址变为真实地址JVM 只会运行二进制文件,类加载器的作用就是将字节码文件加载到JVM中,从而让java程序跑起来。

2024-04-10 22:05:07 1342

原创 Spring总结

面对切面编程,用于那些与业务无关,对多对象产生影响的,公共的,可抽取的代码。抽取公共功能模块,降低耦合。

2024-04-09 23:08:27 1564 1

原创 JAVA多线程总结

(1)进程是正在运行程序的实例,进程包含了线程,每个线程执行不同的任务 (2)不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间 (3)线程更轻量,线程上下文切换成本比进程上下文切换低(上下文切换是指一个线程切换另外一个线程) 单核cpu 并行:微观串行,宏观上并行 并发: 多个线程轮流使用cpu的情况 多核cpu 并行:同一时间应对多件事情

2024-04-09 12:01:53 1551

原创 关于.end() 以及find函数的应用

vector<int>::iterator it=find(vec.begin(),vec.end(),1); if(it != vec.end()) cout<<"found"<<endl; else cout<<"not found"<<endl;对于if!=vec.end(),就是找到了这是为什么呢? end()并不是最后一个元素,最后

2022-10-14 15:50:31 646

原创 二分查找 stl

iterator lower_bound( const key_type &key ): 返回一个 迭代器,指向 键值> = key的第一个元素。iterator upper_bound( const key_type &key ):返回一个迭代器,指向 键值<= key的最后一个元素的后一个元素。降序排列:iterator lower_bound( const key_type &key ): 返回一个 迭代器,指向 键值< = key的第一个元素。i

2022-10-14 12:25:41 66

原创 最大字段和的dp方程

dp[i]=max(dp[i]+temp,temp);

2022-09-29 19:15:38 57

空空如也

空空如也

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

TA关注的人

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