自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenwq726的博客

把遇到的一些东西记录一下

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

原创 修改Map(Json)中指定路径下的Key值

package com.xxx.util;import java.util.Arrays;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;/** * @author Carpoor * @.

2021-06-08 00:32:28 980

原创 replace需要注意的点($和\的特殊处理)

对String进行字符串替换,有下面三个方法可以使用replace:直接把入参当字符串处理replaceAll:replaceFirst

2021-05-31 17:26:31 4048

原创 两个json对比差异,并输出差异结果

package com.cwq.demo02;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import c

2021-05-20 00:48:08 7672 2

原创 并发冲突解决方案(DB/缓存)

一、版本号解决冲突对表增加版本号,每次更新,进行版本号比较,相同则更新,并且版本号+1,否则更新失败。避免多线程查出这条数据后,同时间对这一条数据进行操作,造成数据覆盖(即ABA覆盖的问题)更新失败,让发起方重新发起二、表中冗余锁字段在表中增加两个字段,例如锁业务流水号,锁时间【避免表锁,一定要命中索引,转为行锁】1、当多个发起方调用接口准备更新同一条数据的时候2、加锁,封装为LockUtil【该逻辑与redis分布式锁逻辑差不多,只是操作对象不一样,一个缓存一个DB】lock在一个事务中,

2021-05-13 11:09:24 636

原创 sql优化(结论,mysql)

一、关联查询,主表的选择(Mysql优化器会进行优化)备注:主表进行全表扫描,然后通过主键再找到其他表的数据,所以其他表会走主键索引(这里是用主键做关联查询)1、where条件没有命中索引(可针对主表建对应的索引)1.1、A,B表数据量相同(不走索引)如果主键一样,则第一个表进行全表扫描,第二个表走主键索引如果有联合主键,则有联合主键的表进行全表扫描,另一个表走主键索引1.2、A,B表数据量不相同(不走索引)如果主键一样,则数据量少的表进行全表扫描,数据量多的表走主键索引如果

2021-05-10 12:46:00 356

原创 Mybatis之拦截器

拦截器生成及调用流程Mybatis拦截器生效过程Mybatis拦截器需要实现的接口如下public interface Interceptor {//主要做拦截后的逻辑处理 Object intercept(Invocation invocation) throws Throwable;//代理类生成,不符合条件则返回本身 Object plugin(Object target);//配置 void setProperties(Properties properties);}

2021-04-20 15:54:08 2619

原创 Map中处理指定key对应value值【key可以为A.B.C】

package com.cwq.demo01;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;/** * @author Carpoor * @date 2021年4月7日 */public c

2021-04-12 22:30:30 917

原创 BeanFactoryPostProcessor 后置处理器的执行顺序

BeanDefinitionRegistryPostProcessor实现了BeanFactoryPostProcessor接口#postProcessBeanDefinitionRegistry(自己独有的方法)#postProcessBeanFactory(BeanFactoryPostProcessor的方法)BeanFactoryPostProcessor#postProcessB...

2019-11-27 10:18:25 2081

原创 Nginx常用命令

执行Nginx命令时,需要进入到nginx的sbin目录下1、查看版本号./nginx -v2、启动Nginx./nginx//可通过ps命令进行查看验证是否启动ps -ef|grep nginx3、关闭Nginx./nginx -s stop//可通过ps命令进行查看验证是否关闭ps -ef|grep nginx4、重新加载配置文件(不关闭Nginx)./ng...

2019-11-23 21:53:45 152

原创 Linux上安装Nginx

准备安装包nginx-1.12.2.tar.gzpcre-8.37.tar.gz1、将安装包上传到Linux上,这里上传的路径是在/usr/tmp路径下2、安装pcre解压pcre-8.37.tar.gztar -xvf pcre-8.37.tar.gz然后进入到pcre-8.37目录下执行命令./configure检查环境最后执行命令进行安装make &&am...

2019-11-23 21:30:43 120

原创 为什么每个线程能通过ThreadLocal保存自己的一份副本?

ThreadLocal能够保存线程独有的一份变量,这样就不用通过参数传递,直接在线程执行的过程中随时随地get出来此处没有例子,只是说明一下源码到底是怎么去存的1、使用的时候,只需要创建ThreadLocal对象,重写initialValue方法,初始化我们需要存储的值,默认值为null,因为没有通过initialValue初始化private ThreadLocal<Integer&...

2019-09-20 18:07:37 746

原创 java规范怎么加载数据库驱动?

1、class.forName(“com.mysql.jdbc.Driver”)到底做了什么事?class.forName与类加载机制有关,会触发执行com.mysql.jdbc.Driver类中的静态方法,从而使主类加载数据库驱动。但是在最新的DriverManager源码中,可以不需要使用class.forName显示加载JDBC驱动程序,加了也没有问题2、为什么它的静态块没有自动触发?...

2019-09-17 09:53:45 2547

原创 javaweb集群实现定时任务抢占任务锁

1、背景数据库中存在一个预约时间表(t_reserve),和一个正在生效的时间表(t_time)根据业务需求,在t_reserve表中配置多个不同的时间,然后定时去更新t_time表2、问题因为应用是集群部署1)、多进程的任务锁抢占2)、当抢占到任务锁的应用挂了,宕机的情况,没有释放任务锁,造成死锁3)、集群部署,无法保证每台应用同时启动定时任务,多个定时任务的触发点会被错开,定时任...

2019-05-11 23:34:26 5638

原创 docker学习案例

1、定制centos镜像因为原centos镜像大小只有200M,只是封装了最基本的内核。很多的命令都不能用,例如vim、ifconfig现对centos进行改造,增加 vim和 ifconfig这两个命令创建DockerFile文件FROM centosMAINTAINER CWQ<123@qq.com>ENV mypath /usr/localWORKDIR $myp...

2019-05-11 22:52:30 219

原创 docker学习笔记

docker为什么会出现?--因为开发环境和运维环境的不同,有时候导致开发后的服务不可用或有缺陷,为了统一环境,一次配置到处运行(只需拷贝多份,即可到多个环境)docker理念--构建,运行在any app any wheredocker是什么,能干什么--简易版的虚拟机,和宿机共享内核,例如linux虚拟机是模拟一整套软硬件系统,docker容器去除了业务无关的服务,更轻便,相对于虚拟...

2019-04-22 23:20:38 137

原创 多线程学习笔记

volatile 和 synchronized–都可以保证线程间的可见性,原子性–synchronized 还可以实现可重入锁 和 互斥性CPU执行指令很快,但执行指令的过程中,需要有一些临时数据的操作,这些临时数据存储在主内存(物理内存),读取/写入的速度跟不上CPU的执行速度,这样大大降低了CPU执行指令的速度(因为需要等待数据的读取/写入)所以在CPU中开辟了一个高速缓存(一个线程划...

2019-04-22 23:18:43 160

原创 单测挡板demo(jdk7)

分布式多个系统间的调用,写单测的时候需要设置挡板,调用其他系统的时候,不是真的调用,而是返回设置好的返回结果需要的包(因为demo工程还有其他的依赖,一并拷贝了)<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <versi...

2019-04-04 15:20:28 3419

原创 递归(java)

package com.cwq.ch06;/** * 递归 * 斐波那契数列 * F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n&gt;=3,n∈N*) * 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... * @author Carpoor * @date 2019年2月15日 */public cl...

2019-02-15 22:52:18 100

原创 双端链表、双向链表(java)

1、双端链表2、测试双端链表3、双向链表4、测试双向链表1、双端链表package com.cwq.ch05;import com.cwq.ch04.Node;/** * 双端链表,将数据串起来 * @author Carpoor * @date 2019年1月29日 */public class MyFirstLastLinkedList { privat...

2019-01-31 00:12:47 269

原创 docker命令

docker帮助命令查看docker的版本信息docker version查看docker信息,比version更全docker info查看docker的命令用法docker --help

2019-01-30 23:32:54 1031

原创 链表(java)

1、节点2、链表3、测试类1、节点package com.cwq.ch04;/** * 节点,先定义每个数据的格式 * @author Carpoor * @date 2019年1月29日 */public class Node { public long data; public Node next; public Node(long data) { ...

2019-01-30 00:02:39 106

原创 栈、队列(java)

1、栈2、测试栈3、队列4、测试队列1、栈package com.cwq.ch03;/** * 栈,先进后出 * @author Carpoor * @date 2019年1月28日 */public class MyStack { //内部其实就是一个数组 private long[] arr; private int top; public MyS...

2019-01-28 22:38:45 91

原创 冒泡排序、选择排序、插入排序(java)

冒泡排序package com.cwq.ch02.sort;/** * 冒泡排序 * 每次比较都是元素交换位置,交换的次数多,效率比较低 * @author Carpoor * @date 2019年1月27日 */public class BubbleSort { public static void sort(long[] arr) { //第一个元素开...

2019-01-27 23:25:44 109

原创 docker安装

centos6.8安装dockerdocker使用EPEL发布,RHEL系的OS首先要确保已经持有EPEL仓库,否则先检查OS的版本,然后安装相应的EPEL包yum install -y epel-release安装dockeryum install -y docker-io安装后的配置文件/etc/sysconfig/docker启动docker服务service docker ...

2019-01-27 19:52:38 100

原创 Jenkins安装并整合git(仅供学习)

Jenkins安装前的准备Linux安装JDK8和maven3.3.9将tomcat7压缩包解压到 /opt 目录下进入 /opt/tomcat/conf 下,修改 server.xml 文件,找到下面的配置,在 redirectPort=“8443” 后面添加 URIEncoding=“UTF-8” ,修改 URL 地址的编码解码字符集,如下所示&amp;amp;amp;amp;amp;lt;Connector port...

2019-01-24 00:43:01 3287

原创 记录MySQL的一些异常解决方法

1、远程服务器连不上本地数据库Host 'windows10.microdone.cn' is not allowed to connect to this MySQL server解决方法将mysql数据库中user表的Host由localhost改为%将mysql授权给远程服务器//将o2o这个库里面的所有都授权给192.168.xxx.xxx这个服务器GRANT ALL PR...

2019-01-21 22:21:01 347

原创 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on

maven在构建项目的时候抛异常[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project o2o: There are test failures.[ERROR] [ERROR] Please refer to D:\s...

2019-01-21 22:09:55 1626

原创 关于内存数据库h2的简单demo

h2是一个轻量级的内存数据库,配置简单,启动速度快。springboot默认配置好了h2的配置信息,我们直接使用h2数据库即可&lt;!-- jar依赖的版本控制,需要导入springboot的parent依赖 --&gt;&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boo...

2018-12-25 10:59:09 914

原创 slf4j、log4j-slf4j-impl、log4j2之间的关系(更新ing)

日志框架:slf4j日志实现:log4j2桥接包:log4j-slf4j-impl桥接包log4j-slf4j-impl起到适配的作用,因为市面上的日志实现互不兼容,日志框架slf4j要想适用于日志实现log4j2,就需要使用桥接包slf4j使用LoggerFactory创建Logger进行日志打印,底层实际上调用了log4j-slf4j-impl的StaticLoggerBinder类创...

2018-12-19 18:54:57 26402

原创 开发网下,maven install 时去maven中央仓库下载jar,访问超时

maven install 时出现下面的异常信息[ERROR] Failed to execute goal on project thirdpartbase: Could not resolve dependencies for project xxx.jar:1.0.3-SNAPSHOT: Failed to collect dependencies for [junit:junit:jar...

2018-12-19 12:43:46 1052

原创 项目中可以正常打印日志,但是jar中的日志没打印到日志文件中

原因:项目中用的是commons-logging的日志框架,而jar中用的是slf4j的日志框架,slf4j和commons-logging是两个不同的日志框架,这样项目打印日志会冲突,只能打印commons-logging的日志,不能打印slf4j的日志(如果引用的jar包没有日志框架,单个项目是可以两个日志框架共存的)解决:①添加依赖,slf4j打印日志将引用commons-loggi...

2018-12-14 14:35:31 12069 1

原创 No converter found for return value of type: class io.renren.utils.R

后台返回的code为0,代表成功,可是在浏览器却一直是500错误,点开错误链接可以看到下图所示的错误页面上图红框位置说明了,R对象的数据不能被转换成json返回给前端解决方法:添加jackson-databind包,@ResponseBody才可以将返回对象转换为json格式...

2018-09-21 22:42:21 982

空空如也

空空如也

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

TA关注的人

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