自定义博客皮肤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 .

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

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

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

wait,notify,notifyAll 实际使用场景

2022-08-30 22:20:56 271

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

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

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

原创 Shiro学习

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

2022-03-24 09:47:55 575

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

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

2022-03-08 14:58:16 244

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

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

2022-02-21 18:17:05 116

转载 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 3711

转载 彻底搞懂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 145

转载 JMM和底层实现原理

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

2021-11-29 10:34:49 84

原创 字符串和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 2246

原创 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 694

原创 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 2210

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

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

2021-09-02 10:38:55 347 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 417

原创 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 669 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 845

原创 执行.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 27895 2

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

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

2021-03-31 23:54:27 142

原创 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 506

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

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

2021-03-24 17:14:16 6836

原创 SpringBoot整合分页插件PageHelper

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

2021-03-11 17:18:58 4570 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 66

转载 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 5446

转载 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 39

原创 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 137

转载 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 6571

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

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

2021-01-19 19:10:18 10317 1

转载 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 523

转载 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 409

转载 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 951

转载 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 1903

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

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

2020-12-14 15:39:56 2948

原创 CompletableFuture使用详解

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

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

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

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

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

转载 Mysql 保留两位小数

ps:最近项目当中遇到了sql计算保留两位小数问题,在此进行存档一番Mysql ROUND(X,D) 函数 其中D可不传,默认为0,D可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0。 示例: SELECT ROUND(100.3465,2), ROUND(100,2), ROUND(0.6,2), ROUND(114.6,-1); 1 2 3 4 5 结果为: TRUNCATE(X,D) 函数 D表示,舍去小数点后

2020-12-10 11:55:45 1838

原创 JAVA生成跳转指定页面并且附带参数的二维码

所需jar包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.1.0</version> </dependency> <dependency> .

2020-12-04 16:54:29 1156 5

原创 Integer的比较和注意点

先看代码: public static void main(String[] args) { Integer a = new Integer(175); Integer b = new Integer(175); Integer c = new Integer(120); Integer d = new Integer(120); Integer z = 175; Integer x = 175;

2020-12-01 17:41:18 436

原创 提升:抛弃七条不良编码习惯

很多人错误地认为编码只是熟练手的事情,其实要成为优秀的编码人员就必须进行自我剖析,抛弃不良的习惯,展示自己优秀的编码能力。通常不良的编码习惯有很多种,这里列出7条编码者经常会犯的错误,提醒大家注意。(1)自由格式的代码如果我们不从一个团队角度出发,而是从程序员个体角度去看问题:A项目的风格和B项目的风格迥异,甚至是在同一个项目的不同类中风格也不同,不用缩进,不添加注释,想加接口就加个接口,不想加就不加,我们要的是“自由,自由,还是自由”。—这不是一个成熟的职业者应该具有的,我们应该保持自己的代码风格.

2020-11-30 16:08:49 128 2

原创 基于Redisson实现分布式锁并分析其原理

分布式锁主要是为了解决高并发场景下的数据一致性问题的。一般就是涉及到多线程资源争抢时通过加锁来保证数据的安全性场景:首先模拟一个抢购场景:redis依赖:代码:在redis数据库存了一个stock值,相当于是库存,value是200逻辑:首先去从redis里面取库存,判断当前库存是否大于0,如果大于0则库存减一问题:没加锁,高并发场景下会出现超卖问题。比如当前有三个线程同时访问这段代码,同时判断当前库存大于0,都减一,然后保存,结果三个线程都减一然后保存,但是st

2020-11-29 14:52:52 951 2

转载 @PostConstruct注解作用

参考链接:https://blog.csdn.net/nisen6477/article/details/90240643

2020-11-17 11:46:18 3026

转载 SQL中IN和EXISTS用法的区别

参考链接:https://www.cnblogs.com/clarke157/p/7912871.html

2020-11-09 17:08:52 71

空空如也

空空如也

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

TA关注的人

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