自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码搬运工的博客

只会crud的程序猿

  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

原创 关于redis主从复制模式下过期键的删除策略问题

最近在看《redis设计与实现》这本书时,看到redis过期键的删除部分,书中在讲主从复制模式下的过期键的删除时说道:从服务器不控制过期键的删除,只有主服务器删除一个过期键并显示的向从服务器发送一条del命令的时候,从服务器才会删除过期键,在这期间,即使从服务器在执行读命令,遇到过期键也不会将过期键删除。读到这里的时候我产生了一个疑问,想到如果一直以从服务器处理读请求,那岂不是永远无法触发主服务器发出del命令,过期键岂不是无法被删除,那过期时间的设置就没有了意义。通过多方面查找资料,查看到redis官方

2020-11-23 19:49:50 62

原创 node实现树形数据的导入

最近因工作需要接触了一下node,使用过程中遇到了一个需求,需要编写一个脚本,将Excel中的数据插入数据库,但是这个数据是一个树形结构,插入数据库需要插入当前叶子节点的父节点。像上图一样,每行都是一个数据,每行的最后一个数据就是要保存的节点,摆上库表结构:问题的难点便是导入数据的时候找到节点的父节点id,这里只有路径的中文名称,所以根据中文名称去查询id会遇到名称相同的情况,这样的情况id就不是唯一了,该怎么选择呢?通过思考,既然给出了中文的路径,也可以用这中文的路径去判断到底应该选哪个父节点呀

2020-11-02 15:17:42 34

原创 Mac启动Tomcat报错,权限问题解决

使用终端在启动Tomcat的时候遇到了一个权限问题:先是在IDEA中配置Tomcat进行启动项目的时候无法启动,弹窗报错意思就是Tomcat的bin目录下没有权限,然后找到Tomcat目录看看使用命令是否能够启动Tomcat,使用终端输入命令./startup.sh结果发现报错了,报错信息如下:根据提示知道是因为权限问题导致的操作被拒绝,开始看到这个提示便想到用chmod命令去给文件授权,通过终端命令到达Tomcat的bin目录下,通过chmod 777 *.sh来给所有的.sh后缀的shell脚本

2020-08-13 15:14:05 288

原创 关于线程创建的方式

总结:线程创建常用的方式有三种,分别是:继承Thread类实现Runnable接口实现Callable接口继承Thread类的方式public class threadClassDemo extends Thread{ int count = 1; @Override public void run() { count++; System.out.println("当前线程:"+Thread.currentThread().getNam

2020-08-12 22:47:13 64

转载 看懂UML类图

网址:https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html讲解了各种设计模式

2020-04-30 17:15:15 87

原创 关于SpringBoot项目连接数据库启动报错问题解决

话不多说,直接上异常信息:整个错误信息的意思就是服务器的时区值无法识别或者是存在多个值,如果要正常使用就需要给服务器或者jdbc驱动配置serverTimezone。整体的意思就是这样,那下面探索如何解决这个异常:方法一如图,在配置文件中的数据库连接的url后面添加serverTimezone=Asia/Shanghai的设置,即可解决启动报错问题。等等,这是在每个连接的URL后面添...

2020-04-29 22:16:20 1656

原创 IDEA更新至2020.1版本后启动闪退

先上一张启动IDEA闪退的报错信息:不管是重启IDEA还是重启电脑,IDEA始终打不开,但这里的错误信息看不懂,只好去看一下IDEA的启动日志,IDEA 的启动日志2020版本与2019版本稍有不同,进入这个目录,可以看到下列文件:使用cat命令查看日志:看到日志可以发现错误是因为插件findBugs问题,因为IDEA是最新版本,猜测可能是findbugs版本不支持,造成的兼容性问...

2020-04-10 16:50:23 5915

原创 关于IDEA自定义live templates日期格式错误问题的解决方法

在使用IDEA的自定义live templates时,之前一直使用date()获取当前时间,在Mac上使用一直没出现问题,时间也都是正常显示:但是在Windows上使用时,显示的时间却会多四位数字:这是为什么呢?在windows中会受短日期格式影响,默认为设置yyyy/MM/dd,如果我们改动了就会影响idea中的注释模版,常见的我们会在短日期中写成yyyy/MM/dd dddd这样...

2020-03-08 21:51:32 1982 1

原创 IDEA序列化UID生成

进入IDEA进行上述设置,然后进入要生成序列化的对象:会出现提示的下划线,使用option+enter快捷键(Windows系统alt+enter),即可插入UID。

2020-03-06 15:36:49 156

原创 HTTP请求工具类——Java

使用RestTemplate方式,注意添加spring-web的依赖工具类如下:import org.springframework.http.*;import org.springframework.http.converter.StringHttpMessageConverter;import org.springframework.util.MultiValueMap;imp...

2020-03-05 15:44:57 64

原创 使用Nacos实现服务注册发现,使用feign进行远程调用

Nacos的本地部署不做详细介绍,下面主要记录一下使用Nacos注册、暴露服务,使用feign进行远程调用的过程:1、首先找到一个项目作为生产者,即服务提供者,进行配置后注册到Nacos注册中心,注意:此处的name要注意,他是消费者消费服务查找服务的关键字。生产者的启动类要添加一个注解@EnableDiscoveryClient,实现负载均衡具体的服务接口:2、消费者注册到Naco...

2020-03-04 11:14:41 3412 2

转载 hashMap长度为什么是2的幂次方

HashMap为了存取高效,要尽量较少碰撞,就是要尽量把数据分配均匀,每个链表长度大致相同,这个实现就在把数据存到哪个链表中的算法;这个算法实际就是取模,hash%length,计算机中直接求余效率不如位移运算,源码中做了优化hash&(length-1),hash%length==hash&(length-1)的前提是length是2的n次方;为什么这样能均匀分布减少碰撞呢...

2020-03-01 11:09:56 257

原创 剑指offer第二版图书与代码

链接: https://pan.baidu.com/s/1qOmwvc66o2nROY9pjinnmw 提取码: 8jy4

2020-02-29 16:46:52 110

原创 使用Mybatis遇到的坑——Integer类型参数的解析问题

有时候我们使用实体类传递参数时,有些属性会被设置为Integer类型,比如status、sort等,在这里,使用Integer类型参数作为条件时,要注意一点:例如<if test="bean.activitySort != null and bean.activitySort !="""> AND activity_sort = #{bean.activitySort...

2020-02-18 16:38:05 981

原创 关于List的subList原理分析

今天在看Java开发手册的时候看到这么一句话:如果需要对list某个范围内的元素进行操作,可以使用subList,任何对子列表的操作最终都会反映到原列表中。例如list.subList(0,2).clear;这样的操作便会对原列表进行修改,修改的结果是截取除了0-2位置的元素,下面写下代码试一下:运行结果:我们看到原列表已经被修改,那么为什么对子列表的修改会影响到原列表呢,我们进入...

2019-12-18 11:19:58 267

原创 docker镜像加速使用方法

使用docker加载镜像通过使用:docker pull registry.docker-cn.com/library/XXX(你要拉取的镜像的名字)即可借助镜像加速实现快速下载

2019-12-15 21:11:49 96

原创 fastCSV实现上传CSV文件

实现上传CSV文件的工具有很多,下面直接上代码首先是添加依赖:<dependency> <groupId>de.siegmar</groupId> <artifactId>fastcsv</artifactId> <version>1.0.3</...

2019-12-09 11:37:06 405

原创 关于Java并发中的volatile与synchronized关键字

synchronized关键字在介绍之前,首先从场景出发,思考一下下面的场景: public List<String> list = new ArrayList<>(); public void dealList(List<String> list){ /*对list进行增删处理*/ /*list.add(); ...

2019-11-27 10:03:23 48

原创 关于String对象的compareTo方法实现原理

通常在对String对象进行比较时使用jdk给我们提供的compareTo方法可以说是非常轻松方便的,但是compareTo方法的实现是怎么实现的呢?下面通过看一下源码来研究一下:通过查看源码,我们可以发现,通过将两个字符串存储在char类型数组中,选择最短的一个字符串,然后从第一位遍历两个数组,返回第一个不相同字符的ASCII码(十进制)相减的结果;如下: "abcd".compa...

2019-11-12 16:10:34 260

原创 使用IDEA导入包时避免自动引入import.*包

使用IDEA时,有时一个工程要重复引入一个包下的各种子包,此时当你重复的次数达到一定标准,IDEA便会自动将你的子包简化为*,这样在自己的工程中没有什么问题,但在工作中,一定要避免这样的修改,以免修改了其他人的代码,这样如果发生事故,根据代码提交记录,便会由你来背锅,下面来写一下如何修改IDEA中重复导入包的限制次数,避免自动引入import.包红色方框内的数字自己可以自己设置,当重复导入的...

2019-11-11 16:14:50 6260

原创 Zookeeper隐藏通道问题

使用Zookeeper最容易犯的错误便是隐藏通道问题,什么是隐藏通道问题呢如上图,隐藏通道问题即,客户端c1操作了Zookeeper,然后通知客户端c2读取Zookeeper中的状态,但是c2客户端读取Zookeeper状态时,c1对Zookeeper的操作还没有及时的更新,所以此时c2读取的Zookeeper状态是错误的隐藏通道问题造成的原因:C1直接向C2发送通知解决方法:使用Zo...

2019-11-06 10:58:55 87

原创 有关RabbitMQ使用经历

今天在项目中使用RabbitMQ的时候,由于是在老项目中新引入MQ,所以遇到了一些问题,于是把这次使用经历记录下来。因为项目比较老,查看spring版本居然是3.2.3版本,可以说相当老了,按照网上的帖子添加有关RabbitMq的依赖时就遇到一个问题:版本不兼容问题错误信息:org/springframework/util/backoff/BackOff的错误这个错误便是因为引入的R...

2019-10-16 16:18:20 44

原创 springBoot之helloworld

创建一个基本的maven工程,首先添加下列标签,使项目成为一个SpringBoot项目:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> ...

2019-09-05 10:27:15 53

转载 关于Java8中stream的笔记

简介java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合操作...

2019-08-29 09:29:23 59

原创 关于影响Redis性能的几点因素

Redis的使用是为了提高数据的查询速度,所以对于Redis使用时效率越高越好,那都有那些方面会影响Redis的性能呢,主要包括了一下几个方面:长耗时命令的执行在算法中影响一个算法效率的是方法的时间复杂度,同样,在Redis中时间复杂度仍然是影响Redis执行效率的因素,Redis中大多数的命令执行的时间复杂度都在O(1)到O(N)之间,O(1)的命令通常来说是安全的,O(N)的命令在使用时...

2019-08-26 15:12:57 607

原创 有关Java学习的图书整理

今天抽空整理了一下手上的图书资源,主要是技术方面的,都是Java方向所需要的图书,有需要的童鞋可以自己下载,有Java基础、JVM、多线程、数据库、MQ、Redis等常用的材料,链接如下:链接: https://pan.baidu.com/s/1qnAXtKaPLcEkGrFjusz7tA 提取码: 9nma 复制这段内容后打开百度网盘手机App,操作更方便哦...

2019-08-15 22:33:55 63

原创 关于日志打印中的占位符的使用

在日志打印时,多数是推荐使用占位符来进行参数的设置的,今天使用sonarqube扫描代码时,发现一些日志打印时的占位符与参数数量不匹配的问题,很多都是占位符数量多于参数数量,我便产生了疑惑,如果数量不匹配,占位符没有赋值的位置会怎么显示,于是便敲了一个小demo验证一下,结果如图:上图是占位符数量与参数数量一致时,打印结果是正常的,下面测试一下缺少一个参数时:结果显示没有进行赋值,这里只是...

2019-08-06 11:43:02 1980

转载 Java多线程-线程池ThreadPoolExecutor构造方法和规则

为什么用线程池有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且当线程数量太多时,系统不一定能受得了。使用线程池主要为了解决一下几个问题:通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制等...

2019-08-05 11:42:52 27

原创 关于Java中关于继承的思考记录

今天看到JVM机时突然想到一个问题,就是面向对象中的继承,为什么要使用继承呢,继承就全都是优点吗?继承中子类继承父类后继承得到的属性方法是复制到子类内存空间中的吗,如果不是那还能用什么方法,指针引用也不行呀,都知道子类继承后使用点运算符对继承属性的修改是不会影响父类的,那么子类对继承属性的修改必然是使用一块不同于父类内存的新内存块,为了验证子类继承后地址与父类地址不同,并且修改后的继承属性对父类...

2019-08-03 14:37:43 53

原创 对于MQ中的问题记录

作为一名MQ的初学者,在学习之初有很多疑问,本文章主要记录作者在学习过程中对于一些问题的记录。在我看来mq可以看作是一个注册中心,有消息的提供者和消费者,提供者产生消息后将消息添加至“注册中心”,然后等待消费者到“注册中心”进行消费。这个过程中有几次通讯行为,当涉及到通讯问题时不免要考虑到通讯过程中的通讯中断带来的消息丢失问题,造成消息丢失的条件有很多,今天主要记录一种情况,我们都知道,在MQ中...

2019-07-30 15:07:09 56

原创 对于Spring中常用的RestController注解的学习笔记

本篇文章主要记载作者本人在学习Spring4.x时所遇到的一些问题,仅供学习参考。之前在使用Spring时,在controller层的编写过程中遇到过将ResponseBody遗忘的情形,这导致了运行时的404错误,经过baidu,才知道是因为controller层要配合model模版进行响应,当controller层不使用ResponseBody注解时,返回结果无法直接写入HTTP respo...

2019-07-28 11:56:27 84

转载 关于Spring中Autowired注解与Resource注解的学习笔记

之前在使用spring时只知道两者作用差不多,但没有思考既然一样的话为什么还有保存两者,一定是有什么区别,所以开始了对于两者区别的探索,期间发现了一篇通俗且明了的文章,特转载,以下是原文:一、写本博文的原因年初刚加入到现在的项目时,在使用注解时我用的@Resource。后来,同事:你怎么使用@Resource注解?我:使用它有错吗?同事:没错,但是现在都使用@Autowired。我:我研究...

2019-07-25 11:35:53 39

原创 @Autowired 与@Resource的区别

根据不同的规范要求提出首先说一下两者并不是诞生于同一个组织或个人,Autowired注解由Spring定义,而@Resource则是同@PostConstruct以及@PreDestroy注解一样根据JSR-250(java 规范要求)规范定义,这两者的共同点就是都可以满足被Spring支持。注入方式虽说Resource的作用与Autowired相同,但两者在使用时的注入方式是不同的...

2019-07-24 11:01:21 24

转载 简单介绍Spring AOP配置使用

一、什么是AOP?要谈AOP,那么AOP到底是什么呢?AOP即面向切面编程,相比OOP–面向对象编程,由于面向对象中最基本的单位是类,实例,很自然我们会想到AOP中最基本的单位可能就是所谓的切面了,你可能会问,那切面又是个什么东西,我想说,现在不懂没关系,下面我会讲到。我们先来看一段Spring中关于AOP的定义:面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑...

2019-07-15 10:51:48 29

原创 关于AQS学习时有关CyclicBarrier和CountDownLatch的笔记

这里主要记录有关CyclicBarrier和CountDownLatch的问题:关于CountDownLatch是什么,谈谈自己的认识CountDownLatch又称为倒计时器,是一个非常实用的多线程控制工具类,final CountDownLatch countDownLatch = new CountDownLatch(5);首先通过上述代码new一个对象,括号中的数字是指定义请求的数...

2019-07-04 10:42:34 54

原创 关于玄武集团MOS云平台的使用笔记

对于该平台感兴趣的可以自己下载开发文档看一下,附上地址1、根据开发手册,MOS云平台给用户提供了关于各种通信服务的接口,用户可以通过调用相关的接口来实现一下几点功能:1)支持短信/彩信的发送,短信的接收2)支持短信/彩信提交报告的查询与获取3)支持短信/彩信状态报告的查询与获取4)支持定时短信/彩信等特殊信息发送5)支持账号信息的获取,账号密码的修改整个接口的流程如图:开发人员调...

2019-05-16 16:04:10 483

原创 使用XXLjob中间件进行定时任务的管理

在学习XXLjob时,建议先看一下文档,不难,通俗易懂,由于本人所从事的项目是java项目,所以对于如何在其他环境下开发使用不了解,但基本操作应该差不多,下面放上学习文档:http://www.xuxueli.com/xxl-job/#/在看完文档后,可以先把源码下载下来,这里提供百度云的下载链接,或者自行到git上进行拉取也可以:链接: https://pan.baidu.com/s/1VB...

2019-05-08 10:26:07 3809

原创 SQL中IN与NOT IN

not in查询效率不高,当数据较多时,使用not Exists替代更好;1、对于not exists查询,内表存在空值对查询结果没有影响;对于not in查询,内表存在空值将导致最终的查询结果为空。2、对于not exists查询,外表存在空值,存在空值的那条记录最终会输出;对于not in查询,外表存在空值,存在空值的那条记录最终将被过滤,其他数据不受影响。...

2019-04-30 17:03:36 132

原创 spring中的事务笔记

spring事务回滚规则指示spring事务管理器回滚一个事务的推荐方法是在当前事务的上下文内抛出异常。spring事务管理器会捕捉任何未处理的异常,然后依据规则决定是否回滚抛出异常的事务。默认配置下,spring只有在抛出的异常为运行时unchecked异常时才回滚该事务,也就是抛出的异常为RuntimeException的子类(Errors也会导致事务回滚),而抛出checked异常则不会...

2019-04-30 16:32:01 80

原创 MySQL中count的使用笔记

count()四种写法:count(*) 包括所有列,相当于统计表的行数,不忽略列值为NULL的记录。count(1) 忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,不忽略列值为NULL的记录。count(列名)只包括指定列,返回指定列的记录数,会忽略列值为NULL的记录。count(distinct 列名)只包括列名指定列,返回指定列的不同值的记录数,忽...

2019-04-29 09:30:20 67

MOS云平台开发手册.pdf

本文档是玄武集团下的MOS云平台的开发手册,对于MOS云平台的使用做了详细介绍

2019-05-16

MongoDB桌面工具1903版本

用于管理MongoDB连接,可以进行多个连接管理,快捷查询等操作,支持多种查看方式:表格、树状、json格式等

2020-12-07

git可视化工具Mac版本

sourceTreeMac版本,用于管理Git仓库,可以进行远程仓库创建、代码提交拉取、分支创建等操作,标准的图形化界面

2020-12-07

数据库连接可视化工具

一款好用的mysql、oracle、MongoDB等数据库的连接工具,适用于MacOS系统,Navicat可视化连接工具,免激活,安装即用

2020-12-07

空空如也

空空如也

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

TA关注的人 TA的粉丝

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