自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mybatis-Plus

简介 MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅...

2019-04-28 16:26:29 443

原创 mysql高性能索引策略

索引随笔 文章目录索引随笔索引分析索引优点索引顺序索引限制高性能索引策略1. 独立的列2. 前缀索引和索引选择性3. 多列索引多列索引全覆盖索引4. 选择合适的索引列顺序5. 聚簇索引优点缺点优化6. 使用索引扫描来做排序7.避免冗余、重复、未使用的索引8.索引和锁 索引分析 EXPLAIN命令可以查看sql语句的执行策略 例如: EXPLAIN select fil_id,actor_id fr...

2018-12-25 17:16:52 409

原创 Illegal unquoted character ((CTRL-CHAR, code 19))

Restful接口400错误 Illegal unquoted character ((CTRL-CHAR, code 19)): has to be escaped using backslash to be included in string value 解决 此错误与restful框架的json序列化配置有关,例如使用fastjson 可以修改框架默认json解析配置 如jersey框架 ...

2018-12-10 13:56:10 4132

原创 sqlserver 存储过程中计算md5不正确

sqlserver 存储过程中计算md5不正确 错误 declare @book_id nvarchar(200) SET @book_id='storedb' select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',@book_id+'58')),3,32) 正确 declare @book_id varchar(200) S...

2018-06-12 13:29:57 696

转载 史上最简单的 SpringCloud 教程

转载请标明出处: http://blog.youkuaiyun.com/forezp/article/details/70148833 本文出自方志朋的博客 错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘...

2018-06-10 14:26:56 240

转载 Spring Cloud Hystrix

Spring Cloud Hystrix Spring Cloud Hystrix Hystrix是什么 Hystrix能做什么 Hystrix设计原则 Hystrix 实现原理 1.舱壁隔离模式 隔离策略 2.观察者模式 3.AOP配置命令切入 Hystrix 使用 Hystrix是什么 Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务...

2018-06-10 14:07:08 362

原创 Spring Cloud Ribbon

Spring Cloud Ribbon Spring Cloud Ribbon 简介 负载均衡 微服务使用Ribbon RestTemplate 负载均衡器ILoadBalancer 负载均衡策略IRule 配置 重试机制 配置 总结 示例 实现原理(简述) 简介 Spring Cloud Ribbon 是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netfli...

2018-06-10 14:02:56 469

原创 Spring Cloud Eureka

Spring Cloud Eureka Spring Cloud Eureka Eureka服务治理体系 服务治理 服务注册 服务发现 Netflix Eureka Netflix Eureka介绍 Eureka服务端 Eureka客户端 单Eureka服务中心 服务端 客户端 高可用Eureka集群 双节点Eureka配置 服务端配置 客户端配置 基础架构 服务治理机制...

2018-06-10 14:01:56 371

原创 SpringBoot Aop

SpringBoot Aop SpringBoot Aop Aop简介 切入点函数 逻辑运算符 注解说明 示例 Aop简介 面向切面编程,通过反射、代码织入实现在方法执行前、执行后调用切入函数,主要功能涉及日志记录,方法返回值处理、方法调用前资源准备等 切入点函数 1.execution execution(方法修饰符(可选) 返回类型 方法名 参数 异常模...

2018-06-10 14:01:07 592 1

原创 LinkedList 源码实现

Java LinkedList 源码实现 1.链表实现 ==双向链表,非同步== transient int size = 0; /** * Pointer to first node. * Invariant: (first == null && last == null) || * (first...

2018-06-02 14:44:01 262

原创 Java ArrayList源码分析

Java ArrayList源码分析 1. ArrayList默认大小 10 private static final int DEFAULT_CAPACITY = 10; ArrayList 底层实现Object[]数组 transient Object[] elementData; 2. 扩容方式 //扩容函数 private void grow(int m...

2018-06-02 14:43:33 241

原创 Fail-Fast快速失败机制

Fail-Fast快速失败机制 1.简介 fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常...

2018-06-02 14:41:51 465

原创 Java HashMap 源码分析

Java HashMap 源码分析 HashMap实现简介 HashMap 底层采用节点数组,数组内存储的是链表或者红黑树(JDK8) 1. 源码分析 1.1 属性 /** * The default initial capacity - MUST be a power of two. * 默认容量必须是2的倍数 这里是16 *...

2018-06-02 14:41:09 199

原创 Java String 解析

Java String 解析 1. String为什么是不可变对象 首先String不属于8种基本数据类型,String是一个对象。 内部成员变量 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The va...

2018-06-02 14:40:11 378

原创 Java 四种引用类型

Java 四种引用类型 1.强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object o=new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,...

2018-06-02 14:39:39 403

原创 Java 深浅拷贝

Java 深浅拷贝 定义 浅拷贝只复制一个对象(包括基本类型),对象内部存在的指向其他对象的引用则不复制 深拷贝:对象以及对象内部的引用均复制 import java.util.ArrayList; import java.util.List; public class Test { static class Person { private S...

2018-06-02 14:39:09 438

原创 线程封闭技术

简介 如果仅在单线程内访问数据,就不需要同步,这种技术被称为线程封闭,它是实现线程安全性最简单方式之一。 当某个对象封闭在一个线程中时,这种用法将自动实现线程安全性,即使被封闭的对象本身不是线程安全的。 Swing的可视化组件和数据模型对象都不是线程安全的,Swing通过将它们封闭到了Swing的事件分发线程中来实现线程安全性。 JDBC Connection对象并没规定其必须是线程安全的,...

2018-06-02 14:37:46 353

原创 并发编程随笔

1.死锁 某资源加锁后没有释放或者没有正确释放该锁,另一线程无法获取该资源锁,引起死锁。 出现死锁可以dump线程信息,查看死锁原因,从而解决。 避免死锁的常见方法 避免一个线程同时获取多个锁 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。 尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制 对于数据库锁,加锁和解锁必须在一个数据库...

2018-05-29 10:23:52 199

原创 自旋锁

几种自旋锁的实现原理 自定义接口 interface Lock { void lock(); void unLock(); } 1. SpinLock(自旋锁) static class SpinLock implements Lock { /** * currentHoldLockTh...

2018-05-29 10:23:18 875

原创 Java Lock

Java Lock 1. synchronized的实现原理与应用 synchronized是Java元老级锁,又被称为重量级锁,JDK1.6中为了减少获得锁和释放锁带来的性能消耗而引入偏向锁和轻量级锁 1.1 synchronized实现同步 synchronized实现同步的基础:java 中的每一个对象都可以作为锁,这些锁被称为内置锁或者监视锁。 对于普通同步方法,锁是当...

2018-05-29 10:22:52 507

原创 AQS原理

AbstractQueuedSynchronizer(AQS)实现原理 AQS中包含两种锁 独占锁,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁 共享锁,则允许多个线程同时获取锁,并发访问 共享资源(只能读),但是只能有一个线程进行写操作,如:ReadWriteLock 锁队列的实现都是基于CLH的一种变体,在其队列节点的前驱上自旋 队列节点...

2018-05-29 10:22:20 258

原创 并发容器

ConcurrentHashMap JDK1.6采用Segment分段锁技术提高并发访问效率,首先将数据分成一段一段的存储,然后给每一个段数据配一个锁,这样就可以多线程访问不同段的数据而不受竞争影响。 JDK1.8采用CAS+Synchronized保证并发更新安全,采用数组+链表+红黑树存储结构,默认table[16],put等操作会采用CAS更新,找到table[i]后会将此索引处的链表进...

2018-05-29 10:21:00 229 1

原创 同步工具类

同步工具类 闭锁 闭锁可以延迟线程的进度直到达到其终止状态,闭锁的作用相当于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过,当达到结束状态时,这扇门会打开并允许所有的线程通过 闭锁的作用: 1. 确保某个计算在其需要的所有资源都被初始化之后才执行 2. 确保某个服务在其依赖的所有其他服务都已经启动之后才启动 3. 等待直到某个操作的所有参与者就绪后再继续...

2018-05-29 10:20:00 217

原创 Executor框架

Executor框架 1.简介 Java并发库提供一种灵活的线程池实现作为Executor框架的一部分,在Java类库中,任务执行的主要抽象不是Thread而是Executor public interface Executor { /** * Executes the given command at some time in the future. The ...

2018-05-29 10:19:24 199

原创 CompletionService

CompletionService CompletionService简介 CompletionService与ExecutorService类似都可以用来执行线程池的任务,ExecutorService继承了Executor接口,而CompletionService则是一个接口,那么为什么CompletionService不直接继承Executor接口呢?主要是Executor的特性决定...

2018-05-29 10:18:49 217

原创 线程的取消与关闭

线程的取消与关闭 1. 处理不可中断的阻塞 在Java库中,许多可阻塞的方法都是通过提前返回或者抛出InterruptedException来相应中断请求的,然而并非所有的可阻塞方法或者阻塞机制都能相应中断。如果一个线程由于可执行同步的Socket IO或者等待获得内置锁而阻塞,那么中断请求只能设置线程的中断状态,除此之外没有其他任何作用。对于那些由于执行不可中断操作而被阻塞的线程,可以使...

2018-05-29 10:18:16 1351

固定格式yaml 转换成restful api文档

固定格式yaml 生成restful api 文档,支持预览,支持导出word 导出部分不够完善 editor.md

2018-05-28

魔方智能还原游戏的设计与实现

使用OpenGL进行魔方的三维建模,并鼠标实现魔方各个层次的旋转,魔方的自动生成,自动还原,3D演示,功能还在更新。

2015-07-23

空空如也

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

TA关注的人

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