自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 仿写SpringMVC中的注解和方法映射功能

有关知识请直接点我借一步说话Controller//类型+名称+默认值 String value() default "user";

2023-07-23 18:05:28 523 18

原创 dump.rdb乱码?解析dump.rdb文件的方法

首先,dump.rdb文件是Redis的一个数据备份文件。Redis为了防止缓存失效导致缓存中的数据丢失,提供了两种策略机制:RDB机制和AOF机制。简单来说就是RDB是把。目前我调研了网上解析dump.rdb文件的方法,往往还要下载安装Mircosoft Visual C++等其他插件,特别麻烦。之后使用rdbtools解析rdb文件,转换为json文件。RDB持久化备份的默认的文件名就是dump.rdb。直接备份到磁盘,而AOF是把写入Redis数据的。插件,但是仅限于rdb文件不大的情况下。

2024-05-10 17:01:01 238

原创 缓存雪崩、缓存击穿、缓存穿透是什么、之间的区别及解决办法

下面是我自己总结的,比较简单清楚地展示了缓存雪崩、缓存击穿和缓存穿透的根本区别和相应的解决办法。

2024-05-10 16:01:48 389

原创 什么是等保?等保2.0(信息安全等级保护)

等保全名叫做信息安全等级保护,顾名思义就是指根据信息系统在国家安全、社会稳定、经济秩序和公共利益方便的中重要程度以及风险威胁、安全需求、安全成本等因素,将其划分不同的安全保护等级并采取相应等级的安全保护技术、管理措施、以保障信息系统安全和信息安全。

2024-02-01 10:16:40 325 1

原创 服务降级和熔断的区别

搜了几篇网上的回答,感觉都说的不是太清楚全面,在这里总结一下,方便后人查阅学习:目的不同:服务降级的主要目的是在面对异常情况时保障系统的可用性,通过减少非核心功能或服务的质量来维持核心功能的运行;熔断的主要目的是防止连续的服务故障对整个系统造成影响,通过中断对故障服务的请求来保护系统的稳定性,防止雪崩的发生。触发条件不同:服务降级通常是基于系统整体的负载或异常情况触发;熔断是基于某个服务的错误率触发。执行方式不同:服务降级通过降低非核心功能的优先级或关闭一些服务来应

2024-01-09 10:25:49 588

原创 类中静态代码块、实例代码块、创建实例的执行顺序——阿里面试题

【代码】类中静态代码块、实例代码块、创建实例的执行顺序——阿里面试题。

2023-08-02 22:09:31 371 1

转载 APPLICATION FAILED TO START 异常报错原因及解决方案

https://blog.csdn.net/weixin_46030002/article/details/126258006

2023-07-29 15:37:09 525

原创 Spring、SpringMVC、SpingBoot的区别

Spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以狠方便的整合各种框架,提供AOP(切面)机制弥补OOP(面向对象)的代码重复问题、更方便将不同类不同方法中的共同处理抽取成切面、自动注入给方法使用,比如日志异常等SpringMVC是spring对web框架的一个解决方案,提供了一个总的前端控制器DispatcherServlet,用来接收请求,然后定义了一套路由策略(url到handle的映射)及适配执行handle,将handle结果使用视图解析技术生成视图展示给前端有关

2023-07-29 10:03:45 429 1

原创 自定义注解和元注解

第一步,用@interface定义注解:第二步,添加参数、默认值,如果没有默认值,就必须给参数赋值://参数类型 +参数名() + String value() default "index";把最常用的参数定义为value(),推荐所有参数都尽量设置默认值。第三步,用元注解配置注解:其中,必须设置@Target和@Retention@Retention一般设置为RUNTIME,因为我​ 们自定义的注解通常要求在运行期读取。一般情况下,不必写@Inherited和。

2023-07-23 17:20:54 178 4

原创 java如何使用反射来获取某一个类的全部信息

在java.lang.reflect包中有三个类Field、Method、Constructor分别用于描述类的域、方法和构造器。这三个类都有一个叫做getName的方法,用来返回项目的名称Field类有一个getType方法,用来返回描述域所属的Class对象Method和Constructor类有一个getParameterTypes方法,返回参数类型的Class对象数组。

2023-07-23 12:39:09 421 3

原创 java如何扫描指定路径下的所有文件夹及文件,包括指定文件类型

【代码】java如何扫描指定路径下的所有文件夹及文件。

2023-07-22 14:54:47 1206 3

原创 git常用命令汇总

【代码】git常用命令汇总。

2023-07-17 21:05:07 828 12

原创 java创建对象的五个步骤

初始化(3)完成后,虚拟机对对象进行一些简单设置,如标记该对象是哪个类的实例,这个对象的hash码,该对象所处的年龄段等等(这些可以理解为对象实例的基本信息)。第(2)步完成后,紧接着,虚拟机需要将分配到的内存空间都进行初始化(即给一些默认值),这将做是为了保证对象实例的字段在Java代码中可以在不赋初值的情况下使用。应用场合:堆内存规整(通俗的说就是用过的内存被整齐充分的利用,用过的内存放在一边,没有用过的放在另外一边,而中间利用一个分界值指针对这两边的内存进行分界,从而掌握内存分配情况)。

2023-07-17 20:46:46 523 2

原创 Mybatis缓存

一级缓存作用域是sqlsession级别的,同一个sqlsession中执行相同的sql查询(相同的sql和参数),第一次会去查询数据库并写到缓存中,第二次从一级缓存中取。如果中间sqlSession去执行commit操作(执行插入、更新、删除),则会清空SqlSession中的一级缓存,这样做的目的为了让缓存中存储的是最新的信息,避免脏读。4、当 Mybatis 调用 Dao 层查询数据库时,先查询二级缓存,二级缓存中无对应数据,再去查询一级缓存,一级缓存中也没有,最后去数据库查找。

2023-07-16 20:21:56 171

原创 软件开发中的常见设计模式

它表示的是一种对象与对象之间具有依赖关系,当一个对象发生改变的时候,这个对象所依赖的对象也会做出反应。定义骨架,将一些步骤延迟到子类实现,一般通过继承实现,Spring 并没有使用这种方式,而是使用Callback 模式与模板方法模式配合,既达到了代码复用的效果,同时增加了灵活性。对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销;,不对外提供构造方法,使得只能按照定义好的方式获得对象,常用于封装统一的返回结果,包装类里面也有体现;

2023-07-16 20:19:32 329 3

原创 Innodb和MyISAM的区别

因为InnoDB的事务特性,在同一时刻表中的行数对于不同的事务而言是不一样的,因此count统计会计算对于当前事务而言可以统计到的行数,而不是将总行数储存起来方便快速查询。也就是说:InnoDB的B+树主键索引的叶子节点就是数据文件,辅助索引的叶子节点是主键的值;而MyISAM的B+树主键索引和辅助索引的叶子节点都是数据文件的地址指针。MyISAM是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引保存的是数据文件的指针。InnoDB的行锁是实现在索引上的,而不是锁在物理行记录上。

2023-07-16 20:12:33 79 2

原创 MySQL索引

从数据结构角度1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理2、hash索引:a 仅仅能满足"=",“IN"和”<=>"查询,不能使用范围查询b 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引c 只有Memory存储引擎显示支持hash索引3、FULLTEXT索引(现在MyISAM和I

2023-07-16 20:08:28 50

原创 MySQL优化的方法

前几天面试被问到,答的不全,接下来总结一下我了解到的mysql优化方式。

2023-07-16 20:00:20 100

原创 Redis哨兵机制

故障转移流程:选择一个从节点作为新的主节点,向其他slave发出通知,让其他slave成为新master的从节点;旧master复活后也将成为新master的从节点,最后向客户端通知master的变化;每个主观下线的哨兵节点向其他节点发送命令,要求设置他为leader,收到命令的哨兵如果没有同意其他节点请求则同意;哨兵会通过心跳包的方式监控所有redis节点同时对主节点发送info命令来获取所有的从节点关系图;超时则先判定为主观下线,如果其他哨兵也判定其下线并超过一定数量,就会被判定为客观下线;

2023-07-16 17:36:47 89 1

原创 Redis的持久化机制

数据是否成功写入aof文件,是由操作系统定期或当io缓冲区填满时, 自动将io缓冲区的数据写入到aof文件。操作系统自动调度刷磁盘,性能是最好的,但一般不推荐,这种方案会使Redis丢失不定量的数据而且如果用户的硬盘处理写入操作的速度不够的话,那么当缓冲区被等待写入的数据填满时,Redis的写入操作将被阻塞,这会导致Redis的请求速度变慢。是在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程就是有一个fork子进程,先将数据集写入到临时文件中,写入成功后,再替换之前的文件,用二进制压缩存储。

2023-07-16 17:35:26 429 1

原创 Redis的五大数据类型和各自的

比如在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等信息。Redis 中的 set 类型是一种无序集合,集合中的元素没有先后顺序。是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的接口。相比于 C 的原生字符串,Redis 的 SDS。

2023-07-16 17:27:51 484 1

原创 Redis与其他数据库和缓存服务器的区别

名称类型数据类型查询类型附加功能Redis使用内存存储的非关系型数据库字符串、列表、集合、散列表、有序集合每种数据类型都有自己的专属命令,另外还有批量操作(bulk operation)和不完全(partial)的事务支持发布与订阅,主从复制(master/slave replication),持久化,脚本(存储过程,stored procedure)memcached使用内存存储的键值缓存键值之间的映射创建命令、读取命令、更新命令、删除命令以及其他几个命令为

2023-07-16 17:07:58 514 1

原创 SpringBoot 常用注解

主要作用于Controller类及方法上,主要作用是请求地址的映射,当然,其中还有method属性等,method属性主要是请求类型,比如post、get等,value = RequestMethod.GET。主要作用于实体类上,编译后可以自动加上get、set、toString、equals方法等,减少我们实体类代码的书写,增加可阅读性。主要作用于Controller的类上,它是@Controller和@ResponseBody的组合注解,主要用于返回json数据。

2023-07-15 21:58:54 609 1

原创 SpringMVC流程

HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息数据转换:对请求消息进行数据转换。如String转换成Integer、Double等数据根式化:对请求消息进行数据格式化。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回给DispatcherServlet(中央处理器);

2023-07-15 21:55:48 49 1

原创 @Autowired和@Resource区别

Resource是Java自己的注解,@Resource有两个属性是比较重要的,分是name和type;所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。@Autowired是spring的注解,是spring2.5版本引入的,Autowired只根据type进行注入,不会去匹配name。@Resource和@Autowired都可以作为注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,不影响使用。

2023-07-15 21:50:22 43 1

原创 细说mysql中容易和表名混淆的关键字user和order

在 MySQL 中,“USER” 关键字用于创建和管理用户,授予和撤销用户的权限以及管理用户访问数据库的操作。通过 “CREATE USER” 语句,可以创建新的用户账户,并使用 “GRANT” 和 “REVOKE” 语句授予或撤销用户的数据库权限。通过 “ORDER BY” 子句,可以按照一个或多个列对查询结果进行升序或降序排序。上述代码创建了一个名为 “myuser” 的用户,并给予该用户对 “mydatabase” 数据库的 SELECT 和 INSERT 权限。

2023-07-15 21:29:14 729 1

原创 解决异常Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/poi/ooxml/POIXMLDocumentPa

【代码】解决异常Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/poi/ooxml/POIXMLDocumentPa。

2023-07-15 21:12:21 2303 1

原创 #{}和${}的区别

依然可以登录成功,这就是sql注入最简单的例子,但是当使用#{}时,会自动将输入的入参加上单引号,就不会发生上面的情况。2.Mybatis在处理#{}的时候会将sql中的#{}替换成?在使用mybatis的时候我们会使用到#{}和${}这两个符号来为sql语句传参数。4.#{}的变量替换是在DBMS中、变量替换后,#{}对应的变量自动加上单引号。1.#{}是预编译处理,是占位符,${}是字符串替换,是拼接符。6.使用#{}可以有效的防止sql注入,提高系统的安全性。{}对应的变量不会加上单引号。

2023-07-15 20:37:38 107 1

原创 关于前后端的Date类型的交互问题

做项目中发现前端的Date类型传向后端、后端的Date类型传向前端、后端的Date类型写入数据库都需要先进行处理才能正常实现,现在就总结一下解决办法。(mysql数据库中时间的字段用的datetime)这时,后端可以正常接收前端传来的Date类型,同时也可以正常写入数据库中。

2023-07-13 13:50:47 1837 2

原创 电脑只能登录qq,不能打开网页的解决办法

3.接着将下图中的对勾手动取消,别忘了也要点击确定哦。这是因为电脑上次关机前你。

2023-07-13 11:44:22 178 1

原创 Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid b

根据错误信息来看,问题可能出现在com.XXX.dao.OrderDao.getAllNotPayOrders这个方法的绑定语句上。根据错误信息,绑定的语句无效,也就是说无法找到相应的映射语句。

2023-07-05 18:54:51 2176

原创 eclipse的web项目生成web.xml文件的方法

当创建项目时没有勾选自动生成web.xml,这时,需要手动生成web.xml。

2023-06-07 16:37:44 2909 1

原创 泛型类的定义及使用

原因是泛型在编译期间会将这个T编译成Object,基本数据类型不能转为Object类型。同一泛型类,根据不同的数据类型创建的对象,本质上是同一类型的。jdk1.7之后,后边的<>中具体的数据类型可以忽略不写。常见的泛型标识T,E,K,V。

2023-05-24 11:19:22 153 1

原创 HashMap常用方法

【代码】HashMap常用方法。

2023-05-23 22:36:30 53 1

原创 细说128陷阱

指的是两个包装类型相比较时出现的情况。在Integer的valueOf()方法当中,在-128-127之间的数值都存储在有一个catch数组当中,该数组相当于一个缓存,当我们在-128-127之间进行自动装箱的时候,我们就直接返回该值在内存当中的地址,所以在-128-127之间的数值用==进行比较是相等的。而不在这个区间的数,需要新开辟一个内存空间,所以不相等。**注:**如果一个基本类型一个包装类型相比时会自动将包装类型拆箱成基本类型进行比较,所以不会出现128陷阱。

2023-04-24 14:19:19 377 9

原创 202206-2 寻宝!大冒险!

202206-2 寻宝!大冒险!

2022-09-15 21:00:53 154 2

原创 2021-07-09

7-8sort排序 PAT排名汇总 (25 分)计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。现在就请你写一个程序自动归并各个考点的成绩并生成总排名

2021-07-09 22:01:14 392

原创 7-8 交换二叉树中每个结点的左孩子和右孩子 (30分)

7-8 交换二叉树中每个结点的左孩子和右孩子 (30分)以二叉链表作为二叉树的存储结构,交换二叉树中每个结点的左孩子和右孩子。输入格式:输入二叉树的先序序列。提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。输出格式:输出有两行:第一行是原二叉树的中序遍历序列;第二行是交换后的二叉树的中序遍历序列。输入样例:ABC##DE#G##F###输出样例:CBEGDFAAFDGEBC#include<stdio.h>

2020-12-23 17:29:02 1134 1

原创 7-5 最长连续递增子序列 (20分)

7-5 最长连续递增子序列 (20分)给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。话不多说,直接上代码:#include<stdio.h>#define N 10000int main(){ int a[N],n; int i,t[N],j,k;//t[N]下标是递增子序列的起始位置,t[N]为递增子序列的元素个数 int max; for(i=0;i&

2020-11-28 21:33:10 854

空空如也

空空如也

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

TA关注的人

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