自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC执行流程

SpringMVC调用流程,理解请求响应

2024-03-19 18:06:12 953

原创 工厂设计模式

设计模式是专门用来解决某种特殊情况下的代码逻辑,今天,我们就来了解一下工厂设计模式。

2022-09-20 10:02:05 875

原创 map的遍历方式

java中 map的遍历方式

2022-08-24 00:56:09 312 1

原创 字符串常量与字符串对象分配内存时的区别

字符串常量和字符串变量以及他们对象的创建过程,字符串常量:是放在字符串常量池里的,在代码里也就是"abc"字符串对象:是一个对象,是放在堆里的,在代码里也就是"new String("abc")"String s1 = new String("abc")String s2 = "abc".........

2022-06-30 08:15:00 675 1

原创 力扣62 不同路径(从矩阵左上到右下的所有路径数量) (动态规划)

今天遇到一道个人认为很有价值的动态规划问题。从这道题里,个人感觉对动态规划有了更深刻的了解,大家可以看看对自己又没有帮助。先看题目:一个机器人位于一个 m x n 网格的左上角,机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角问总共有多少条不同的路径?示例解答: 由题目得知,每一次只能向下或者向右移动由此我们推知 ===》 到达一个格子的路径数量,由它左边格子和上边格子所决定 由此我们推知 ===》 这里可以使用动态规划的思想来解决由此动态方程 ===》 dp[i][j] = dp[i-1][

2022-06-29 21:12:48 768

原创 一段程序让你明白什么静态内部类,局部内部类,匿名内部类

内部类是定义在另一个类中的类。为什么需要使用内部类呢? 其主要原因有以下三点:那么接下来直接上代码来举例

2022-06-27 22:08:19 133 1

原创 session和cookie的区别

目录session是什么?cookie是什么?session和cookie的区别 当用户浏览器在向服务器发送请求的时候,服务器会创建一个session(如果存在和这个浏览器的session则不创建)并记录一个sessionID,用来保证一个用户对应一个sessionID。所以可以看到,session是保存在服务器的。 用户第一次请求服务器后,服务器在响应的时候,会给用户发送一个cookie,cookie存在用户的本地或者浏览器上,以后用户再请求服务器会自动带着cookie来请求,

2022-06-05 10:10:43 205

原创 类加载器、双亲委派模型

目录应用程序类加载器 (系统类加载器) AppClassLoader扩展类加载器 Extension ClassLoader引导/启动类加载器 Bootstrap ClassLoader双亲委派模型一般来说java有着三层类加载器、双亲委派的类加载架构,今天我们来介绍一下是哪三层类加载器。我们自定义一个类,然后通过类。class.getClassLoader查看我们自定类的类加载器,可以发现结果是AppClassLoader,然后我们......

2022-05-19 09:58:07 668

原创 缓存穿透、缓存击穿、缓存雪崩的区别及解决方法

目录一、缓存穿透什么是缓存穿透解决方法二、缓存击穿什么是缓存击穿解决方法三、缓存雪崩什么是缓存雪崩解决方法一、缓存穿透什么是缓存穿透当用户去请求查询一个不存在的数据时,到redis缓存中查询不到,所以都去数据库中查询,数据库也没有这个数据,一直查询,数据库压力过大,导致数据库崩溃。解决方法① 空值缓存:对于不存在的数据,依然对它进行缓存,但是设置短一些的过期时间,会有额外的内存消耗。② 布隆过滤器:布隆过滤器是一种数据...

2022-05-12 05:38:05 1870

原创 java 线程的优先级

线程优先级现代操作系统基本采用时分的形式调度运行的线程,操作系统会分出一个个时间片,线程会分配到若干时间片,当线程的时间片用完了就会发生线程调度,并等待着下次分配。线程分配到的时间片多少也就决定了线程使用处理器资源的多少,而线程优先级就是决定线程需要多或者少分配一些处理器资源的线程属性。在Java线程中,通过一个整型成员变量priority来控制优先级,优先级的范围从1~10,在线程构建的时候可以通过setPriority(int)方法来修改优先级,默认优先级是5,优......

2022-05-04 17:34:58 4431

原创 Redis的持久化操作AOF的配置、配置文件讲解

目录配置文件AOF开关 appenonly noAOF持久化文件名配置AOF同步频率 appendfsync重写规则配置在之前的文章中,我给大家简单介绍了一下AOF,在这篇文章中,我来给大家讲解一下AOF的一些相关配置。配置文件appenonly no # AOF的开关 默认为noappendfilename "appendonly.aof" ...

2022-05-04 01:13:51 1508

原创 Redis持久化操作之AOF

之前给大家介绍了RDB的持久化方式,今天给大家来介绍redis中的另一种持久化方式----AOF一、AOF(Append Only FIle)以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis 启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。二、持久化流程...

2022-05-03 03:19:15 1157

原创 Redis的持久化操作RDB的配置、配置文件讲解

目录RDB的配置​stop-writes-on-bgsave-errorrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./save的用法RDB的配置持久化的配置也是在配置文件中配置的,也就是我们之前文章中用到过的redis.confvim进入编辑后,通过/SNAPSHOTTING搜索定位到这里然后我带着大家来认识这些配置的含义stop-writes-on-bgsa...

2022-05-01 23:25:42 1433

原创 Redis的持久化操作之----RDB

我们都知道redis是一个基于内存的数据库,它的数据是存在内存中的,但是redis的数据也是可以写入到硬盘中去的。这个过程就称为持久化操作。 下面我来给大家介绍redis的两种持久化方式RDB和AOF之一的RDB方式一、RDB(Redis DateBase) 指在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的 Snapshot快昭,它恢复时是将快昭文件直接读到内存里。通俗来说也就是每隔一段时间,会将当前时间点中re...

2022-05-01 01:55:15 1000

原创 Java类变量的初始化

类的初始化阶段是类加载过程中的最后一个步骤。在前面的类初始化阶段中的准备(prepare)阶段中已经给类变量进行赋予初始值(0值),所以到了初始化阶段,会根据程序员通过程序编码指定的主观计划去初始化类变量和其他资源。我们也可以从另外一种更直接的形式来表达:初始化阶段就是执行类构造器clinit()方法的过程。clinit()并不是程序员在Java代码中直接编写的方法,它是Javac编译器的自动生成物.通俗来讲,到了初始化阶段,静态变量也就被赋予我们...

2022-04-30 16:00:52 3438

原创 Idea中jclasslib的安装与使用

我们学习JVM的时候常常需要查看字节码指令,而idea中就可以下载jclasslib插件,进行字节码指令的查看。下面我来带大家jclasslib的安装。安装安装之后重启即可使用使用的时候只需要点开view选中下图的选项即可,但是要注意是编译后再使用jclasslib...

2022-04-30 14:31:54 5178 2

原创 Java虚拟机的类加载机制

Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。今天要来介绍的就是如下同标识中的内容类的加载流程一个类的加载需要经过 加载、验证、准备、解析、初始化、使用、卸载如上图,加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按 照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始参考

2022-04-29 17:36:39 1532

原创 Java中的输出 Scanner

目录一、使用及实例化二、nextInt和nextLine方法nextInt()nextLine()三、示例验证nextInt:根据分隔符,空格或者回车都行只能读数字nextLine和的区别一、使用及实例化首先,使用Scanner需要导包import java.util.Scanner;实例化方法:Scanner in = new Scanner(System.in);这里没有太多争议,不在过多赘述。二、nextInt和nextLi.

2022-04-10 11:24:54 715

原创 数据库中的聚簇索引和非聚簇索引

聚簇索引和非聚簇索引的比较聚簇索引和非聚簇索引最大的区别就在于数据和索引是否分开储存。聚簇索引:将数据和索引一起储存,索引结构的叶子节点存的是数据行。非聚簇索引:数据和索引分开储存,索引结构的叶子节点存的是指向数据行的地址。在InnoDB引擎中,默认的索引是B+树索引,利用主键创建的索引:主键索引也是聚簇索引,在主键索引上创建的索引是辅助索引,也是非聚簇索引,辅助索引的叶子结点储存的是主键。在MYISAM引擎中,默认的索引是B+树索引,但是主键索引和辅助索引都是非聚簇索引,也就是说索引

2022-04-07 23:29:45 1301

原创 消息队列、什么是消息队列

目录一、什么是消息队列二、为什么要用消息队列三、什么是同步异步四、使用消息队列带来的一些问题一、什么是消息队列我们可以把消息队列(Message Queue)看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。消息队列是分布式系统中重要的组件之一。使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。我们知道队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。...

2022-04-06 10:34:39 868

原创 redis 中的配置文件 redis.conf 讲解

今天我们,继续redis的学习,我之前的文章中已经介绍了redis的安装:redis保姆级安装教学_裴南苇_的博客-优快云博客redis的后台启动:​​​​​​redis配置后台启动_裴南苇_的博客-优快云博客redis的键值对命令:redis 中键值对的常用命令 (附有示例)_裴南苇_的博客-优快云博客redis的五大数据结构:redis中字符串(String)类型常见命令操作 (附有示例)_裴南苇_的博客-优快云博客redis 中 List类型介绍 及常用命令(...

2022-04-02 21:00:34 1100

原创 redis 中的跳跃表(跳表)

目录一、简介跳跃表效率体现:解释一、简介跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他的几点指针,从而达到快速访问队尾目的。跳跃表的效率可以和平衡树相媲美了,最关键是它的实现相对于平衡树来说,代码的实现上简单很多。跳跃表在 Redis 中使用不是特别广泛,只用在了两个地方。一是实现有序集合键(Zset),二是集群节点中用作内部数据结构有序集合在生活中比较常见,例如根据成绩对学生排名,根据得分对玩家排名等。对...

2022-04-02 19:55:26 2428

原创 redis 中Zset(有序集合)介绍 及常用命令(附有示例)

目录一、Zset有序集合介绍二、常用命令三、示例zadd ...zrange [WITHSCORES]zrangebyscore key min max [withscores] [limit offset count]zrevrangebyscore key max min [withscores] [limit offset count]zincrby zrem zcount zrank 一、Zset有序集合介绍Redis有序集合zset 与.

2022-04-01 23:18:43 37083 4

原创 redis 中 Hash哈希介绍 及常用命令 (附有示例)

一、Redis中Hash介绍Redis Hash是一个键值对集合Redis hash 是一个String类型的 field 和 value 的映射表,hash特别适合用于存储对象类似于Java里面的Map<String,Object>用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储主要有以下两种存储方式方法一:每次修改的话需要,先取出来,然后解析,修改,再放序列化放回去,非常的麻烦,所以不推

2022-04-01 22:10:11 16357 4

原创 redis 中Set类型 及常用命令(附有示例)

一、Redis中Set介绍Redis set 对外提供的功能与list类似,是一个列表的功能特点:set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的redis的Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加、删除、查找的复杂度都是O(1) 一个算法,随...

2022-04-01 20:07:48 12044

原创 redis 中 List类型介绍 及常用命令(附有示例)

目录一、Redis List 列表单键多值特点:​二、常用命令三、示例lpush/rpush ...lrange lpop/rpop rpoplpush 一、Redis List 列表单键多值一个key 里面装着多个值例如 name 为key value: zhangsan lisi wangwu 后面的value用相应的list进行存储特点:redis列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部或者尾部

2022-04-01 16:12:41 2297

原创 redis 中键值对的常用命令 (附有示例)

目录一、redis介绍二、常见key的命令三、示例keys *exists keytype keydel keyunlink keyexpire key 10select xdbsizeflushdbflushall一、redis介绍redis是完全免费的,遵守BSD协议,是一个高性能的键值数据库,是当前最热门的Nosql(Not Only SQL)数据库之一,也被人们称为数据结构服务器在redis中主要使用键值对的方式进行...

2022-03-31 14:46:42 3042

原创 redis中字符串(String)类型常见命令操作 (附有示例)

目录一、redis中的常见数据结构二、redis中字符串(String)介绍三、常见命令四、示例set命令与get命令setnx append strlen incrdecr一、redis中的常见数据结构Redis共有5种常见数据结构,分别字符串(STRING)、列表(LIST)、集合(SET)、散列(HASH)、有序集合(ZSET)。本文这里主要介绍字符串的常见操作二、redis中字符串(String)介绍String 是Red设置...

2022-03-31 14:23:27 3219

原创 redis配置后台启动

如果我们redis一直是前台启动的话,操作非常的不方便,一旦关闭此会话,redis就自动断开了所以我们需要将redis配置后台启动我们启动redis的时候,默认采用他自带这这个redis.conf文件,而conf文件中默认设置不能后台启动,所以我们需要一个允许后台启动的配置文件,有两种选择,可以选择将自带的配置文件修改,也可以选择复制一个副本进行修改,用修改后的配置文件启动,本文这里选用后者:先把redis.conf文件复制一份到 /etc目录下,也可以选择复制到其他文件中

2022-03-29 21:05:59 15391 2

原创 redis保姆级安装教学

下载安装包首先我们去到官网https://redis.io直接点击Download下载我们直接将它下载到桌面,方便我们等会安装到服务器上上传服务器然后我们连接我们的远程服务器我选择把redis安装在opt文件夹下我们直接用 rz 命令上传redis压缩包如果没有rz 命令的话,用下面的命令直接yum下载就好yum -y install lrzszrz上传的时候一定要快一些选中所需要的上传的本地文件,不然可能会上传失败解压并...

2022-03-29 10:54:50 878 1

原创 Java中Final关键字

目录一、修饰类:不可以继承二、修饰变量:不可以重新赋值三、修饰方法:不可以重写四、修饰数组:防止指令重排序一、修饰类:不可以继承final修饰的类是不可以被继承的,如下图二、修饰变量:不可以重新赋值当final修饰一个变量时,不可以对它进行二次赋值三、修饰方法:不可以重写当继承一个类时,这个父类中被final修饰的方式是不可以被重写的四、修饰数组:防止指令重排序好了,这次的文章就到这里,喜欢的同学可以点赞收藏,遇到问题,..

2022-03-14 21:17:13 372

原创 Java对象和类初始化顺序和步骤(详细例子)

最重要的两点:静态变量/静态代码块 -> 非静态变量/代码块 -> 构造方法静态变量初始化时,先赋值为0,对象初始化为nul下面请看例子:代码部分:public class InitializeDemo { private static Integer k = 1; private static InitializeDemo t1 = new InitializeDemo("t1"); private static InitializeDemo t2

2022-03-11 12:44:08 636 1

原创 java中什么是值传递

我们首先用一个例子引出这个问题(后面会放出全部代码)如下图代码,输出后a和b的值,以及张三李四会交换吗我们直接给出结果:结果一定是不会交换的那么为什么他不会交换呢?我给大家画一下这段程序执行时堆栈的解析图首先Main方法入栈,然后实例化a,b,我们不妨设10所在地址为1001,b所在地址为1002,然后让ab分别指向他们,然后change(a,b)方法入栈实例化abt然后t =a ,a=b,b=t 也就是让t指向a(1001),a去指向b(100...

2022-03-10 18:21:38 4252 5

原创 什么是128陷阱,以及什么时候才会涉及128陷阱

一:什么是128陷阱我们可以看如下例子大多数情况下,容易有一种假象, 即基本类型与它们的对象包装器是一样的,只是它们 的相等性不同。大家知道, == 运算符也可以应用于对象包装器对象, 只不过检测的是对象是否指向同一个存储区域, 因此,上面的比较通常不会成立。解决这个问题的办法是在 两个包装器对象比较时调用 equals 方法:那么为什么会举128这个数值的这个例子呢:再看下图a和b还是2个包装器对象,那为什么这次变成127之后就直接可以用==比较了呢?难道他们不是包..

2022-03-09 15:11:11 456

原创 力扣34. 在排序数组中查找元素的第一个和最后一个位置 ---java代码

暴力解先判断数组只有一个数的情况,看看是否是目标数,如果是就是返回[0,0]不是就返回[-1,-1]然后判断数组中多余一个数的情况,先二分查找,看看数组中是否有目标数,如果有,再去找目标数的边界问题,如果没有则返回[-1,-1]以下是全部代码部分 public static int[] searchRange(int[] nums, int target) { int left = 0; int right = nums.leng...

2022-02-18 11:53:49 297 1

原创 Field ‘id‘ doesn‘t have a default value问题解决方法,报错解决方法

Field 'id' doesn't have a default valueid这个字段没有一个默认的值,

2022-01-21 13:25:40 1332 1

原创 Swagger报错TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have

Swager测试报错,TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have

2022-01-16 23:16:15 3391

原创 数据结构八大排序之冒泡排序--Java

今天给大家来讲解一下冒泡排序。首先来介绍一下冒泡排序的基本原理:对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就会逐个往前移动,好像气泡网上漂浮一样。冒泡排序特点:升序排序当中每一轮比较会把最大的数沉到最底(这里以从小到大为例),所有相互比较的次数每一轮会比前一轮少一次。

2021-12-26 22:26:06 350

原创 左连接,右连接与自然连接语法以及注意点

我们今天来学习一下sql语句中的左连接右连接以及自然连接,先说结论:左连接:以左表为主,显示左表所有的数据,右表中没有的显示null值。右连接:以右表为主,显示右表所有的数据,左表中没有的显示null值.内连接或者自然连接:只显示两表都有的.没有看懂,没关系,我们通过简单的示例来让大家清晰的了解他们关系和区别首先我们新建2张表首先是学生表:然后是课程表:我们往两个表中随便添加一些数据,方便我们等会做测试注意这里课程号没有5,只有6条数据然.

2021-11-04 10:15:05 3321 1

原创 使用插件Grep Console改变log4j2打印颜色----idea插件Grep Console使用分享

今天给大家安利一个本人认为非常好用的idea插件在学习SpringBoot的时候,使用了log4j2,不可否认log4j2非常好用,但是每次打印,出来的都是黑色的字,不好看而且并不好认类型,每次都看前面字头是info还是error,所以,我找了一个idea里一个可以改变log4j2打印颜色的一个小插件----Grep Console没使用插件前:使用插件后:这里不止是这几种颜色,颜色可以自己设置接下来,我来教大家一步一步,保姆级操作教学然后重启idea就安装好了。然...

2021-11-03 15:56:44 2272 2

空空如也

空空如也

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

TA关注的人

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