自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zero .

人生的意义在于怎么面对和处理每一个充满挑战的瞬间。

  • 博客(229)
  • 收藏
  • 关注

原创 HashMap的七种遍历方式

stream 多线程 entrySet。

2024-03-15 10:27:39 220

原创 小程序图文安全检测

检查项:参考文档:API对接参考:

2024-01-25 14:18:17 429

原创 微信小程序上线后无法调用后端接口

我们要在小程序设置里把request请求域名加上保存就可以了。

2023-04-14 11:20:29 1637 1

原创 Java中BigDecimal保留两位小数

java保留两位小数

2023-03-16 14:27:54 10417

原创 IDEAplugins marketplace插件市场打不开解决方案

VPN等网络代理工具非常有可能是打不开的原因。

2023-03-13 18:24:57 2304

转载 一篇文章搞定maven私服部署,使用,上传自己的jar包到私服

maven私服配置

2023-02-24 15:45:21 8379 1

原创 wait,notify,notifyAll原理以及实际使用场景

wait,notify,notifyAll 实际使用场景

2022-08-30 22:20:56 914

原创 父类静态代码块、非静态代码块、构造方法、子类静态代码块、子类非静态代码块、子类构造方法执行顺序

父类子类测试类先猜一猜 执行顺序是什么?有的同学可能会说结果是结果:为什么呢? 因为: 子类初始化的时候会先初始化父类。 而静态代码块会在类加载的时候调用,并且只会调用一次。而非静态代码块是类初始化的时候调用,并且是在构造方法前调用。执行顺序为: 父类静态代码块 》 父类非静态代码块 》 父类构造方法 》子类静态代码块 》子类非静态代码块 》子类构造方法如果换一种写法,结果又不一样了:结果是什么呢?可以先猜一下公布答案:你猜对了吗?其实要捋明白很简单,就记着静态代

2022-06-07 13:55:37 1061 1

原创 Shiro学习

1. 教你 Shiro 整合 SpringBoot,避开各种坑2. 教你 Shiro + SpringBoot 整合 JWT

2022-03-24 09:47:55 646

原创 【设计模式】系列之模板模式

模板方法模式,官方解释是这样的:模板模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类提供不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模板模式的关键在于:父类提供框架性的公共逻辑,子类提供个性化的定制逻辑。也就是说,父类提供公共方法,子类提供自定义方法。这里,我想模拟一个场景,就是比如我们去买手机,品牌手机都会送礼物,不同的品牌送的礼物不一样。这样,我们就可以让父类实现固定逻辑,子类实现不同品牌送礼物的逻

2022-03-08 14:58:16 371

转载 sockjs实现客户端和服务端通信

springboot+websocket+sockjs进行消息推送【基于STOMP协议】 - 博客 - 编程圈 (bianchengquan.com)

2022-02-21 18:17:05 204

转载 Linux下如何同时注释多行/同时取消多行注释

同时注释多行1、首先,将光标放在要注释的行首,然后按ESC进入命令行模式;2、按Ctrl + V进入 VISUAL BLOCK ;3、按 PgUp/PgDn选择要注释的行;4、按大写的i进入插入模式;5、输入//,按ESC保存即可同时删除多行注释1、首先,将光标放在注释的行首,然后按ESC进入命令模式;2、按Ctrl + V进入 VISUAL BLOCK;3、按PgUp选择要删除的注释行;4、按X即可删除第一列/;5、重复上述步骤,即删两次可完成同时对多行注释的删除。

2022-02-21 18:16:06 4750

转载 彻底搞懂Nginx的五大应用场景

HTTP服务器Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。1、首先在文档根目录Docroot(/usr/local/var/www)下创建html目录,然后在html中放一个test.html。2、配置nginx.conf中的server。usermengdaystaff;http{server{l...

2021-12-24 09:43:08 240

转载 JMM和底层实现原理

1.并发编程领域的关键问题1.1 线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信,在java中典型的消息传递方式就是wait()和notify()。1.2 线程间的同步同步是指程序用于

2021-11-29 10:34:49 174

原创 字符串和LocalDateTime互转、计算时间差

public static void main(String[] args) { // 字符串转LocalDateTime DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime time = LocalDateTime.now(); LocalDateTime endTime = LocalDateTime.pa...

2021-11-15 11:06:55 3183

原创 Webservice的概念

概念webservice 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。webService三要素:soap、wsdl、uddiwebservice开发规范JAVA 中共有三种WebService规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。下面来分别简要的介绍一下这三个规范。(1.)JAX-W.

2021-11-15 11:02:28 2174

转载 Java统计代码的执行时间的6种方法

在日常开发中经常需要测试一些代码的执行时间,但又不想使用向 JMH(Java Microbenchmark Harness,Java 微基准测试套件)这么重的测试框架,所以本文就汇总了一些 Java 中比较常用的执行时间统计方法,总共包含以下 6 种,如下图所示:方法一:System.currentTimeMillis此方法为 Java 内置的方法,使用 System#currentTimeMillis 来统计执行的时间(统计单位:毫秒),示例代码如下:public class TimeInte

2021-11-09 16:08:07 11525

原创 linux查看占用端口的进程并杀死该进程

linux 查看端口被占用1、lsof -i : 端口号 用于查看某一端口的占用情况,比如查看8080端口使用情况,lsof -i:8080如果执行lsof -i:8080 系统提示 :-bash: lsof: 未找到命令,则要安装lsof 使用 yum installlsof 如下图:安装完成再执行就可以看到被8080占用的情况lsof -ilsof 输出信息意义:  COMMAND:进程名的  PID: 进程标识符  USER:进程所有者...

2021-11-01 22:01:41 2674

转载 Spring Bean的循环依赖解决方案

Spring Bean的循环依赖解决方案如果使用构造函数注入,则可能会创建一个无法解析的循环依赖场景。什么是循环依赖下面是我所遇到的情况,代码结构如下:SpringSecurity 配置类:@Configurationpublic class BrowserSecurityConfig extends WebSecurityConfigurerAdapter { private final UserDetailsService userDetailsService;

2021-09-02 10:38:55 558 4

转载 java class文件反编译成java文件

准备首先得先安装了JDK,并且配置了环境变量。然后去jdk目录下的bin文件夹中查看是否存在jad.exe。没有的话请先下载一个jad.exe,放到上述文件夹中。(下载地址可参考:https://varaneckas.com/jad/)生成windows+R,输入cmd 进入dos命令窗口。跳转到你需要进行反编译的class文件的存放地址。输入:jad -sjava xxx.class 即可,之后在当前文件夹下就会出现xxx.java文件。注意:如果没有报错,又没有生成java文

2021-07-22 10:29:44 549

原创 JAVA导出Excel并合并单元格

首先,看一下期望达到的效果:下面开始:代码:package cn.pinming.bidopening.bid.service.impl.exceltest;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;/** * Created with IntelliJ IDEA. * * @Auther: zp * @Date: 2021/05/25/18:1.

2021-05-27 21:39:18 1100 2

转载 Linux命令之rz命令与sz命令

1.rz命令rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。此外,可以在虚拟终端软件设置上传时默认加载的本地路径和下载的路径。如SecureCRT软件 -&g

2021-05-12 15:34:20 1083

原创 执行.sh文件(shell脚本)的几种方式

第一种:(要进到shell脚本所在文件夹中)sh helloworld.sh第二种:(要进到shell脚本所在文件夹中)bash helloworld.sh第三种:(要进到shell脚本所在文件夹中)./helloworld.sh第四种:/home/data/helloworld.sh注意:如果刚创建.sh文件,使用./ 或者绝对路径执行不了时,很可能是因为全新不够。此时你可以使用chmod命令来给shell文件授权。之后就能正常运行了。chmod +x .

2021-04-14 20:03:55 92693 2

转载 工作几年,分享50个让你代码更好的小建议

以下文章来源于捡田螺的小男孩,作者捡田螺的小男孩捡田螺的小男孩1. 仅仅判断是否存在时,select count 比 select 具体的列,更好。我们经常遇到类似的业务场景,如,判断某个用户userId是否是会员。「(反例):」一些小伙伴会这样实现,先查从用户信息表查出用户记录,然后再去判断是否是会员:<selectid="selectUserByUserId"resultMap="BaseResultMap">selctuser_id,v...

2021-03-31 23:54:27 203

原创 Springboot通过自定义工具类获取bean

/** * Created with IntelliJ IDEA. * * @Auther: zp * @Date: 2021/03/26/13:32 * @Description: 通过beanFactory获取spring管理的bean对象 */public class ApplicationContextUtil implements ApplicationContextAware { private static ApplicationContext context; .

2021-03-26 13:39:22 599

原创 解决IDEA翻译插件Translation报错更新TTK失败不能使用

本质问题是因为我私自更改了电脑的IPV4配置。解决: 全部使用自动的保存即可

2021-03-24 17:14:16 7039

原创 SpringBoot整合分页插件PageHelper

在springboot中使用PageHelper插件有两种较为相似的方式,接下来我就将这两种方式进行总结。官方使用说明方式一:使用原生的PageHelper1.在pom.xml中引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> ...

2021-03-11 17:18:58 11920 3

转载 MySQL触发器trigger的使用

Q:什么是触发器?A:  触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的特性:  1、有begin end体,begin end;之间的语句可以写的简单或者复杂  2、什么条件会触发:I、D、U  3、什么时候触发:在增删改前或者后  4、触发频率:针对每一行执行  5、触发器定义在表上,附着在表上。也就是由事件来触发某个操作,事件包括INSERT语句,UPDATE语句和DELETE语句;可以协助应用在数据库端确保...

2021-03-11 13:26:57 124

转载 List集合的clear方法

转自:https://www.cnblogs.com/shoshana-kong/p/8962485.html一 . list.clear()底层源码实现在使用list 结合的时候习惯了 list=null ;在创建这样的方式,但是发现使用list的clear 方法很不错,尤其是有大量循环的时候1、list 接口 的ArrayList 类的clear() 方法源码如下:/***Removesalloftheelementsfromthislist....

2021-03-10 14:26:05 12421

转载 Java总结篇系列:Java泛型

一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("qqyumidi"); list.add("corn"); list.add(100); for (int i = 0;

2021-02-26 19:17:10 86

原创 JAVA深拷贝和浅拷贝

我们知道,一个实体类通过实现Cloneable接口可获得对象拷贝的能力。而拷贝又分为深拷贝和浅拷贝。很幸运,通过本文你可以了解到它们的区别。首先,我们先来看这样一段代码:@Datapublic class Person implements Cloneable { private String name; private Person father; public Person(String name) { this.name = name;

2021-01-28 16:55:25 192

转载 mybatis-plus更新字段的时候设置为null,忽略实体null判断

1 问题在用mybatis-plus封装的updateById方法来更新数据时,想把一个字段设置为null值,但是发现更新后数据没有为null还是原来的值,这是因为mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。2 解决方法在实体类对应的字段上加注解@TableField(strategy=FieldStrategy.IGNORED),忽略null值的判断,例如@TableField(strategy = FieldStrategy.IGNORE.

2021-01-26 16:22:16 12575

原创 IDEA 快速复制、剪切当前行

复制当前行: 直接把光标放在当前行里,或者放在当前行的末尾,按下 Ctrl + C即可复制当前行,不用双击或者鼠标从左拉到右选中,省时省力。剪切当前行:和复制类似,直接把光标放在当前行里,或者放在当前行的末尾,按下 Ctrl + X 即可剪切当前行。粘贴: 将复制或剪切的行放在光标位置,使用 Ctrl + v 即可把复制/剪切 的代码粘贴到光标位置。...

2021-01-19 19:10:18 12998 2

转载 RedisTemplate map集合使用说明-opsForHash(三)

转自:https://suozq.blog.csdn.net/article/details/862314331、put(Hkey,HKhashKey,HVvalue) 新增hashMap值。 Java代码redisTemplate.opsForHash().put("hashValue","map1","map1-1"); redisTemplate.opsForHash().put("hashValue","map2","map2-2");...

2021-01-14 15:29:08 623

转载 RedisTemplate集合使用说明-opsForList(二)

转自:https://suozq.blog.csdn.net/article/details/862309141、leftPush(Kkey,Vvalue)在变量左边添加元素值。Java代码redisTemplate.opsForList().leftPush("list","a"); redisTemplate.opsForList().leftPush("list","b"); redisTemplate.opsForList().leftPus...

2021-01-14 15:28:16 765

转载 RedisTemplate使用说明-opsForValue(一)

转自:https://suozq.blog.csdn.net/article/details/862306641、set(Kkey,Vvalue) 新增一个字符串类型的值,key是键,value是值。Java代码redisTemplate.opsForValue().set("stringValue","bbb"); 2、get(Objectkey) 获取key键对应的值。Java代码StringstringVa...

2021-01-14 15:27:26 1180

转载 RedisTemplate set集合使用说明-opsForSet(四)

参考:https://blog.csdn.net/suo082407128/article/details/862316811、add(Kkey,V...values)向变量中批量添加值。Java代码redisTemplate.opsForSet().add("setValue","A","B","C","B","D","E","F"); 2、members(Kkey)获取变量中的值。Java代码Setset=...

2021-01-14 15:23:46 2622

转载 Spring-Data之StringRedisTemplate-boundValueOps方法描述

以下,均为自己花费时间测试跟描写,欢迎转载,转载请标明出处跟作者,我不希望自己的辛苦劳动被转载而且还不标明作者跟出处,请尊重作者的劳动成果 而且,官方文档,以及源码,并没有方法注释,在文章最下面有个人对方法描述,都是个人描述,可能会有误差,以及描述不当的地方,请见谅!1.我的项目是maven项目,最近因为要用到,先引进下面两个包<dependency> <groupId>org...

2020-12-14 15:39:56 3795

原创 CompletableFuture使用详解

CompletableFuturepublic class WelfareImageController { /** * runAsync 无返回值 * * @throws Exception */ public static void runAsync() throws Exception { CompletableFuture<Void> future = CompletableFuture.runAsync(.

2020-12-14 14:33:45 1265 3

原创 【CompletableFuture】CompletableFuture中join()和get()方法的区别

【CompletableFuture】CompletableFuture中join()和get()方法的区别一.相同点:  join()和get()方法都是用来获取CompletableFuture异步之后的返回值二.区别:  1.join()方法抛出的是uncheck异常(即未经检查的异常),不会强制开发者抛出,  会将异常包装成CompletionException异常 /CancellationException异常,但是本质原因还是代码内存在的真正的异常,  文档说明:.

2020-12-11 14:58:55 29780 21

空空如也

空空如也

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

TA关注的人

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