自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (1)
  • 收藏
  • 关注

原创 springboot配置mysql数据源

@Configuration@MapperScan(basePackages = XXX.PACKAGE, sqlSessionFactoryRef = "XXSqlSessionFactory")public class XXX{ static final String PACKAGE = "com.hikvision.ezviz.XX.mapper"; static fin...

2019-10-12 15:42:53 2374

转载 TCP三次握手和四次挥手以及11种状态

http://blog.51cto.com/jinlong/2065461

2018-12-22 16:05:15 358

原创 Guava---collection集合用法

目录List创建List创建

2018-11-18 16:04:40 729

原创 Guava---最全缓存cache讲解

目录创建LoadingCache创建LoadingCache LoadingCache<Object, Object> cache = CacheBuilder.newBuilder() .build(new CacheLoader<Object, Object>() { //若没有元素,则

2018-11-14 19:44:44 3413

转载 CSDN-markdown编辑器

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-11-14 19:03:34 193

原创 Guava---缓存之Reference

文章目录强引用(StrongReference)软引用(SoftReference)弱引用(WeakReference)虚引用(PhantomReference).在 jdk 1.2 及其以后,引入了强引用、软引用、弱引用、虚引用这四个概念。网上很多关于这四个概念的解释,但大多是概念性的泛泛而谈,今天我结合着代码分析了一下,首先我们先来看定义与大概解释(引用类型在包 java.lang.ref ...

2018-11-12 17:03:35 742

原创 Guava---缓存之LRU算法

文章目录简介实现LRULinkedHashMap中LRU算法实现简介LRU全称是Least Recently Used,即最近最久未使用的意思。LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。实现LRU1.用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入...

2018-11-12 15:21:34 4445 1

原创 WatchService文件监听器

文章目录WatchService介绍WatchService使用WatchService介绍1、 该类的对象就是操作系统原生的文件系统监控器!我们都知道OS自己的文件系统监控器可以监控系统上所有文件的变化,这种监控是无需遍历、无需比较的,是一种基于信号收发的监控,因此效率一定是最高的;现在Java对其进行了包装,可以直接在Java程序    中使用OS的文件系统监控器了;2、 获取当前OS平...

2018-11-12 14:19:16 960

原创 快速获取指定包下所有加注解的类

本人是仿照spring源码的.至于是否高效,有待考证.import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.BeanDefinitionStoreException;import org.springframework.context.ResourceLoaderAware;import org....

2018-11-12 14:02:45 2022

原创 Guava---文件操作Files

文章目录guava复制文件java NIO复制文件移动文件读取文件内容(一行一行读)读取文件内容(按条件读取)计算文件hashcode (可对比两个文件是否一样)写文件获取某路径目录获取某路径目录(自定义过滤)guava复制文件private static String from = "D:\\自定义代码\\Guava\\guava\\src\\1.txt";private static ...

2018-11-12 13:53:53 4494

原创 Guava---Strings

文章目录字符emptyToNull字符nullToEmpty获取字符公同前缀复制字符串判断字符串是否为空补字符串字符emptyToNull String s = Strings.emptyToNull("");字符nullToEmpty String s2 = Strings.nullToEmpty(null);获取字符公同前缀 String s3 = Strings.common...

2018-11-12 10:30:18 276

原创 Guava---CharMatcher

文章目录判断字符是否是数字计算字符串指定字符的个数移除字符串特定字符保留字符串特定字符判断字符是否是数字boolean matches = CharMatcher.javaDigit().matches('x');计算字符串指定字符的个数 int countIn = CharMatcher.is('a').countIn("aadca");移除字符串特定字符 String s1 =...

2018-11-10 11:41:52 562

原创 Guava---Splitter

1

2018-11-10 11:16:54 296

原创 Guava---Joiner

Joiner字符切割字符切割排除null字符切割替换null字符串切割后放到另一个容器切割map字符切割Joiner提供对Iterable<?>字符切割分方法. List<String> notNullList = Arrays.asList("php", "c++", "java", "scala"); String join1 = Joiner.on(&quot

2018-11-10 11:14:18 273

原创 设计模式实战系列----策略模式

本文先介绍策略模式(Strategy)基本概念及使用;接着介绍实际工作如何结合spring一起使用.策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。关于策略模式基本使用方式本文不作介绍,其他博客可以找到一大堆,如:https://www.cnblogs.com/wu...

2018-08-15 20:23:11 488

原创 HTTPS的过程和原理

对称加密和非对称加密在了解https之前,得先了解对称加密和非对称加密对称加密 这就是对称加密算法,其中图中的密钥S同时扮演加密和解密的角色。具体细节不是本文范畴。 只要这个密钥S不公开给第三者,同时密钥S足够安全,我们就解决了我们一开始所定问题域了。因为世界上有且只有A与B知道如何加密和解密他们之间的消息。 但是,在web环境下,我们的Web服务器的通信模型没有这么简单: ...

2018-08-02 14:38:59 644

原创 HttpClient连接池配置

maven<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents&

2018-07-31 18:41:46 3184

原创 Spring配置文件动态获取属性

import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.util.Properties;/** * @author: caiyaming * @date...

2018-07-18 21:02:57 1627

原创 Guava---AbstractFuture

在开始介绍AbstractFuture之前先让我们手动实现一个回调.回调手写Future类public class Future<T> { private Consumer<T> consumer; public void addListener(Consumer<T> consumer) { this.cons...

2018-06-20 19:54:39 1136

原创 Java8-------Lambda表达式

1

2018-05-17 11:35:57 255

原创 Java8-------行为参数化

本人Java8系列博客全是对<

2018-05-17 11:14:45 323

原创 SpringBoot打可执行jar

<build> <plugins> <!--这段是负责编译的时候使用jdk的版本和编码格式。--> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

2018-05-14 15:46:19 589

原创 kafka---Producer发送数据

关于kafka原理介绍自行百度。 kafka一些参数配置参考官网:http://kafka.apache.org/0110/documentation/#configuration 引入jar: <dependency> <groupId>org.apache.kafka</groupId> ...

2018-05-01 23:05:42 4435

原创 SQL查询优化30条经验

SQL查询优化30条经验对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:se

2018-01-16 13:24:07 436

原创 数据库建表优化

存储引擎mysql5.7后,绝大多数使用Innodb引擎。数据类型 按照业务需求,尽可能选择范围小的。在可以选择char情况下尽量选择char,如性别。

2018-01-15 14:06:38 559

原创 IDEA注册码

http://idea.iteblog.com/key.php

2018-01-03 09:51:58 1586

原创 过滤器和拦截器的区别

区别1.拦截器是基于java的反射机制的,而过滤器是基于函数回调。 2. 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 3. 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 4. 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 5. 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用

2017-12-28 13:04:01 418

原创 SpringBoot之过滤器Filter

Filter简介Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。Filter实现继承Filter接口@Component@We

2017-12-28 11:24:19 1075 3

原创 SpringMVC之参数校验注解@Valid

注解介绍 以上基本是所有注解了。注解使用实体类中添加注解@Datapublic class User { @Range(min = 0,max = 100,message = "年龄必须在0~100之间") private Integer age; private String name; @Length(min = 8,message = "密码不能少于八位")

2017-12-27 00:10:01 3252

原创 通过反射获取对象属性

user类@Datapublic class User { private Integer age; private String name; private String password;}反射获取 //获取参数对象 String age = PropertyUtils.getProperty(user,"age").toString();

2017-12-26 20:18:56 402

原创 Java并发容器——CopyOnWriteArrayList

CopyOnWriteArrayList这是一个ArrayList的线程安全的变体,其原理大概可以通俗的理解为:初始化的时候只有一个容器,很常一段时间,这个容器数据、数量等没有发生变化的时候,大家(多个线程),都是读取(假设这段时间里只发生读取的操作)同一个容器中的数据,所以这样大家读到的数据都是唯一、一致、安全的,但是后来有人往里面增加了一个数据,这个时候CopyOnWriteArrayList

2017-12-25 16:44:31 310

原创 Java并发容器——ConcurrentLinkedQueue

在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 JDK中,提供了一个ConcurrentLinkedQueue类来

2017-12-25 16:27:43 282

原创 Java并发容器——ConcurrentSkipListMap

当我们希望快速存取<Key, Value>键值对时我们可以使用HashMap。当我们希望在多线程并发存取<Key, Value>键值对时,我们会选择ConcurrentHashMap。TreeMap则会帮助我们保证数据是按照Key的自然顺序或者compareTo方法指定的排序规则进行排序。OK,那么当我们需要多线程并发存取<Key, Value>数据并且希望保证数据有序时,我们需要怎么做呢?

2017-12-25 11:57:23 560

原创 Java并发容器——ConcurrentHashMap

并发环境下为什么使用ConcurrentHashMapHashMap在高并发的环境下,执行put操作会导致HashMap的Entry链表形成环形数据结构,从而导致Entry的next节点始终不为空,因此产生死循环获取EntryHashTable虽然是线程安全的,但是效率低下,当一个线程访问HashTable的同步方法时,其他线程如果也访问HashTable的同步方法,那么会进入阻塞或者轮训状态。

2017-12-22 10:51:03 256

原创 阻塞queue系列之SynchronousQueue

SynchronousQueue是这样一种阻塞队列,其中每个 put 必须等待一个 take,反之亦然。同步队列没有任何内部容量,甚至连一个队列的容量都没有。 常用方法add @Test public void addAndtake() throws InterruptedException {// Executors.newCachedThreadPool().

2017-12-21 16:35:29 452

原创 阻塞queue系列之LinkedTransferQueue

LinkedTransferQueue在JDK7 中新增的。无界FIFO线程安全的阻塞队列。 transfer 算法比较复杂,实现很难看明白。大致的理解是采用所谓双重数据结构 (dual data structures) 。之所以叫双重,其原因是方法都是通过两个步骤完成:保留与完成。比如消费者线程从一个队列中取元素,发现队列为空,他就生成一个空元素放入队列 , 所谓空元素就是数据项字段为空。然后

2017-12-21 16:03:28 676

原创 阻塞queue系列之DelayQueue

DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时间最长的Delayed 元素。底层也是通过数组实现,所以读写操作使用的是同一把锁,其插入的元素必须实现Delayed接口。构造方法public DelayQueue() {}public DelayQueue(Collection<? extends E> c) { this.ad

2017-12-21 10:48:58 609

原创 阻塞queue系列之PriorityBlockingQueue

和ArrayBlockingQueue一样内部使用数组实现,插入和获取数据使用同一把锁。不同的是,不管有无指定长度,都会实现可以实现自动扩容;在构造函数需传入comparator,用于插入元素时继续排序,若没有传入comparator,则插入的元素必须实现Comparatable接口。构造函数 public PriorityBlockingQueue() { this(DEFAULT

2017-12-21 00:56:52 5483 2

原创 阻塞queue系列之LinkedBlockingDeque

LinkedBlockingDeque是一个基于链表的双端阻塞队列。 LinkedBlockingDeque使用的是一把锁。 其它基本和LinkedBlockingQueue无异,前往LinkedBlockingQueue

2017-12-21 00:26:16 350

原创 阻塞queue系列之LinkedBlockingQueue

LinkedBlockingQueue继承AbstractQueue,实现了BlockingQueue,Serializable接口。内部使用单向链表存储数据。可定义容量,默认初始化容量是Integer最大值(可能出现内存溢出)。插入和取出使用不同的锁,putLock插入锁,takeLock取出锁,添加和删除数据的时候可以并行。多CPU情况下可以同一时刻既消费又生产。LinkedBlockingQu

2017-12-21 00:13:51 711

java 23种设计模式

用java详细讲解了23种设计模式

2017-05-08

空空如也

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

TA关注的人

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