- 博客(46)
- 资源 (11)
- 收藏
- 关注
原创 360杀毒密码忘记怎么办?破解360密码保护解决无法卸载的方法
360杀毒是一款专业的杀毒软件,有很多朋友的电脑上都有安装,不过在一些教育用或公司内会给360杀毒设置密码,如果360杀毒设置了密码,不知道密码的情况下将会无法设置、无法退出、无法卸载,针对这个问题,小编要和大家讲解一下360杀毒密码忘记怎么办。3、实际上只要删除这个文件就可以,不过呢,普通方法是不能删除的,还是用360卫士的粉碎功能吧!5、OK,粉碎完成后,咱们再试试,是的,退出360杀毒就不需要密码了,卸载也没有问题。4、粉碎中setting.ini文件中,很容易。
2024-01-16 09:39:16 1973
原创 Reactor模式
Reactor模式一般翻译成"反应器模式",也有人称为"分发者模式它是将客户端请求提交到一个或者多个服务处理程序的设计模式。工作原理是由一个线程来接收所有的请求,然后派发这些请求到相关的工作线程中。
2024-01-08 14:30:24 1031
原创 Spring底层核心原理解析
对于这三行代码,大家应该都是比较熟悉,这是学习Spring的hello world。可光看这三行代码,其实并不能体现出来Spring的强大之处,也不能理解为什么需要ClassPathXmlApplicationContext和getBean()方法,随着课程的深入将会改变你此时的观念,而对于上面的这些疑问,也会随着课程深入逐步得到解决。对于这三行代码,你现在可以认为:如果你要用Spring,你就得这么写。就像你要用Mybatis,你就得写各种Mapper接口。
2024-01-05 16:41:05 1104
原创 分布式图文详解!
分布式事务是相对本地事务而言的,对于本地事务,利用数据库本身的事务机制,就可以保证事务的ACID特性。而在分布式环境下,会涉及到多个数据库。分布式事务其实就是将对同一库事务的概念扩大到了对多个库的事务。目的是为了保证分布式系统中的数据一致性。需要记录事务在任何节点所做的所有动作;事务进行的所有操作要么全部提交,要么全部回滚。什么是幂等性?同一个接口,多次发出同一个请求,请求的结果是一致的。简单说,就是多次调用如一次。什么是幂等性问题?用户在填写某些form表单。
2024-01-04 16:28:55 1058
原创 说说 Spring Boot 实现接口幂等性有哪几种方案?
简单的说就是调用方在调用接口的时候先向后端请求一个全局 ID(Token),请求的时候携带这个全局 ID 一起请求(Token 最好将其放到 Headers 中),后端需要对这个 Token 作为 Key,用户信息作为 Value 到 Redis 中进行键值内容校验,如果 Key 存在且 Value 匹配就执行删除命令,然后正常执行后面的业务逻辑。Put 方法一般用于修改资源。所以在使用时候需要考虑是否引入幂等性的必要性,根据实际业务场景具体分析,除了业务上的特殊要求外,一般情况下不需要引入的接口幂等性。
2023-12-20 16:15:15 2329
原创 JVM面试题,面渣逆袭必看
内存分配有两种方式,指针碰撞空闲列表指针碰撞和空闲列表指针碰撞:假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一边,空闲的内存被放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间方向挪动一段与对象大小相等的距离,这种分配方式称为“指针碰撞”。
2023-12-20 15:37:46 1334
原创 正向代理和反向代理的区别与联系
事实上,正向代理和反向代理的作用都是进行请求和转发,但是为了区别正向代理,所以后出现的就成为反向代理。生活中最常见的例子:1、正向代理: 卖票的黄牛2、反向代理: 出租房的二手东。
2023-12-20 15:35:14 850
原创 JWT身份验证
因为jwt本身无状态,后端完全可以将redis这一层的存储都直接干掉,纯依赖jwt的特性来完成身份鉴权,但是由于它的无状态,后端减少存储压力是一个好处,同样也是一个弊端,后端失去了token的管控权限,如果我们希望提前失效某些用户身份,则无法支持。用户每次请求时,依然是沿用之前的session方式的校验逻辑,再Filter层,从请求头中,获取Cookie,找到对应的jwt,然后尝试根据jwt获取对应的用户信息。3 后端接收到用户的请求,从请求头中获取jwt,然后进行校验,通过之后,才响应相关的接口;
2023-12-20 15:28:29 1051
原创 面试被问到“类的加载过程”,怎么回答可以脱颖而出?
类的初始化步骤,这看似非常基础的话题,却实打实的难住了很多人,还总结了更为深入JVM的类的加载过程、类加载器的分类、类加载器的作用。
2023-12-20 14:24:48 965
原创 SpringBoot缓存注解@Cacheable使用姿势介绍
Cacheable这个注解用于修饰方法or类,当我们访问它修饰的方法时,优先从缓存中获取,若缓存中存在,则直接获取缓存的值;缓存不存在时,执行方法,并将结果写入缓存这个注解,有两个比较核心的设置/*** 与 cacheNames 效果等价*//*** 缓存key*/cacheNames可以理解为缓存key的前缀,可以为组件缓存的key变量;当key不设置时,使用方法参数来初始化,注意key为SpEL表达式,因此如果要写字符串时,用单引号括起来一个简单的使用姿势/**
2023-12-20 11:12:04 878
原创 金三银四精选面试题系列
以上几种方式,底层都是基于Runnable。除开有可能造成OOM之外,我们使用Executors来创建线程池也不能自定义线程的名字,不利于排查问题,所以建议直接使用ThreadPoolExecutor来定义线程池,这样可以灵活控制。
2023-12-19 15:20:08 1057
原创 Redis常用内存淘汰策略?
从来说可以分为不淘汰任何数据、只从设置了到期时间的键中淘汰和从所有键中淘汰三类。而从来分,又主要分为 random(随机),LRU(最近最少使用),以及 LFU(最近最不常使用)三种。内存总是有限的,因此当 Redis 内存超出最大内存时,就需要根据一定的策略去主动的淘汰一些 key,来腾出内存,这就是内存淘汰策略。我们可以在配置文件中通过配置指定策略。与到期删除策略不同,内存淘汰策略主要目的则是为了防止运行时内存超过最大内存,所以尽管最终目的都是清理内存中的一些 key,但是它们的是不同的。
2023-12-15 14:44:11 1095
原创 如何实现一个 RPC 框架?
一般情况下, RPC 框架不仅要提供服务发现功能,还要提供负载均衡、容错等功能,这样的 RPC 框架才算真正合格的。为了便于小伙伴们理解,我们先从一个最简单的 RPC 框架使用示意图开始。从上图我们可以看出:服务提供端 Server 向注册中心注册服务,服务消费者 Client 通过注册中心拿到服务相关信息,然后再通过网络请求服务提供端 Server。作为 RPC 框架领域的佼佼者的架构如下图所示,和我们上面画的大体也是差不多的。
2023-12-15 14:27:08 1213
原创 Java单例模式
静态内部类在Singleton类被装载时不会立即实例化,而是在需要实例化时,调用getInstance方法,才会装载SingletonInstance类,从而完成Singleton的实例化。缺点:在类装载的时候就完成实例化,没有达到lazy loading的效果,如果从始至终都未使用过这个实例,则会造成内存的浪费。类的静态属性只会在第一次加载类的时候初始化,JVM帮助我们保证了线程的安全性,在类进行初始化时,别的线程无法进入。优点:这种写法比较简单,就是在类装载的时候就完成实例化,避免了线程同步问题。
2023-12-13 14:56:11 976
原创 源码级详解Spring的三级缓存,循环依赖的处理流程
1.一级缓存:存放已经初始化完成的Bean2.二级缓存:存放半成品Bean,既实例化完成未初始化的Bean。3.三级缓存:存放bean工厂一级缓存是必须的,这个我们没有什么疑问。那为什么要有二级缓存,二级缓存主要是用来解决循环依赖的问题。循环依赖就是指循环引用,是两个或多个Bean相互之间的持有对方的引用。kotlin复制代码@Service@Resourcekotlin复制代码@Service@Resource。
2023-12-11 17:34:07 605
原创 Java的三种代理模式实现
代理模式的定义:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。简单说,就是设置一个中间代理来控制访问原目标对象,达到增强原对象的功能和简化访问方式的目的。代理模式通用类图Java实现代理模式分为两类三种,两类是静态代理和动态代理,动态代理又可以分为JDK动态代理和CGLIB动态代理。Java实现代理模式。
2023-12-07 09:23:14 1083
原创 从零到一学习Sharding-JDBC
分库分表是一种数据库分片技术,用于解决大规模应用中单一数据库容量不足以支持高并发和大数据量的问题。它将一个大型的数据库拆分成多个小型数据库,每个小型数据库称为一个分片。每个分片存储部分数据,从而降低了单个数据库的负担。简单来说,分库是将原本的单库拆分为多个库,分表是将原来的单表拆分为多个表。很多情况下,分库分表并不是从系统设计开始就存在的,而是系统运行过程中,出现数据量庞大或者查询性能慢等问题延伸而来。如果你在业务功能开发时,已经预知业务数据库量,应提前进行分库或者分表,做好分片规范,避免系统运行时拆分。
2023-12-06 14:20:20 915
原创 Redis缓存设计
一个并发访问量比较大的key在某个时间过期,导致所有的请求直接打在DB上。解决⽅案:加锁更新,⽐如请求查询A,发现缓存中没有,对A这个key加锁,同时去数据库查询数据,写⼊缓存,再返回给⽤户,这样后⾯的请求就可以从缓存中拿到数据了。将过期时间组合写在value中,通过异步的⽅式不断的刷新过期时间,防⽌此类现象。
2023-12-05 17:26:37 1045
原创 Redis持久化
AOF(append only file)持久化:以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。由于RDB⽂件是保存在硬盘上的,所以即使Redis崩溃或者退出,只要RDB⽂件存在,就可以⽤它来恢复还原数据库的状态。恢复的过程也很简单,把RDB或者AOF文件拷贝到Redis的数据目录下,如果使用AOF恢复,配置文件开启AOF,然后启动redis-server即可。
2023-12-05 16:52:29 849
原创 Redis基础
Redis是一种基于键值对(key-value)的NoSQL数据库。比一般键值对数据库强大的地方,Redis中的value支持string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构,因此 Redis可以满足很多的应用场景。而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常出色。
2023-12-05 16:28:39 784
原创 Cookie 和 Session 有什么区别?
进行 Session 认证的时候,我们一般使用 Cookie 来存储 SessionId,当我们登陆后后端生成一个 SessionId 放在 Cookie 中返回给客户端,服务端通过 Redis 或者其他存储工具记录保存着这个 SessionId,客户端登录以后每次请求都会带上这个 SessionId,服务端通过这个 SessionId 来标示你这个人。典型的场景是购物车,当你要添加商品到购物车的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。说简单用你的身份去发送一些对你不友好的请求。
2023-10-26 17:20:48 50
原创 Java基础面试题
悲观锁是一种假定在多线程环境下会发生冲突的锁,例如使用Synchronized或ReentrantLock。乐观锁是一种假定在多线程环境下不会发生冲突的锁,例如使用CAS(比较并交换)机制。如果发生冲突,它会进行回滚或重试。
2023-10-26 17:17:29 37
原创 MySQL面试题
回表查询是数据库查询操作中的一种,它发生在索引无法覆盖查询所需的数据时。当一个查询需要检索的数据无法完全从索引中获取时,数据库系统必须通过索引查找到主键,然后使用主键再次查询表中的数据,这个额外的查询过程称为回表查询。ZSet(有序集合)是一种有序的集合,其中的每个元素都关联一个分数(score),可以根据分数来排序元素。总的来说,无论是否有主键,回表查询都意味着额外的查询操作,这会影响查询性能。在没有主键的情况下,数据库系统会使用一个唯一索引(如果存在的话)来定位行,而不是使用主键。
2023-10-26 17:15:14 45
转载 秒杀系统如何避免库存超卖?
官方介绍:Redisson是一个基于Redis的Java驻留内存数据网格(In-Memory Data Grid)。它封装了Redis客户端API,并提供了一个分布式锁、分布式集合、分布式对象、分布式Map等常用的数据结构和服务。Redisson支持Java 6以上版本和Redis 2.6以上版本,并且采用编解码器和序列化器来支持任何对象类型。Redisson还提供了一些高级功能,比如异步API和响应式流式API。它可以在分布式系统中被用来实现高可用性、高性能、高可扩展性的数据处理。
2023-10-24 11:03:58 177
原创 spfa判断负环
接下来 m 行每行包含三个整数 x,y,z ,表示存在一条从点 x 到点 y 的有向边,边长为 z。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。如果图中存在负权回路,则输出 Yes,否则输出 No。图中涉及边长绝对值均不超过 10000。请你判断图中是否存在负权回路。第一行包含整数 n 和 m。
2023-06-20 21:57:59 38
原创 LCP 30. 魔塔游戏
假定小扣原计划按房间编号升序访问所有房间补血/打怪,为保证血量始终为正值,小扣需对房间访问顺序进行调整,每次仅能将一个怪物房间(负数的房间)调整至访问顺序末尾。小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值;输入:nums = [100,100,100,-250,-60,-140,-50,-50,100,150]输入:nums = [-200,-300,400,0]
2023-06-20 21:52:05 72
ALIENTEK MINISTM32 实验38 综合测试实验.zip
2023-06-14
java学生信息与成绩管理系统
2023-01-01
python樱花飘落代码
2022-11-27
网页版五子棋小游戏.html
2022-11-14
网页2048小游戏.zip
2022-11-12
改造版羊了个羊.zip
2022-11-12
遗传算法在M×N阵列可重构天线中的应用(Application of Genetic Algorithm in M × N Re
2022-11-10
springboot网页版五子棋对战
2022-10-25
SpringBoot前后端分离的管理系统.zip
2022-10-25
HTML5 2020年除夕倒计时时钟代码.zip
2022-10-25
python游戏项目脚本大全.zip
2022-06-07
2048小游戏C/C++实现
2022-06-04
单片机-温度报警系统.zip
2022-05-21
十三届蓝桥杯比赛真题大全
2022-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人