自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录springboot监听redis过期key

在一个需求中,需要当redis的key删除或过期的时候往日志表中插入一条对应的记录。那么如何监听redis的过期key呢?1.首先需要设置redis配置文件notify-keyspace-events Ex,或者使用命令 CONFIG set notify-keyspace-events Ex。那么notify-keyspace-events 后面都有哪些参数呢输入的参数中至少要有一个K或者E,否则其余参数不会有任何的通知生效。2.springboot中配置redis@Configurati

2021-09-12 22:24:02 1061

原创 JVM-String:intern()方法

intern()的使用:  如果不是用双引号声明的String对象,可以使用String提供的intern方法:intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中。  比如:String myInfo = new String(“I love atguigu”).intern();  也就是说,如果在任意字符串上调用String.intern方法,那么其返回结果所指向的那个类实例,必须和直接以常理形式出现的字符串实例完全相同。因此,下列表达式的值必定是tru

2020-12-31 14:43:37 227

原创 JVM-String:字符串拼接操作

1.常量与常量的拼接结果在常量池,原理是编译器优化@Test public void test01(){ String s1 = "a" + "b" + "c";//等同于"abc" String s2 = "abc";//"abc"一定是放在字符串常量池中,将此地址赋给s2 /** * 最终 .java编译成.class,再执行.class * String s1 = "abc"; * Stri

2020-12-24 20:19:33 278

原创 JVM-String:String的基本特性

String:字符串,使用一对""引起了表示。  String s1 = “zmh”;//字面量的定义方式  String s2 = new String(“hello”); String声明为final,不可被继承 String实现了Serializable接口:表示字符串是支持序列化的。     实现了Comparable接口:表示String可比较大小 String在jdk8及以前内部定义了final char[] value用于存储字符串数据。jdk9

2020-12-22 20:57:13 141

原创 理解Callable接口

Callable接口是另一种获得线程的方法,在这之前,所知道的获得线程的方法是:继承Thread类,实现Runnable接口。在这里需要知道runnable接口和callable接口的区别Callable有返回值,runnable没有返回值Callable抛异常,runnable不抛异常落地方法不一样,一个是run,一个是callclass mythread1 implements Runnable{ @Override public void run() { // TODO Auto

2020-07-12 10:47:14 140

原创 java多线程:生产者和消费者(两种方法) 不去继承Thread类或实现Runnable接口的写法

题目:现在两个线程,可以操作初始值为零的一个变量,实现一个线程对该变量加1,一个线程对该变量减1,实现交替,来10轮,变量初始值为零。方法一:使用synchronized控制先创建资源类class Aircondition{ private int number = 0; public synchronized void increment() throws Exception{ ...

2020-05-25 11:22:55 288

原创 springboot-国际化功能(点击切换登录页面的语言)

首先需要做的是编写国际化的配置文件在类路径下新建文件夹,里面放三个配置文件,其中两个的命名是:语言代码加国际代码另一个是默认显示的@ConfigurationProperties(prefix = "spring.messages")public class MessageSourceAutoConfiguration { //我们的配置文件可以直接放在类路径下叫messages.properties; private String basename = "messages"; @Bean

2020-05-11 21:33:03 471 1

原创 springboot对静态资源的映射规则

首先我们找到这个类:WebMvcAutoConfiguration,从他的后缀看出这是一个有关springmvc自动配置类。在源码中有一个addResourceHandlers方法,这个方法就是对静态资源的配置@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.r...

2020-04-28 22:27:02 161

原创 springboot的@PropertySource,@ImportResource,@Bean

@PropertySource:加载指定的配置文件;@Component @ConfigurationProperties(prefix = "person")@PropertySource(value = {"classpath:person.properties"})public class Person { private String name; private Integer...

2020-04-15 21:26:55 64

原创 springboot的@Value获取值、@ConfigurationProperties获取值

@Value获取值@Value:是一个一个指定值的,不支持松散绑定(松散语法)、支持spEl(spring的表达式语言),不支持JSR303数据校验、不支持复杂类型封装(想map之类的)。@Component public class Person { @Value("${person.name}") private String name; @Value("#{11*2}") pr...

2020-04-15 21:00:27 686

原创 ==和equals方法

java程序中测试两个变量是否相等有两种方式:一种是利用= =运算符,另一种是利用equals()方法。当使用= =来判断来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数值类型严格相同),则只要两个变量的值相等,将返回true。但对于两个引用类型变量,只有他们指向同一个对象时,= =判断才会返回true。= =不可用于比较类型上没有父子关系的两个对象。clas...

2020-04-12 21:08:45 102

原创 java 初始化块

首先需要知道,一个类里面可以有多个初始化块,相同类型的初始化块之间有顺序:前面定义的初始化块先执行,后面定义的初始化块后执行。初始化块的修饰符只能是static,使用static修饰的初始化块被称为类初始化块(静态初始化块),没有static修饰的初始化块被称为实例初始化块(非静态初始化块)。实例初始化块和构造器实例初始化块的基本用法:如果有一段初始化处理代码对所有对象完全相同,且无须接收任...

2020-04-08 09:37:52 123

原创 LeetCode:sum-root-to-leaf-numbers

题目描述给定一个仅包含数字0-9的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1->2->3,那么这条路径就用123来代替。找出根节点到叶子节点的所有路径表示的数字之和如果理解清楚了话,那么这个题就直接递归解决了public class SumRootToLeafNumbers { class TreeNode { in...

2020-04-02 19:56:26 85

原创 LeetCode:path-sum-ii

给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum的路径,例如:给出如下的二叉树,sum=22,返回[ [5,4,11,2], [5,8,4,5]]根据path-sum这个的思路以及针对树问题的解法,首先考虑的就是递归,关键就是这个递归怎么构造。递归的思路很简单:就是递归遍历一棵树,也就是先序遍历,在遍历的过程中去把节点上的值收集起来,满足的留下,不满足...

2020-04-02 19:46:45 147

原创 LeetCode:construct-binary-tree-from-inorder-and-postorder-traversal

题目描述给出一棵树的中序遍历和后序遍历,请构造这颗二叉树。这个是数据结构考试的时候较常考的一道题了,这个和根据先序遍历和中序遍历确定二叉树一样。都是通过先序或后序遍历确定根节点,然后根据中序遍历确定根节点的左右子树。再在左右子树的部分去递归上面的过程。class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(...

2020-03-31 21:55:15 127

原创 javaweb:下载功能的实现

我们的需求是:提供html,图片,zip,xlsx,txt的下载功能,不管是不是浏览器能识别的内容都会以附件的形式下载到本地一、超链接方式实现这种的缺点就是:浏览器能解析的类型直接打开,不能解析的类型就会下载。就是当点击的只有像zip,xlsx等这种类型的文件会直接下载,其他的点击就显示了。当点击html下载的时候,因为浏览器可以解析该类型就直接显示了但是点击zip就会下载了。二、...

2020-03-31 21:15:21 442

原创 java 理解内存中的数组

看《疯狂java讲义》数组的部分,对自己之前不清楚的部分做个总结。内存中的数组public class ArrayInRam { public static void main(String[] args) { // 定义并初始化数组,使用静态初始化 int[] a = {5,4,3}; int[] b = new int[4]; //b数组的长度 System.out....

2020-03-28 11:22:48 98

原创 LeetCode:树 通过率高的前十道题

关于这前十道题,总结出来的一点就是递归,树的问题递归来写是非常简单,因为递归的话方便回到父节点。maximum-depth-of-binary-tree题目描述求给定二叉树的最大深度,最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。这个就可以直接递归,求整棵树的最大深度可以看出求左右两颗子树的最大深度的问题,这样就把问题划分成了两个子问题。public static c...

2020-03-23 11:16:07 172

原创 左神算法:从暴力递归到动态规划

1.暴力递归递归行为是大问题和子问题同样的流程和标准,有自己的base case,递归代表尝试。我不知怎么算,知道怎么试n!问题怎么尝试,n!问题的子问题就是(n - 1)! * n,base case是什么,就是样本量划分到什么程度的时候就不用划分子问题了。n规模的问题,解决n - 1规模的问题,再去解决n - 2规模的问题,直到解决1规模的问题,如果尝试顺序定了的话,他就是这么个依赖关...

2020-03-14 14:05:58 595

原创 左神算法:前缀树和贪心

1.前缀树某些字符串在生成这些前缀树的过程中是这么生成的。前缀树也是一颗树结构假设把“abc”放入这颗树中。看头结点有没有走向a的路,每一个字母是填在路上的,不是填在点上面的。没有就加入,通过这种方式把abc加入到树中。如果把“abd”加到树上,从头结点开始有走向a的路吗?有,就复用,不重复建。再看从a到达的结点往后有没有b的路,有就复用,但是之后没有走向d的路。就建出来。一个字符串加的过程中总...

2020-03-14 09:33:41 163

原创 整理课题(使用ssm,有简单图片的上传和分页)中遇到的问题

1.图片的上传我写的是web项目,所以需要先导入jar包commons-fileupload-1.3.1.jarcommons-io-2.2.jar表单的提交方式必须为post 而且编码必须为二进制编码。enctype=“multipart/form-data”就是类似于下面的代码<form action="${pageContext.request.contextPath}...

2020-03-07 12:58:19 129

原创 ssm 整合后mybatis查询出现null的情况

今天在写课题的登录功能,在查询是否有这个用户的时候,出现了查询用户为空的情况。在找错误的时候,一直以为是自己的配置文件或者是sql语句写错了。但是这样找了一下午也没有发现问题。最后在老师的提醒下,发现了用户名和密码并没有传到Handler里面。因为用的页面是老师写好的,没有注意页面中的里面的name属性和数据库中不一致的原因。就是上面的两个图片中圈起来的部分没有对应起来,导致了在查询过程中没有...

2020-03-03 19:53:46 617

原创 并查集的结构实现

并查集的结构实现,对外提供两个方法:1.检查两个元素是否属于一个集合2.将两个元素所在的集合合并在一起下面这个图是并查集的结构类似图,就是一颗多叉树public static class UnionFindSetr{ private HashMap<node,node> fatherMap;//前面的node就是某一个结点,后面的node就是这个结点的父节点 pr...

2020-02-27 18:13:39 306

原创 左神算法:RandomPool

左神算法:RandomPool题目:设计一种结构,在该结构中有如下三个功能:insert(key):将某个key加入到该结构,做到不重复加入。delete(key):将原本在结构中的某个key移除。getRandom(): 等概率随机返回结构中的任何一个key。【要求】 Insert、delete和getRandom方法的时间复杂度都是 O(1)分析:这个结构一看感觉跟哈希表的结构比...

2020-02-26 20:11:21 272

空空如也

空空如也

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

TA关注的人

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