
知识总结
文章平均质量分 62
包括面试总结
避暑人
菜鸡喜欢分享
展开
-
Java表单重复提交问题
采用redis,切面编程,自定义注解,对获取ip和uri作为key,时间戳作为value每次访问接口,若是该key存在,则进行限制,若是存在,则判断现在距离上次提交时间小于设置的默认时间 则 判断为重复提交 否则 正常提交 -> 进入业务处理原创 2024-06-22 11:52:51 · 3057 阅读 · 0 评论 -
SpringBoot整合justauth实现多种方式的第三方登陆
获取三方登陆的和github为例。原创 2024-06-21 11:11:26 · 4689 阅读 · 0 评论 -
SpringBoot整合WebSocket实现聊天室
1.简单的实现了聊天室功能,注意页面刷新后聊天记录不会保存,后端没有做消息的持久化2.后端用户的识别只简单使用Session用户的身份原创 2024-05-22 11:12:52 · 18152 阅读 · 0 评论 -
前端实现金额转大写(精确到分)
将1000转为壹仟元。原创 2024-05-08 16:14:20 · 17216 阅读 · 0 评论 -
MybatisPlus多表联查时分页如何操作?这几种方式的区别是什么?
Page插件,RowBounds,PageHelper原创 2024-04-25 17:59:54 · 18078 阅读 · 0 评论 -
Redis的应用场景有哪些
基于的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis 支持多种数据结构,包括以及更复杂的数据结构。:Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s。:Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。:Redis 的所有操作都是原子性的,意味着要么成功执行要么失败完全不执行。:Redis 还支持 publish/subscribe, 通知, key 过期等等特性。原创 2024-04-23 09:44:30 · 18079 阅读 · 0 评论 -
SpringBoot解决跨域问题,什么是跨域问题
协议://域名:端口一个不一样就是跨域。原创 2024-04-19 14:54:33 · 15324 阅读 · 0 评论 -
Java8特性,Stream流的使用,收集成为map集合
Java 8引入了Stream API,这是Java集合操作的一个重大改进。Stream API提供了一种高效且易于使用的处理数据的方式。Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。注意:Stream自己不会存储元素,它不会改变源对象,反而它的操作会返回一个全新的Stream,且它的操作是延迟执行的,这意味着它们会等到需要结果的时候才执行。以下是Stream的一些常用操作:java4.1将流转为map5.Match: 检查Stream中的元素是否原创 2024-04-18 15:42:22 · 16885 阅读 · 0 评论 -
CAS简单易懂解释,什么是CAS?java代码实现CAS?什么是ABA问题?
CAS(compareAndSwap)比较与交换,在不加锁的情况下保证数据操作的原子性和安全性,也是一种典型的乐观锁,主要有三部分组成,old(旧值),val(期望值),new(新值)。通过比较val(期望值)和old(旧值)是否相等来决定old是否需要替换成新值。(old==val){old=new;}原创 2024-04-18 11:06:44 · 19486 阅读 · 0 评论 -
MySQL索引优化,MySQL索引失效的场景(超详细!)
1.不遵循最左前缀原则2.在索引列上使用(计算,函数,or,类型转换),都是导致失效而导致全表扫描3.范围查询4.Select * 导致回表查询5.不等空值还有or导致索引失效6.like %写在左边导致索引失效7.字符串不加单引号也会导致索引失效8.SQL优化1.字段的选择2.创建索引,并使用索引3.避免走回表,尽量走覆盖索引4.遵循最左前缀原则9.索引技巧原创 2024-03-21 11:59:43 · 26190 阅读 · 1 评论 -
Mysql的锁有哪些?超详细Mysql的锁介绍,表锁,行锁,间隙锁,临键锁,意向锁,元数据锁。Mysql数据库索引有哪些?从数据结构角度,从物理存储角度,从逻辑角度来分析
Mysql的锁有哪些?超详细Mysql的锁介绍,表锁,行锁,间隙锁,临键锁,意向锁,元数据锁。Mysql数据库索引有哪些?从数据结构角度,从物理存储角度,从逻辑角度来分析原创 2024-03-05 10:40:34 · 13073 阅读 · 0 评论 -
Redis数据类型,Redis的底层数据结构,String, List(LinkedList,ZipList,QuickList),Set,ZSet,Hash(哈希表,压缩列表)
1、为了查询效率和唯一性,set采用的HT编码(Dict),Dict的key来存储元素,value统一为null。(3.2以后):LInkedList+ZipList,双端访问,内存占用低,包含多个ZipList,存储上限高。有交集和并集的功能,好友的共同关 注,保证元素的唯一,判断元素是否存在,内部同时有这两种,当元素不多的时候,优势不明显,浪费内存,因此会采用。可排序,分为score(值)值和member(键)值。:普通链表,可以双端访问,占用空间高,内存碎片多。:压缩链表,可以双端操作,内存占用低,原创 2024-03-05 14:16:21 · 21006 阅读 · 0 评论 -
MySQL的事务隔离级别?MySQL的事务的特性(ACID)?MySQL的事务会出现哪些问题?当前读和快照读的区别?MVCC是什么?
在内部定义了一些匹配规则和当前的一些事务id判断该访问那个版本的数据,不同的隔离级别快照读是不一样的,最终的访问的结果不一样。来保证数据不丢失,在宕机的时候用redolog来恢复数据,由于Buffer Pool刷新磁盘是随机io,性能消耗大,redolog file(日志文件)是追加形式,是顺序io,性能好。隔离性的保证是通过,读已提交,读未提交,可重复度,串行化,MVCC多版本并发控制来保证的。一个事务修改数据,还没有提交,第二个事务就读到了没有提交的数据,也称为脏数据。原创 2024-03-11 17:57:00 · 14166 阅读 · 1 评论 -
经典面试题:用户在浏览器输入url后会有什么操作,输入url后会经过什么步骤,在浏览器输入 URL 回车之后发生了什么?
DNS解析,浏览器会对输入的URL进行域名解析,查找到对应的IP地址,如果该域名被缓存过就直接去缓存获取,如果没被缓存就向本地DNS服务器发出请求,本地DNS没有缓存就会向根域名服务器发出请求来获取IP地址。进行TCP可靠性连接,浏览器向服务器进行三次握手操作,syn,syn-ack,ack三个阶段。断开TCP连接,四次挥手fin,ack,fin,ack四个阶段。发送http请求,向服务端发送http请求,请求返回响应数据。服务器响应请求,包括状态码,响应头,响应体。原创 2024-03-07 15:42:05 · 16948 阅读 · 0 评论 -
java的引用类型有哪些,java有哪4种引用类型?
等于没有引用,对象被回收时会收到通知。程序通过引用队列中是否有虚引用,来决定被引用的对象是否要被垃圾回收,监控对象回收的机制。:只要引用关系还在,对象救不回被回收。只有在没有其他引用关系,超过引用的作用域,对象强制赋值为NULL时就会被回收。:非必须存活的对象,JVM会在内存溢出时对其进行回收。通常实现一些缓存,内存足够保存缓存,不足时就会回收。比作悲剧的男主角(死不了),女主角(坚持不到最后),男二(牺牲品),路人甲(),:非必须存活的对象,不管如何,下次回收时JVM都会回收掉。原创 2024-03-06 15:36:17 · 6677 阅读 · 1 评论 -
SpringBoot中用到的设计模式,并指出在哪些地方用到
观察者模式:当一个对象的状态发生改变的时候,所有依赖于它的对象都会得到通知,比如ApplicationListener。装饰器模式:一些以Wrapper命名的类都是装饰器模式。策略模式:Bean的实例化包含原生对像的实例化和代理对象的实例化,不同的实例化内部逻辑不一样。代理模式:SpringAop,使用了动态代理 ,jdk动态代理和cglib字节码生产技术。简单工厂:BeanFactory ,Bean的工厂getBean创建Bean。适配器模式:MVC模块的HandleAdapter就用到适配器模式。原创 2024-03-06 15:31:31 · 11779 阅读 · 1 评论 -
java线程池?,线程池有哪些创建方式?,线程池参数?,线程池的队列有哪些?,线程池的拒绝策略?,线程池的执行流程或原理?为什么禁止用Executor来创建线程池?
都知道在java中有线程,但是创建一个线程需要上下文切换,线程其实是非常消耗性能的,线程池能帮助开发者创建线程,提高开发效率,能控制线程的数量。:通过线程池,可以避免频繁地创建和销毁线程,从而减少了线程创建和上下文切换的开销,提高了系统的性能和效率。:线程池可以限制同时执行的线程数量,通过设置线程池的大小和队列容量,可以控制系统的并发度,防止因过多的线程导致系统资源耗尽或性能下降。:线程池可以统一管理和调度线程的生命周期,包括创建、执行和销毁线程等操作。原创 2024-03-08 13:03:47 · 24118 阅读 · 1 评论