自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (30)
  • 收藏
  • 关注

转载 深入理解 Java 内存模型

本文转自前提《深入理解 Java 内存模型》程晓明著,该书在以前看过一遍,现在学的东西越多,感觉那块越重要,于是又再细看一遍,于是便有了下面的读书笔记总结。全书页数虽不多,内容讲得挺深的。细看的话,也是挺花时间的,看完收获绝对挺大的。也建议 Java 开发者都去看看。里面主要有 Java 内存模型的基础、重排序、顺序一致性、Volatile 关键字、锁、final。本文参考书中内容。基...

2019-07-27 13:49:47 202

原创 Guava RateLimiter源码解析以及分布式限流总结

在一个抽奖项目中为了应对流量洪峰使用了这个RateLimiter组件,在最近一项目中为了控制对下游服务的流量使用了分布式限流组件,这篇文章就是总结这两种,首先看一些基础的东西,以下内容来源于:这里在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流缓存缓存的目的是提升系统访问速度和增大系统处理容量 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决...

2019-07-27 12:39:12 2779

原创 二次线上JVM调优(上线GC次数过多和promotion failed)

先说明一下环境:外网20台机器:4核8G JDK8内网1台机器:32核128G JDK8上线GC次数超大线上的机器每次在上线的时候都会爆出来大量的GC,这按说是一个正常的现象,但是GC的次数明显超过了报警的阈值,所以找了一下原因,在这里记录一下这次解决问题的步骤1、首先根据以下两个方式找到相应的进程号top | grep javaps -ef |grep java2...

2019-07-27 10:13:03 1434

转载 必知必会JVM垃圾回收——对象搜索算法与回收算法

本文转自这篇文章垃圾回收(GC)是JVM的一大杀器,它使程序员可以更高效地专注于程序的开发设计,而不用过多地考虑对象的创建销毁等操作。但是这并不是说程序员不需要了解GC。GC只是Java编程中一项自动化工具,任何一个工具都有它适用的范围,当超出它的范围的时候,可能它将不是那么自动,而是需要人工去了解与适应地适用。拥有一定工作年限的程序员,在工作期间肯定会经常碰到像内存溢出、内存泄露、高并发...

2019-07-25 23:40:38 161

转载 一文了解JVM全部垃圾回收器,从Serial到ZGC

本文转自这篇文章《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同的收集器。常用的7种收集器,其适用的范围如图所示Serial、ParNew、Parallel Scavenge用于新生代;CMS、Serial Old、Paralled Old用...

2019-07-25 23:26:18 249

原创 源码分析:CopyOnWriteArrayList读写分离原理源码

CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略。使用这种策略的还有CopyOnWriteSet,另外还有mysql的MVVC也是使用的这种原理。这篇文章的重点就是了解读写分离实现的底层原理。首先了解一下实现的原理:主要参考这里 我们都知道,集合框架...

2019-07-24 22:58:18 309

原创 源码:BlockingQueue实现类的源码分析

ThreadPoolExecutor在实现中使用了BlockingQueue作为工作队列,今天我们学一下相关的源码,重点看一下ArrayBlockingQueue、LinkedBlockingQueue这两个队列的实现。这篇文章大部分来源于这两篇文章,有兴趣的可以直接看原文:LinkedBlockingQueue源码分析和ArrayBlockingQueue源码分析。首先看一下BlockingQu...

2019-07-24 22:30:25 235

原创 源码:ThreadPoolExecutor原理和源码分析

我们使用线程池一般是按照下边的规则进行的 private static ThreadPoolExecutor executors = new ThreadPoolExecutor(10, 20, 5, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(100), new ThreadPoolExecutor.Ca...

2019-07-20 12:03:10 278

原创 源码分析:ReentrantLock、Semaphore以及CountDownLatch源码以及对应的设计模式

最近懵懵懂懂的看完了AQS的源码(源码分析:AQS源码),还是有很多不懂的地方,感觉还是要多来几遍的,为了更深入的理解AQS框架,看一下使用AQS的ReentrantLock、Semaphore以及CountDownLatch,直接上代码吧,解释都在注释里/** * 这里是重入锁,我们需要关注一下重入锁是怎么实现的,两个条件: * 1. 在线程获取锁的时候,如果已经获取锁的线程是当前线程...

2019-07-18 23:48:31 259

原创 ConditionObject源码分析

先看一下其实现的接口:public interface Condition { /** * 暂停此线程直至一下四种情况发生 * 1.此Condition被signal() * 2.此Condition被signalAll() * 3.Thread.interrupt() * 4.伪wakeup * 以上情...

2019-07-14 15:49:43 606 1

原创 源码分析:AQS源码

在开始这篇源码之前,最好先看下转载整理的这篇文章,有很多值得学习的地方。AQS是用来构建锁或者其他同步组件的基础框架。总体来说,它使用一个 int 成员变量来表示同步状态,通过 CAS 操作对同步状态进行修改,确保状态的改变是安全的。通过内置的 FIFO (First In First Out)队列来完成资源获取线程的排队工作。1、AQS 同步和 synchronized 关键字同步在介绍...

2019-07-14 12:02:43 777

转载 JUC同步器框架(AQS框架)原文翻译

这是李老头写的一篇论文,这篇文章来自,这里,在看之前最好先把下边的知识了解透彻。克雷格.兰丁&hagersten (CLH Lock) CLH、MCS锁的原理及实现Java并发框架——AQS阻塞队列管理(二)JAVA多线程之——自旋锁、CLH、MCS简单的非公平自旋锁以及基于排队的公平自旋锁的实现MCS锁的原理和实现CLH锁的原理和实现我的Java设计模式-模板方法模式下边是正文...

2019-07-09 23:42:42 961 3

Springboot consul 服务提供端和服务发现端

提供了springboot方式的consul的服务的注册端和服务的发现端,具体参见:http://blog.csdn.net/maoyeqiu/article/details/77330735

2017-08-17

springboot中的 动态代理的选择测试代码

测试springboot使用动态代理时候的一些代码,具体参考博客http://blog.csdn.net/maoyeqiu/article/details/76546468

2017-08-01

springboot mybatis 集成多数据源 两种实现方式

springboot mybatis 集成多数据源 两种实现方式,一种静态添加,一种动态添加,后者能够支持很好的拓展。使用注解的方式实现,项目打包了一个module

2017-06-30

springboot集成kafka

springboot kafka

2017-06-28

springboot zookeeper 分布式锁

利用springboot集成zookeeper,并利用zookeeper实现分布式锁,避免羊群效应

2017-05-26

springboot redis

redis 存储list 自定义Object map ,缓存数据

2017-05-17

springboot rabbitmq

在springboot的基础上使用Rabbitmq

2017-05-12

springMVC+Ehcache+MySQL

代码是Ehcache的页面缓存、spring的缓存和Hibernate的缓存的应用,采用的是springMVC框架,数据库是MySQL

2016-11-15

springMVC+Ehcache的各级缓存(包括页面缓存)

springMVC+Ehcache的各级缓存(包括页面缓存)

2016-11-14

springMVC+cdn(qiniu+bootcss)

对源码中的路径的引用部分改成CDN,图片也用CDN进行测试

2016-07-11

spring缓存实例

博客地址http://blog.csdn.net/maoyeqiu/article/details/50433934

2015-12-30

spring aop 自定义缓存实现

spring aop 自定义缓存实现的一个小实例,地址:http://blog.csdn.net/maoyeqiu/article/details/50260357

2015-12-11

spring简单的缓存

利用spring实现的简单的缓存的例子,代码解释:http://blog.csdn.net/maoyeqiu/article/details/50238035

2015-12-09

Hibernate一级缓存、二级缓存以及查询缓存实例

Hibernate一级缓存、二级缓存以及查询缓存实例

2015-12-07

spring3 hibernate4 ehcache实例

spring3 hibernate4 ehcache整合的实例

2015-11-21

echartsJava后台封装数据

用Java在后台封装echarts显示的数据,平台是springMVC

2015-11-07

桥梁模式实例

java实现桥梁模式

2015-05-05

java组合模式

java实现组合模式,java实现组合模式。

2015-04-26

java装饰模式实例

通过设计组装和升级大众CC来说明装饰模式,有一个VolkCC类实现Volk接口,设计一个CCDecorator实现Volk这个接口,在ConcreteCCDecorator这个具体装饰角色中进行功能的增加和重写。

2015-04-20

java实现代理模式

用java实现代理模式,使用房屋中介的现实例子进行代理模式的说明

2015-04-14

java创建者模式实例

用java实现创建者模式,实现UML类图,并且实现一个消息发送的实例

2015-04-12

建造者模式实例

通过java模拟大众CC的组装实现建造这模式的实例

2015-04-08

java工厂方法模式和抽象工厂模式实例

用java语言实现工厂方法模式和抽象工厂模式

2015-04-04

java单例模式实例

用java实现的单例模式,包含实例和饿汉单例于懒汉单例

2015-04-03

spring+动态代理

结合spring框架实现的动态代理代理,spring,Proxy

2015-03-29

spring+静态代理

结合spring框架实现的静态代理,接口回掉

2015-03-23

springCache

简单的实现了spring cache,包括第一次存入缓存,缓存查询和缓存清空等等

2015-03-22

java实现cache小实例

完全自定义的缓存的实现,没有使用第三方组件,使用java实现。

2015-03-20

android百度地图实现画线

在android平台上,使用最新的百度地图API实现两点的动态画线,根据位置的变动实现画线

2015-03-12

springMVC实例

springmvc+hibernate+spring+mysql实现登陆流程的一个小实例,最简单的springMVC配置。springmvc实例。

2015-03-12

空空如也

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

TA关注的人

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