自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLocal模板

ThreadLocal模板

2022-08-12 09:08:21 135 1

原创 List<Dto>相互转换工具类

List相互转换工具类package com.xdd.common.core.util;import java.util.ArrayList;import java.util.List;import org.dozer.DozerBeanMapper;import org.dozer.Mapper;/** * @author cgd * @version 1.0 * @date 2020/12/9 13:53 */public class DtoEntityUtil {

2021-03-31 14:59:30 2141

原创 SpringBoot时间格式统一转换

SpringBoot时间格式同义转换import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;import com.

2021-03-31 14:53:30 398

原创 解决接口幂等性的最佳方式

解决接口幂等性的最佳方式什么是幂等性简而言之,多次提交只有一次生效,例:用户付款的时候点击付款应当只有一次生效。解决幂等性的方式

2021-02-05 18:18:33 416

原创 最简单的EsayExcel导入导出工具类

EsayExcel导出工具类1、首先引入EasyExcel工具包 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version> </dependency>Exc

2020-08-13 16:30:06 909

原创 LRU-防止重复提交

LRU-防止重复提交1、这是一个封装类,拿来即用,首先引入依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.4</version> </dependency

2020-07-27 21:33:21 167

原创 利用发射获取类的属性和值

Java利用发射获取类的属性和值1、通过实体类的getclass().getDeclaredFields()获取类的所有属性import com.sans.core.entity.SysUserEntity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.lang.reflect.Field;@Data@AllArgsConstructor@No

2020-07-23 10:34:15 240

原创 BufferWriter写出csv文件

1、话不多说直接上代码import java.io.*;public class Demo1 { public static void main(String[] args) { File f = new File("D://aa.csv"); if (!f.exists()) { try { f.createNewFile(); } catch (IOException e) {

2020-07-15 15:12:39 530

原创 HuTool工具的入门使用(一)

HuTool工具的入门使用(一)1、首先我们新建一个springboot项目,引入hutool 的依赖<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --><dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version&

2020-07-13 21:01:35 23794 1

原创 两个线程,一个线程打印1~52,另一个线程打印字母A-Z,打印顺序为12A34B56C……5152Z

主要用到的juc 的Conditionimport java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class T { Lock lock = new ReentrantLock(); Condition aa = lock.newCondition(); Co

2020-07-02 11:19:05 481

原创 java笔试去除多余空格,统计字符出现个数

笔试题目:编写一个函数用于去除字符串中多余的空格比如字符串* “a b c c”(a,b间两个空格,b,c间三个空格),* 处理后字符串为"a b c c"(a,b之间和b,c之间只有一个空格),* 并分类输出个数(a:1, b:1, c:2);首先去除多余的空格需要用到正则表达式:String s = "a b b c d";s=s.replaceAll("[ ]+", " "); //s = s.replaceAll("\\s{2,}", " "); //上面两种正则都

2020-07-02 09:30:50 416

原创 Spring Boot之PageHelper极简入门教程

Spring Boot之PageHelper入门教程1、首先导入PageHelper依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version>

2020-05-21 20:17:45 591

原创 一个简单的自旋锁

package spin;import java.util.concurrent.atomic.AtomicReference;public class spinDemo { AtomicReference<Thread> atomicReference = new AtomicReference<>(); //加锁 public void myLock(){ Thread thread = Thread.currentThread()

2020-05-13 15:20:28 478 4

原创 手写三种单例模式

话不多说直接上代码package tesetSingle;public class Test { public static void main(String[] args) { for (int i = 0; i < 3; i++) { new Thread(()->{ //Hungry.getInstance(); LazyMa

2020-05-13 14:14:08 418

原创 Synchronized和lock的区别

1、Synchronized 是关键字 lock是一个类2、Synchronized 无法获取锁的状态 lock可以通过lock.trylock()判断是否获取了锁。3、Synchronized 会自动释放锁,lock会手动释放锁,如果不释放锁会产生死锁。4、Synchronized可重入锁 非公平。lock 可重入锁 非公平(可以自己设置)。5、Synchronized 一个线程获取锁。其他线程都需等待。Lock 一个线程获取锁,不一定会一直等待下去...

2020-05-09 15:08:00 133

原创 Wait和Sleep的区别

1、来自不同的类wait 来自Objectsleep 来自Thread2、关于锁的释放wait会释放锁sleep 不会释放锁3、使用的范围不同wait 添加在同步代码块中sleep 可以在任何位置

2020-05-09 11:26:29 88

原创 面试之Char 和VarChar的区别

面试之Char 和VarChar的区别1、区别一,定长和变长char 表示定长,长度固定,varchar表示变长,即长度可变。当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长度时,则会以不同的方式来处理,如char(10),表示存储的是10个字符,无论你插入的是多少,都是10个,如果少于...

2020-05-08 14:50:26 266

原创 Steam流排序去重

Steam流排序去重1、工作中我们经常会遇到排序去重问题,传统做法就是拿到数组遍历然后去重,现在我们可以使用Stream流来快速帮我们解决去重排序问题;class Student{ private Integer id; private String UserName; private Integer age; //get set省略 //equals ...

2020-04-20 15:17:09 3236

原创 并发编程之CountDownLaunch

并发变成之CountDownLaunch1、什么是CountDownLaunch我的理解就是比如一群人去开会,这每一个人就代表一个线程,只有当所有人到齐之后才能开会,这是就需要使用CountDownLaunch。2、先看一下不使用CountDownLaunch会带来的效果public static void main(String[] args) throws InterruptedExc...

2020-04-17 21:52:02 3866 1

原创 Map转XML

Map转XML1、话不多说,直接上代码。 public static String mapToXml(Map<String, Object> map, String encoding,Boolean isAttribute) { if (CollectionUtils.isEmpty(map)) { return ""; }...

2020-04-15 10:56:44 368

原创 冒泡排序

冒泡排序1、冒泡排序思想:冒泡排序我个人理解就是,相邻得两个元素两两比较,大得元素放后面,小的元素放在放前面,那么在不了解冒泡算法得时候可以先写如下代码 @org.junit.jupiter.api.Test void test4(){ //冒泡排序 int[] arr = {5,4,9,6,1,8}; for (int i ...

2020-03-21 10:43:16 143

原创 选择排序算法

快速排序算法1、快速排序算法,我的个人理解就是,首先找到数组中最小元素下标位置如下图。可以看出,最小元素为1,他的下标为4,然后跟第一个元素互换,实现代码如下。 int[] arr = {5,4,9,6,1,8}; int minPos =0; for (int i = 1; i < arr.length; i++) { if ...

2020-03-21 08:48:49 83

原创 fastjson 中JSONObject得常用使用方法

fastjson中JSONObject的常用使用方法1、导入需要的jar包<dependency> <groupId>net.oschina.zcx7878</groupId> <artifactId>fastdfs-client-java</artifactId> ...

2020-03-19 17:19:50 395

原创 Redis基本命令(String)

1、String在redis中所有的key都是字符串,不同的key对应的value具备不同的数据类型如:String,List,Hash,Set,ZSet.常见的操作命令:-append :如果key 已经存在,则直接在对应的value增加值,否则直接增加key,value。 -decr 可以实现对value的减一操作(前提是value是一个数字),如果value不存在,默认值为0...

2020-03-14 16:53:41 84

原创 Git的基本命令

Git的基本命令1、如何从GitHub上获取需要的文件。使用git clone 命令。例:git clone https://github.com/CgdAYj/learnings.git2、查看下载文件的状态使用git status 例:untracked files (表示未提交)3、将更改的文件上传到版本库使用git add命令,然后使用git status 查询该文件目前...

2020-03-14 08:50:37 78

原创 Springboot快速更改全局时间格式

我们都知道,在Spring中使用@ResponseBody注解可以将方法返回的对象序列化成JSON,比如:@RequestMapping("getuser")@ResponseBodypublic User getUser() { User user = new User(); user.setUserName("mrbird"); user.setBirthday(...

2020-01-06 15:47:51 568

原创 多线程的生命周期

多线程的生命周期新建状态,当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅由JVM为其分配内存,并初始化其成员变量的值就绪状态,当线程对象调用了start()方法之后,该线程处于就绪状态。Java虚拟机会为其创建方法调用栈和程序计数器,等待调度运行运行状态,如果处于就绪状态的线程获得了CPU,开始执行run()方法的线程执行体,则该线程处于运行状态阻塞状态,当处于运行...

2019-12-25 13:57:27 86

原创 快速将List和HashMap变成线程安全

快速将List和HashMap变成线程安全众所周知,HashMap和List的线程是不安全的,如果我们再工作种确实需要用到list或者HashMap该怎么办呢?其实答案非常简单,只需要使用Collections中的方法即可。如下图...

2019-12-24 15:00:44 346

原创 TreeMap定制排序和自然排序

TreeMap定制排序和自然排序自然排序是实现Comparable接口的方法。代码如下: @Override public int compareTo(Object o) { if (o instanceof Person){ Person p = (Person) o; int i= this.age.compareTo...

2019-12-24 14:22:47 350

原创 List数组去重

List数组去重 废话不多说,直接上代码,相信大多数朋友都是理解的。当我想到数组去重的时候第一个想的是通过双重For循环去解决,其次通过新建一个list,通过list的contains方法,最后是我今天学到的的list的indexof 和lastIndexof方法,通过这两个方法可以将两个重复的元素全部去掉。如有不足之处,请多指教。public class Test1{ @Test...

2019-12-23 20:04:37 409

原创 双重检测锁

双重检测锁1、 首先,一听这个名称的时候,我是一脸茫然,下面我就来介绍一下今天学习双重检测锁的收获 吧,今天在在写代码的时候遇到一个高并发的情况,就是我写的接口如果同时有一万个人同时访问得话,那么公司的系统能不能承受的住的这么大的压力呢?一开始想到是直接在方法上加锁synchronized,这是最简单的方法。例如:@GetMapping("/")public synchronized Li...

2019-12-16 21:25:12 412

原创 Mybatis中#{}和${}的区别

Mybatis中#{}和${}的区别#{}在Sql中显示是?标识占位符 是以预编译的形式,将参数设置到sql语句中;PreparedStatement,防止sql注入例如:select * from user where id = ?${}在Sql中显示的是获取的值;会直接拼装在sql中,会有安全问题。select * from user where id = 1原生jdbc不支持...

2019-12-11 14:12:33 77

原创 Mysql和Oracle中Mybatis获取自增主键的值

Mybatis获取自增主键的值1. 在xml文件中做如下配置:useGeneratedKeys=“true” keyProperty=“id”例如:<insert id="addEmp" parameterType="employee" useGeneratedKeys="true" keyProperty="id"> insert...

2019-12-11 10:15:19 211

转载 实现List中对象属性的去重

今天在工作的时候遇到了一个问题,就是List的去重,不想用双重for,感觉太low,不想用for+Map,感觉应该有更好的方法,于是,google之。发现java8的stream流能完美解决这个问题。原文链接:https://blog.csdn.net/iloveme1/article/details/80589281参考文档:https://blog.csdn.net/jiaobuchong...

2019-11-27 16:09:47 155

原创 缓存失效从当前ifrem重定向到父级界面

缓存失效从当前ifrem重定向到父级界面直接上代码:<script language="JavaScript"> if (window != parent) { //parent.location.href = location.href; parent.location.reload();}</script>举例说明:如果A,B,C,D都是js...

2019-11-13 11:05:06 146

原创 博客搬家声明:从CSDN博客到博客园

一直很喜欢CSDN的,让我学习了很多,也很感谢CSDN这样的平台,后续也将继续使用,但仅限查询资料。3、广告,毕竟要吃饭吗!这点可以理解,但是广告是真的多,还有一个广告博文。还有CSDN的很多博客都是复制粘贴,质量太差。付费,广告可以,但是希望也把控一下环境。最后希望CSDN发展的更好。CSDN博客地址:https://blog.csdn.net/weixin_40471400博客园地址...

2019-10-25 16:58:38 113

原创 ORACLE执行误删表中的数据怎么办

ORACLE执行误删表中的数据怎么办1.今天在使用navicat执行sql语句的时候,把delete看成了select ,结果把表中的数控给删除了,当时心中极其慌张,随后找到解决办法,决定记录下来。查询当前电脑时间:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;查询删除之前数据:select * from provid...

2019-10-24 10:58:13 221 1

原创 equals变量在前面和后面的问题

equals变量在前面和后面的问题 String is_cache = portService.findIscacheById(port.getId()); if(is_cache.equals("0")){ oracleStoreRepository.insertLocalChain (port, params, allParams, result,Bo...

2019-10-09 16:47:40 663

原创 查询和"01"号的同学学习的课程完全相同的其他同学的信息的优化

查询和"01"号的同学学习的课程完全相同的其他同学的信息优化1、今天在一个可以联系MySQL的博客上发现一个SQL语句有问题,想优化一下。点击我去原文博客添加学生表CREATE TABLE `student` ( `SID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, ...

2019-09-05 16:03:18 5915 5

原创 MySQL和Oracle将同一张表的一个字段的值复制到另一个字段

MySQL和Oracle将同一张表的一个字段的值复制到另一个字段``今天小白被经理安排将一张表的某个字段的值复制到另一个字段中,一开始打算直接update table set XX = VV (where xx),PS:本次我的数据库是Oracle数据库,所以就直接运行是可以成功的,此时我想到这样的方式是否能适用于MySQL呢,然后我就在本地我的数据来测试了。将user_name中的值复...

2019-08-29 16:11:36 3897 1

空空如也

空空如也

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

TA关注的人

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