- 博客(475)
- 资源 (4)
- 收藏
- 关注
原创 @ControllerAdvice注解的使用场景
@ControllerAdvice是一个增强的controller,使用这个controller能够实现三个方面的功能。 1、全局异常处理。 2、全局数据绑定。 3、全局数据预处理。 全局异常处理 使用 @ControllerAdvice 实现全局异常处理,只需要定义类,添加该注解即可定义方式如下: @Slf4j @ControllerAdvice @ResponseBody public class PermissionExceptionHandler { @ExceptionHandler(P
2021-06-03 11:06:23
317
原创 Redis持久化
Redis持久化有两种方式,分别是RDB持久化与AOF持久化 一、RDB持久化 RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。 手动触发: 1、save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上环境不建议使用 2、bgsave命令:Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时 间很短。 显然bgsave命令是针对save阻塞问
2020-11-13 12:05:28
343
原创 SpringBoot异步方法如何使用及注意事项
首先新建一个启动类 启动类上必须添加注解@EnableAsync,表示开启异步方法的使用 package com.yuce.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableAsync; @Spr
2020-11-11 10:43:33
521
原创 SpringBoot中定时任务的使用
springBoot中定时任务的使用 导入依赖 springBoot已经默认集成了定时任务的依赖,只需要引入基本的依赖就可以使用定时任务。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-parent</artifactId> <version>2.0.0.RELEASE</version> &l
2020-11-09 15:52:56
380
原创 Java设计模式(建造者模式)
package com.jxufe; import lombok.Data; @Data public class House { private String base; private String walls; private String roofed; } package com.jxufe; //抽象的建造者 public abstract class HouseBuilder { House house = new House(); //将
2020-10-26 23:14:05
200
原创 Java设计模式(策略模式)
package com.jxufe; public interface FlyBehavior { void fly(); //子类具体实现即可 } package com.jxufe; public class NoFlyBehavior implements FlyBehavior{ public void fly() { System.out.println("不会飞翔"); } } package com.jxufe; public class
2020-10-25 23:43:46
173
原创 Java设计模式(状态模式)
状态接口 package com.company.statepattern; public interface State { /** * 扣除积分 */ void reduceMoney(); /** * 是否抽中奖品 * @return */ boolean raffle(); /** * 发放奖品 */ void dispensePrize(); } 不能抽奖状态 packa
2020-10-23 10:54:45
215
原创 Java设计模式(装饰器模式)
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。 package com.company.decoratorpattern; public interface Shape {
2020-10-19 12:15:36
253
原创 Java设计模式(观察者模式)
观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 package com.jxufe.observer.improve; //接口,让WeatherData来实现 public interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observ
2020-10-18 23:32:02
225
原创 preparement批量插入
Connection connection = dbOperator.getConnection(); try { PreparedStatement preparedStatement = connection.prepareStatement(insertSql); for (int i=0;i<paramsList.size();i++) { for (int j=0;j<paramsList.get(i).length;j++) {
2020-10-14 14:23:38
429
原创 AC自动机【求在文本串中出现次数最多的模式串】
题目描述 有 N 个由小写字母组成的模式串以及一个文本串 T。每个模式串可能会在文本串中出现多次。你需要找出哪些模式串在文本串 T 中出现的次数最多。 输入格式 输入包含多组数据,保证输入数据不超过50组 每组数据第一行为一个整数 N ,表示有 N 个模式串,1<=N<=50. 接下去 N 行,每行一个长度小于等于 70 的模式串。下一行是一个长度小于等于 10^6 的文本串 T. 保存不存在两个相同的模式串 输入结束标志 N = 0 输出格式 对于每一组数据,第一行输出模式串最多出现
2020-10-14 08:59:41
312
原创 AC自动机【模板】
题目描述 给定 n 个模式串 si 和一个文本串 t ,求有多少个不同的模式串在文本串中出现过。两个模式串不同当且仅当它们的编号不同 输入格式 第一行是一个整数,表示模式串的个数 n 第 2 到第 (n+1) 行,每行一个字符串,第 i+1 行的字符串表示编号为 i 的模式串 si. 最后一行是一个字符串,表示文本串 t. 输出格式 一个答案 输入输出样例 输入: 3 a aa aa aaa 输出: 3 代码: public class Main { static class T
2020-10-14 00:29:27
184
原创 不同的子序列
给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是) 题目数据保证答案符合 32 位带符号整数范围 示例 1: 输入:S = “rabbbit”, T = “rabbit” 输出:3 解释: 如下图所示, 有 3 种可以从 S 中得到 “rabbit” 的方案。 (上箭头符号 ^ 表示选取的字母) ra
2020-10-13 08:51:21
235
原创 KMP算法详解
package com.company; import java.util.*; /** * KMP: 求解一个字符串是否在文本串中出现 */ public class Main { /** * 求出Next数组 * @param s Next数组记录s字符串中前缀等于后缀的最长长度 * @param Next Next[i]: 表示s[0:i-1]中前缀等于后缀的最长长度 */ public static void getNext(Stri
2020-10-12 13:02:38
198
原创 扰乱字符串【区间dp】
题目&&题解 题解 public boolean isScramble(String s1, String s2) { int len = s1.length(); boolean[][][] dp = new boolean[len][len][len+1]; for (int i=0;i<len;i++) { for (int j=0;j<len;j++) { dp[i]
2020-10-12 09:00:31
212
原创 分割回文串
题目: 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回符合要求的最少分割次数。 示例: 输入: “aab” 输出: 1 解释: 进行一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。 dp[i]:指 s[1:i] 切割成回文串最少需要几次 每次枚举 s[j:i] 是否是一个回文串,如果是 dp[i] = dp[j-1] + 1 public static int minCut(String s) { int[] dp = new int[s.
2020-10-12 00:07:33
259
原创 如何删除所有正在运行的Docker容器
如何删除所有正在运行的Docker容器 docker rm $(docker ps -q -f status=exited) 删除所有已停止的容器 docker rm $(docker ps -a -q) 删除所有正在运行和已停止的容器 docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) 删除所有容器,没有任何标准 dock...
2020-05-02 20:58:28
2951
原创 Docker
<div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-21113...
2020-05-02 18:38:55
328
原创 使用Redis图形化界面工具时出现 java.net.ConnectException: Connection refused异常
检查redis是否运行 运行步骤如下: 1、找到redis安装路径 2、通过win+r,cmd 运行命令行redis-server.exe 3、打开redisClient 输入相应信息 4、点击ok不在出现异常 ...
2020-04-26 21:27:57
452
原创 JQuery学习之动态增加删除
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JQuery学习</title> <style type="text/css"> *{ margin:0; padding:0 } .contai...
2020-04-06 11:07:26
249
原创 JQuery学习之手风琴
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JQuery学习</title> <style type="text/css"> *{ margin:0; padding:0 } ul ...
2020-04-05 14:54:25
152
原创 JQuery学习之下拉菜单
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JQuery学习</title> <style type="text/css"> *{ margin:0; padding:0 } ul ...
2020-04-05 11:03:08
171
原创 进程间通信的五种方式
前言: 进程通信: 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。 进程间通信(IPC)介绍 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信...
2020-04-02 23:15:52
2281
原创 IDEA从Github中Clone Maven项目出现无法运行无法编译的问题
删除原有的Module,然后从导入已存在工程的Module就可以了 由于时差,导致关联数据库失败 设置方法 set global time_zone=’+8:00’;
2020-04-01 23:04:18
1036
原创 使用canvas制作时钟
背景图片 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Snow</title> <style type="text/css"> *{ margin: 0; padding: 0; } ...
2020-03-30 20:32:49
266
1
原创 进程与线程的基本概念
批处理操作系统 批处理操作系统,把一系列需要操作的指令写下来,形成一个清单,一次性交给计算机。用户将多个需要执行的程序写在磁带上,然后交由计算机去读取并逐个执行这些程序,并将输出结果写在另一个磁带上。 批处理操作系统在一定程度上提高了计算机的效率,但是由于批处理操作系统的指令运行方式仍然是串行的,内存中始终只有一个程序在运行,后面的程序需要等待前面的程序执行完成后才能开始执行,而前面的程序有时会...
2020-03-30 10:48:46
217
原创 进程上下文切换与和线程上下文切换有什么区别?
1、首先,需要搞明白什么是上下文切换?(面试题) 上下文切换就是从当前执行任务切换到另一个任务执行的过程。但是,为了确保下次能从正确的位置继续执行,在切换之前,会保存上一个任务的状态。 2、 然后,需要明白进程与线程的区别?(网上很多,这里简单说明) 1).线程是进程的一部分。 进程是表示资源分配的基本单位,又是调度运行的基本单位,是程序执行的一个实例; 线程是进程中执行运算的最小单位,即执行处理...
2020-03-30 10:21:21
1696
原创 Java面试题精选三
1、Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别? 答:sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。wait()是Object类的方法,调用对象的wa...
2020-03-27 22:50:38
241
原创 ArrayDeque类的使用详解
ArrayDeque是Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。 同时,ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。 ArrayDeque是Deque的实现类,可以作为栈来使用,效率高于Stack; 也可以作为队列来使用,效率高于LinkedList。 需要注意的是,ArrayDeque不支持null值。 一、常用方法 1.添加元素 ...
2020-03-25 17:47:50
263
原创 HDU - 2612 Find a way(Java 语言)
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the cou...
2020-03-25 17:45:59
251
原创 canvas编写的雪花飘落景象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Snow</title> <style type="text/css"> *{ margin:0; padding:0 } #c1{ ma...
2020-03-23 16:56:58
337
原创 Java中的CAS操作和实现原理
1.什么是CAS? CAS:Compare and Swap, 翻译成比较并交换。 看到这个定义,可以说是没有任何意义的一句话,但是确实最能概括CAS操作过程的一句话。 CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。否则,处理器不做任何操作。无论哪种情况,它都会在 CAS 指令之前返回...
2020-03-22 23:02:27
290
原创 Java面试题精选三
1、比较一下Java和JavaSciprt。 答:JavaScript 与Java是两个公司开发的不同的两个产品。Java 是原Sun Microsystems公司推出的面向对象的程序设计语言,特别适合于互联网应用程序开发;而JavaScript是Netscape公司的产品,为了扩展Netscape浏览器的功能而开发的一种可以嵌入Web页面中运行的基于对象和事件驱动的解释性语言。JavaScrip...
2020-03-22 11:45:42
295
原创 Java面试题精选二
1、GC是什么?为什么要有GC? 答:GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System....
2020-03-21 12:10:50
234
原创 Java中@SuppressWarnings("unchecked")的作用
简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。 作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。 使用: @SuppressWarnings(“”) @SuppressWarnings({}) @SuppressWarnings(value={}) 根据sun的官方...
2020-03-20 20:15:25
253
原创 Java中静态方法和非静态方法的区别是什么
静态方法和非静态方法的区别总结如下: 1、静态方法属于类所有,类实例化前即可使用; 2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员; 3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存; 4、static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类; 5、静态方法效...
2020-03-20 18:21:54
545
原创 SpringBoot项目,个人精美博客
首先给大家展示一下界面 我就随便截个两张,全接下来可能要累死我 当然也可以访问我的网站 www.zhangtaotxdy.cn(可能会失效) 也可以直接访问 http://111.229.118.175/ (也有可能我的服务器会挂掉) 当然还有第三种方式 用 ...
2020-03-19 21:05:31
594
原创 如何将SpingBoot项目搭建到服务器上,直接用域名访问
首先我们要找到自己的项目在计算机里的具体路径 比如我的在 E:\taotao 启动终端 win+r 输入cmd,找到项目位置后就可以执行mvn install命令 下载好后,我们就可以在target目录下找到相应的jar包 接下来,我们可以打开服务器,自己配置好jdk和mysql,这个就不讲解了 在mysql里面创建好相应的数据库 然后我们把 taotao-0.0.1-SNAPSHOT.ja...
2020-03-19 20:56:47
5280
8
原创 Spring Boot 的 jsp文件中无法引入静态资源文件(js,css等文件),错误(net::ERR_ABORTED 404)
报错信息: 报错时我的jsp文件中引入路径: <script type="text/javascript" src="../../sources/static/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="../../sources/static/websocket.js">...
2020-03-19 15:33:14
664
基于Servlet+反射技术的模仿天猫网站开发
2019-12-25
基于SSM 梦想试衣间
2019-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人