自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 Data truncation: Incorrect datetime value

错误如下: Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1970-01-01...

2020-01-02 18:25:08

阅读数 133

评论数 0

转载 web.xml作用分析

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&...

2019-12-31 18:48:05

阅读数 133

评论数 0

转载 SpEL表达式

概观 Spring Expression Language(缩写为SpEL)是一种强大的表达式语言。在Spring产品组合中,它是表达式计算的基础。它支持在运行时查询和操作对象图,它可以与基于XML和基于注解的Spring配置还有bean定义一起使用。由于它能够在运行时动态分配值,因此可以为我们...

2019-12-31 16:52:10

阅读数 130

评论数 0

转载 MessageSource简介

文章目录 基础知识 Locale 本地化工具类 ResourceBoundle MessageFormat MessageSource 简介 ApplicationContext HierarchicalMessageSource ResourceB...

2019-12-31 10:58:16

阅读数 136

评论数 0

转载 接耦与单元测试可测性

单元测试在一个完整的软件开发流程中是必不可少的、非常重要的一个环节。通常写单元测试并不难,但有的时候,有的代码和功能难以测试,导致写起测试来困难重重。因此,写出良好的可测试的(testable)代码是非常重要的。接下来,我们简要地讨论一下什么样的代码是难以测试的,我们应该如何避免写出难以测试的代码...

2019-12-28 17:50:00

阅读数 131

评论数 0

转载 volatile保证可见性,不保证原子性

1 保证内存可见性 说到内存可见性就必须要提到Java的内存模型,如下图所示: 如上图所示,所有线程的共享变量都存储在主内存中,每一个线程都有一个独有的工作内存,每个线程不直接操作在主内存中的变量,而是将主内存上变量的副本放进自己的工作内存中,只操作工作内存中的数据。当修改完毕后,再把修改后的结...

2019-12-26 11:28:55

阅读数 132

评论数 0

转载 web.xml简介

Web应用的根目录下,必须有一个WEB-INF目录,WEB-INF目录下有一个web.xml,同时还可以有classes和lib目录 web.xml is not necessary if no servlet is needed classes目录存放Web应用需要的clas...

2019-12-17 20:46:56

阅读数 127

评论数 0

转载 Spring Aop基本讲解

AOP的基本概念 @Aspect(切面): 通常是一个类,里面可以定义切入点和通知 JointPoint(连接点): 程序执行过程中明确的点,一般是方法的调用 Advice(通知): AOP在特定的切入点上执行的增强处理: @Before:标识一个前置增强方法,相当于BeforeAdvic...

2019-12-13 16:12:59

阅读数 141

评论数 0

转载 C语言中的.h文件的作用

C语言中的.h文件和我认识由来已久,其使用方法虽不十分复杂,但我却是经过了几个月的“不懂”时期,几年的“一知半解”时期才逐渐认识清楚他的本来面目。揪其原因,我的 驽钝和好学而不求甚解固然是原因之一,但另外还有其他原因。原因一:对于较小的项目,其作用不易被充分开发,换句话说就是即使不知道他的详细使用...

2019-12-10 17:41:59

阅读数 130

评论数 0

转载 ClassLoader简介

java.lang.ClassLoader类概述:   中文文档中对ClassLoader类的定义如下:    从文档中对ClassLoader类的介绍可以总结出这个类的作用就是根据一个指定的类的全限定名,找到对应的Class字节码文件,然后加载它转化成一个java.lang.Class类...

2019-12-09 15:50:27

阅读数 128

评论数 0

转载 MappedByteBuffer和DirectByteBuffer

1 、概述 (1)系统IO调用 首先来看一下一般的IO调用。在传统的文件IO操作中,我们都是调用操作系统提供的底层标准IO系统调用函数 read()、write() ,此时调用此函数的进程(在JAVA中即java进程)由当前的用户态切换到内核态,然后OS的内核代码负责将相应的文件数据读取到内核...

2019-12-06 15:09:45

阅读数 165

评论数 0

转载 Jvm的metadata和compressed class space含义

在对java jvm进行性能监控时,发现了两个新名词Meta space和compressed class space ,通过查阅一些资料下面进行一下总结。 Meta space 元空间(metaspace)这是在java8才出现的新概念,在java6中堆结构如下图: 持久代中存的内容...

2019-12-06 14:46:07

阅读数 134

评论数 0

转载 Jvm参数介绍

堆设置 -server:一定要作为第一个参数,在多个CPU时性能佳 -Xms:初始堆内存大小,Server端JVM最好将-Xms和-Xmx设为相同值 -Xmx:堆内存最大值,建议不要超过物理内存的一半 -Xmn:年轻代堆内存的大小,一般设置为Xmx的三分之一 -XX:NewSize=n:设置年轻代...

2019-12-06 13:48:58

阅读数 126

评论数 0

转载 Jvm内存区域

JVM区域总体分两类,heap区和非heap区。 heap区又分为: Eden Space(伊甸园)、 Survivor Space(幸存者区)、 Old Gen(老年代)。 非heap区又分: Code Cache(代码缓存区); Perm Gen(永久代); Jvm Stack(j...

2019-12-06 13:44:58

阅读数 132

评论数 0

转载 Springkafka的consumer和listener区别

在spring应用中如果需要订阅kafka消息,通常情况下我们不会直接使用kafka-client, 而是使用更方便的一层封装spring-kafka。不过,它可不是简单的封装了kafka-client, 这里面有很多需要注意的问题,比如下面这个参数: spring.kafka.listene...

2019-11-22 16:59:44

阅读数 141

评论数 0

转载 java8新增特性五:Optional

NullPointerException相信每个JAVA程序员都不陌生,是JAVA应用程序中最常见的异常。之前,Google Guava项目曾提出用Optional类来包装对象从而解决NullPointerException。受此影响,JDK8的类中也引入了Optional类,在新版的Spring...

2019-11-20 18:13:27

阅读数 129

评论数 0

转载 java8新增特性四:接口中定义默认方法和静态方法

在JDK1.8以前,接口(interface)没有提供任何具体的实现,在《JAVA编程思想》中是这样描述的:“interface这个关键字产生了一个完全抽象的类,它根本就没有提供任何具体的实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供任何具体实现”...

2019-11-20 17:40:38

阅读数 128

评论数 0

转载 java8特性三:stream api

Java8的两个重大改变,一个是Lambda表达式,另一个就是本节要讲的Stream API表达式。Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找、过滤、筛选等操作,在新版的JPA中,也已经加入了Stream。如: 1 @Query("sele...

2019-11-20 17:33:39

阅读数 126

评论数 0

转载 java8新增特性一:lambda表达式

Java8是自java5之后最重大的一次更新,它给JAVA语言带来了很多新的特性(包括编译器、类库、工具类、JVM等),其中最重要的升级是它给我们带来了Lambda表达式和Stream API。 1、什么是Lambda表达式?   Lambda是一个匿名函数,可以理解为是一段可以传递的代码,可...

2019-11-20 16:52:57

阅读数 130

评论数 0

转载 java8特性二:方法引用 ::

1、方法引用的使用场景   我们用Lambda表达式来实现匿名方法。但有些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任何多余的动作,在这种情况下,我们倾向于通过方法名来调用它,而Lambda表达式可以帮助我们实现这一要求,它使得Lambda在调用那些已...

2019-11-20 16:44:58

阅读数 129

评论数 0

转载 微服务部署:蓝绿部署、滚动部署、灰度部署(金丝雀部署)

简介 产品或者项目不可能一步到位,一次性推向用户,故而有版本的存在。在app版本更新或者项目迭代的过程中,不可避免需要发布。发布就是部署/重新部署;部署就是修改;修改则意味着风险。 目前有很多用于部署的技术,本文将目前常用的布署方案做一个总结。 备注:本文不具有多少原创性,多是网络资源的整理,加上...

2019-11-19 14:23:31

阅读数 134

评论数 0

原创 数据库锁和隔离级别

事务 事务即acid a,原子性,都成功或都失败 c,一致性,数据一致性 i,隔离性,事务互不干扰 d,持久性,一旦完成就会保存下来 事务隔离级别 脏读,不可重复读,幻读 是不同隔离级别需要解决的问题。每个事务都可以设置自己独立的隔离级别。 读未提交 别的事务未提及的信息,也可以读到。脏...

2019-11-09 15:42:17

阅读数 132

评论数 0

原创 分库分表概念

垂直分表: 常用的字段分类放在一/几个表中,另外不常用的字段分类放在另一/几个表中。 避免io争抢,减少锁表的几率。 垂直分库: 同一个库,按业务类别拆分到不同的库中,分布在不同的机器上。专库专用。 避免竞争同一个物理机的cpu/内存/网络io/磁盘。 水平分库: 相同的表结构分布到不...

2019-11-08 16:11:38

阅读数 145

评论数 0

原创 Git基本原理和操作

前言:丢失代码的惨痛经历 这是一次在分支切换时丢失工作区内容的惨痛经历。 刚开始直接就在分支pre上进行开发工作,然后需要切换到dev分支上进行开发 git checkout dev 此时pre上工作区的内容因为和dev没有冲突,所以工作区的内容完整保留到dev中。 然后想把dev上的工...

2019-11-06 13:56:21

阅读数 134

评论数 0

转载 正则表达式?的使用

要理解?=和?!,首先需要理解前瞻,后顾,负前瞻,负后顾四个概念: // 前瞻: exp1(?=exp2) 查找exp2前面的exp1 // 后顾: (?<=exp2)exp1 查找exp2后面的exp1 // 负前瞻: exp1(?!exp2) 查找后面不是exp2的exp1 // 负...

2019-11-06 10:29:01

阅读数 128

评论数 0

转载 springboot图片上传

我先看一下《颈椎病康复指南》再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。 我这里使用的是 springboot 2.0.3,不需要导入...

2019-11-04 10:34:37

阅读数 139

评论数 0

转载 vim基础教学

1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vi...

2019-10-24 16:29:38

阅读数 203

评论数 0

转载 log4j2的配置文件解析

一、背景 昨天了解了一下slf4j和log4j2,想要进行总结记录,配置步骤十分简单,唯一需要具体了解的就是log4j2.xml的配置,于是找到了这篇博文,配置讲解十分详细,便转载作记录,再次感谢阿豪聊干货。以下原文:     最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log...

2019-10-17 16:17:10

阅读数 128

评论数 0

转载 post和put的区别

1.什么是幂等性 幂等性概念:幂等通俗来说是指不管进行多少次重复操作,都是实现相同的结果。 2.REST请求中哪些是幂等操作 GET,PUT,DELETE都是幂等操作,而POST不是,以下进行分析: 首先GET请求很好理解,对资源做查询多次,此实现的结果都是一样的。 PUT请求的幂等性可以...

2019-10-09 17:54:05

阅读数 127

评论数 0

转载 unicast、broadcast、multicast的区别

在TDMoP的应用中,无论是传送时钟还是业务都有可能会碰到单播unicast、广播broadcast和组播multicast的问题,那么我们来看一个简单明了的对三者的解释: 以Ethernet网络架构而言,封包(Packet)在同一个subnet中传递时,以收方地址来判别该由那台主机接收;若在不同...

2019-10-08 18:47:31

阅读数 202

评论数 0

转载 linux命令 ll信息详解

本文链接:https://blog.csdn.net/LEON1741/article/details/82386520 在linux下使用“ls -l”或者“ls -al”或者“ll”命令查看文件及目录详情时,shell中会显示出好几列的信息。平时也没怎么注意过,今天忽然心血来潮想了解一下,于是...

2019-08-21 16:30:57

阅读数 645

评论数 0

转载 正则表达式的贪婪型,勉强型,占有型

今天在做markdown转换器项目时遇到了一个问题,让我回顾了一下正则表达式中量词的贪婪型,勉强型和占有型这三种类型的匹配方式。这些匹配方式在匹配时需要根据项目需求合理地选择搭配,否则程序结果可能完全出乎你的意料。 我的问题是,有如下字符串:“This is [google][1],this i...

2019-08-16 11:32:06

阅读数 197

评论数 2

转载 java正则表达式中的斜杠\

首先,我们需要知道在java字符串和正则表达式中,“\”都具有特殊的含义。 一、在Java的字符串中"\"有两个功能   (一)代表特殊字符:\t代表制表符,\n代表换行....等。   (二)代表转义,在字符串中,如果出现”‘\,会造成代码歧义,如:      In...

2019-08-14 14:15:20

阅读数 165

评论数 0

原创 程序世界

你可以想象程序世界中。 操作系统是程序的宇宙,你可以想象为地球,利纳斯在书写linux的时候,感觉自己就像创始者,“那里应该有光,于是便有了光”,所以操作系统实际上是构建了一个程序的宇宙,一个可以供代码驰骋的n维空间。 编程语言是汽车,如果你自己能创造语言,那你自己就可以随意改装你的汽车,比如给汽...

2019-08-13 19:52:47

阅读数 141

评论数 0

转载 Cron表达式

Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示: 表1 Cron表达式时间字段 位置 时间域名 允许值 允许的特殊字符 1...

2019-08-12 18:10:07

阅读数 271

评论数 0

转载 java 牛顿迭代法求平方根

牛顿迭代法的大题意思就是通过不停的迭代来逐渐的使方程收敛。 因为切线是一条直线,也就是线性的,所以我们可以说,A点的切线是f(x)的线性逼近。离A点距离越近,这种逼近的效果也就越好,也就是说,切线与曲线之间的误差越小。所以我们可以说在A点附近,切线约等于f(x); 例如我们求m的平方根其实就是...

2019-08-08 18:38:07

阅读数 165

评论数 0

转载 rabbitAdmin和rabbitTemplate

RabbitAdmin 该类封装了对 RabbitMQ 的管理操作 @Bean public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory){ return new RabbitAdmin(connectionF...

2019-08-08 14:44:52

阅读数 206

评论数 0

原创 判断素数只需到平方根就可以?

对于大于1的正整数,只能被1和他本身整除的数,即是素数。 1、java代码演示 private static boolean isPrime(int number) { if(number < 2) return false; for(int i = ...

2019-08-07 10:34:10

阅读数 263

评论数 0

转载 SpringRabbit停止全部或部分消费

前言 在处理某些业务时,我们可能需要手动停止监听。让消息队列依然可以接收消息,但是先不处理消息。等业务处理完成后再开启监听,处理队列中的消息。所以这里就需要用到RabbitListenerEndpointRegistry中的start和stop方法。停止所有队列 @Autowired priv...

2019-08-06 16:16:49

阅读数 135

评论数 0

转载 redis哨兵模式

一.什么是哨兵机制? 答:Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。 提醒(Notification):当被监控的某个 Red...

2019-08-06 11:50:17

阅读数 131

评论数 0

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