自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (54)
  • 收藏
  • 关注

转载 Spring 循环引用 ——理解singleton与prototype初始化的区别

所谓的循环引用,就是A依赖B,B又依赖A,A与B两个对象相互持有。像下面这种情况: class A{ B b; public A(B b) { this.b=b; }}class B{ A a; public B(A a ) { this.a=a; } }我们知道spring在获取对象或者在加载的时候,触发依赖注入。例如触发A对象的依赖注入,发现...

2018-09-25 13:29:43 1031 1

转载 MySQL索引背后的数据结构及算法原理

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...

2018-09-21 15:28:43 138

转载 B树和B+树的总结

B树为什么要B树磁盘中有两个机械运动的部分,分别是盘片旋转和磁臂移动。盘片旋转就是我们市面上所提到的多少转每分钟,而磁盘移动则是在盘片旋转到指定位置以后,移动磁臂后开始进行数据的读写。那么这就存在一个定位到磁盘中的块的过程,而定位是磁盘的存取中花费时间比较大的一块,毕竟机械运动花费的时候要远远大于电子运动的时间。当大规模数据存储到磁盘中的时候,显然定位是一个非常花费时间的过程,但是...

2018-09-21 15:09:16 134

转载 理解mysql的锁、事务隔离级别及事务传播行为

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。ACID,是指在可靠数据库管理系统(DBMS)中,事务(Transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性 原子性是指事务是一个不...

2018-09-21 12:19:23 227

转载 深入分析Volatile的实现原理

引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能...

2018-09-21 12:03:45 111

转载 RabbitMQ之消息确认机制(事务+Confirm)

概述在使用RabbitMQ的时候,我们可以通过消息持久化操作来解决因为服务器的异常奔溃导致的消息丢失,除此之外我们还会遇到一个问题,当消息的发布者在将消息发送出去之后,消息到底有没有正确到达broker代理服务器呢?如果不进行特殊配置的话,默认情况下发布操作是不会返回任何信息给生产者的,也就是默认情况下我们的生产者是不知道消息有没有正确到达broker的,如果在消息到达broker之前已经丢失...

2018-09-21 12:00:28 263

转载 RabbitMQ消息的可靠性

消息可靠性在项目中使用RabbitMQ时,我们可能会遇到这样的问题:如一个订单系统当用户付款成功时我们往消息中间件添加一条记录期望消息消费者修改订单状态,但是最终实际订单状态并没有被修改成功。遇到这种问题我们排查的思路如下:1.消息是否已经成功发送到消息中间件2.消息是否有丢失的情况 消息是否已经被消费成功在生产环境下是不容许出现消息投递/消费错误的情况的,因为这可能会对企业产生巨...

2018-09-21 11:37:20 8275

转载 RabbitMQ和Kafka对比以及场景使用说明

1.架构模型    rabbitmq    RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consu...

2018-09-21 10:14:58 210

转载 Rabbitmq原理和分析

1、基本原理MQ全称为Message Queue,是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业消息系统。业务上,可以实现服务提供者和消费者之间的数据解耦,提供高可用性的消息传输机制,在实际生产中...

2018-09-21 09:19:03 1003

转载 Spring源码初探-IOC(4)-Bean的初始化-循环依赖的解决

前言在实际工作中,经常由于设计不佳或者各种因素,导致类之间相互依赖。这些类可能单独使用时不会出问题,但是在使用Spring进行管理的时候可能就会抛出BeanCurrentlyInCreationException等异常 。当抛出这种异常时表示Spring解决不了该循环依赖,本文将简要说明Spring对于循环依赖的解决方法。循环依赖的产生和解决的前提循环依赖的产生可能有很多种情况,例如:...

2018-09-21 09:08:36 91

转载 就是要你懂Java中volatile关键字实现原理

前言我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用。本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必要讲解一下CPU缓存的相关知识,掌握这部分知识一定会让我们更好地理解volatile的原理,从而更好、更正确地地使用volati...

2018-09-20 14:00:37 229

转载 MySQL存储引擎中的MyISAM和InnoDB区别详解

在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问。为了解开这个谜题,搜寻了网络,找到了如下信息:MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transa...

2018-09-20 12:46:16 110

转载 Java集合-ConcurrentHashMap工作原理和实现JDK7

概述本文学习知识点1.ConcurrentHashMap与HashMap的区别。2.数据存储结构。3.如何提高并发读写性能。4.put和get方法源码实现分析。5.size方法如何实现。与HashMap的区别1.ConcurrentHashMap和HashMap都是Map的实现,提供key,value的读写。2.都继承自AbstractMap类,但实现的接口不同,如下...

2018-09-20 10:46:58 122

转载 Java集合-ConcurrentHashMap工作原理和实现JDK8

概述本文主要介绍ConcurrentHashMap在JDK8中的源码实现和原理。在JDK8中,开发人员几乎把ConcurrentHashMap的源码重写了一遍,源码由之前的2000多行增加到了6300行左右,因此实现也就复杂很多。在学习之前,最好先了解下如下知识:1、ReentrantLock的实现和原理。2、Synchronized的实现和原理。3、硬件对并发支持的CAS操作及JV...

2018-09-20 10:46:21 516

转载 ConcurrentHashMap与红黑树实现分析Java8

本文学习知识点1、二叉查找树,以及二叉树查找带来的问题。2、平衡二叉树及好处。3、红黑树的定义及构造。4、ConcurrentHashMap中红黑树的构造。在正式分析红黑树之前,有必要了解红黑树的发展过程,请读者耐心阅读。二叉查找树红黑树的起源得从二叉查找树(二叉排序树)说起。先来看二叉查找树的定义:1、要么为一颗空树,要么就是一颗具有如下特性的二叉树。2、左子节...

2018-09-20 10:20:57 1388

转载 Java中的四种引用类型(强、软、弱、虚)

为什么需要不同的引用类型从Java1.2开始,JVM开发团队发现,单一的强引用类型,无法很好的管理对象在JVM里面的生命周期,垃圾回收策略过于简单,无法适用绝大多数场景。为了更好的管理对象的内存,更好的进行垃圾回收,JVM团队扩展了引用类型,从最早的强引用类型增加到强、软、弱、虚四个引用类型。引用类图引用类图StrongRerence为JVM内部实现。其他三类引用类型全部继承自...

2018-09-20 10:07:58 240

转载 ThreadLocal内存泄漏真因探究

ThreadLocal原理回顾 ThreadLocal的原理:每个Thread内部维护着一个ThreadLocalMap,它是一个Map。这个映射表的Key是一个弱引用,其实就是ThreadLocal本身,Value是真正存的线程变量Object。也就是说ThreadLocal本身并不真正存储线程的变量值,它只是一个工具,用来维护Thread内部的Map,帮助存和取。注意上图的虚线...

2018-09-20 10:03:31 513

转载 ThreadLocal-面试必问深度解析

ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图ThreadLocal结构内部从上面的结构图,我们已经窥见ThreadLo...

2018-09-19 16:52:38 5478

转载 Mycat中间件---MySQL读写分离

MySQL主从复制的几种方案数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。 从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存储的瓶颈,而是在于计算的瓶颈,即SQL查询的瓶颈,我们知道,正常情况下,Insert SQL就是几十个毫秒的时间内写入完成,而系统中的大多数Select SQL则要几秒到几分钟才能有结果,很多复杂的SQ...

2018-09-19 15:39:50 191

转载 事务的传播行为(讲得比较好)

我们都知道事务的概念,那么事务的传播特性是什么呢?(此处着重介绍传播特性的概念,关于传播特性的相关配置就不介绍了,可以查看spring的官方文档) 在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层 那么当我们调用Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中,在事务层里面调用的这些方法要么全部成功,要么全部失败。那么事...

2018-09-18 10:51:12 304

转载 MySQL事务隔离级别和Spring事务关系介绍

事务隔离级别介绍隔离级别 脏读 不可重复读 幻读 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed) 不可能 可能 可能 可重复读(Repeatable read) 不可能 不可能 可能 可串行化(Serializable ) 不可能 不可能...

2018-09-18 10:51:04 1277

Postman-win64 安装版

Postman-win64-6.1.2-Setup Postman-win64-6.1.2-Setup Postman-win64-6.1.2-Setup

2018-12-16

spring-mvc-官方中文文档

spring-mvc-官方中文文档

2018-12-09

高性能MySQL(第3版)和MySQ必知必会

高性能MySQL(第3版)和MySQ必知必会两本书

2018-12-09

设计模式(讲的最详细版本)

设计模式(讲的最详细版本)

2018-12-09

Hibernate实战-第2版(清华出版)

Hibernate实战-第2版(清华出版)

2018-12-09

Hibernate5用户手册中文版

Hibernate5用户手册中文版

2018-12-09

springMVC activemq简单聊天室

springMVC activemq简单聊天室

2018-12-05

java工具类

java工具类

2018-12-02

上传错了,请别审核通过

后台管理系统后台管理系统后台管理系统后台管理系统后台管理系统后台管理系统后台管理系统

2018-12-02

Java的23种设计模式(疯狂Java总结)

Java的23种设计模式(疯狂Java总结) Java的23种设计模式(疯狂Java总结)

2018-06-27

Java多线程编程核心技术_完整版

Java多线程编程核心技术_完整版 PDF电子书下载 带书签目录

2018-06-18

轻量级微服务架构 中文完整版(上册)

轻量级微服务架构 中文完整版 轻量级微服务架构 中文完整版

2017-12-22

彩色UML建模_机械工业出版社_[美]Peter Coad,Eric Lefebvre,Jeff De Luca著 中文完整版

彩色UML建模_机械工业出版社_[美]Peter Coad,Eric Lefebvre,Jeff De Luca著

2017-12-22

实现领域驱动设计 中文完整版 大小108M

内容简介 · · · · · · 领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?Vaughn Vernon 的这本《实现领域驱动设计》为我们给出了全面的解答。 《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则 和对一些问题的折中性讨论。《实现领域驱动设计》共分为14 章,在DDD 战略部分,《实现领域驱动设计》向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD 实现来说非常有用。 《实现领域驱动设计》在DDD 的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD 参考书。 举报 作者简介 · · · · · · 作者:Vaughn Vernon是一个经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程;在 20世纪 90年代早期,他便在领域建模中应用了领域驱动设计,那时他使用的是Smalltalk语言。他在很多业务领域都有从业经验,包括航空、环境、地理、保险、医学和电信等领域。同时,Vaughn在技术上也取得了很大的成功,包括开发可重用的框架和类库等。他在全球范围之内提供软件咨询和演讲,此外,他还在许多国家教授《实现领域驱动设计》的课程。你可以通过www.VaughnVernon.co访问到他的最新研究成果。他的Twitter:@VaughnVernon。

2017-12-22

统计预测方法及预测模型

统计预测方法及预测模型 统计预测方法及预测模型 统计预测方法及预测模型

2017-12-22

Windows 下Nexus搭建Maven私服

Windows 下Nexus搭建Maven私服 Windows 下Nexus搭建Maven私服

2017-12-22

《Java经典入门教程》

《Java经典入门教程》 《Java经典入门教程》《Java经典入门教程》

2017-12-22

MyBatis3 教程 中文完整版

MyBatis3 教程 中文版 MyBatis3 教程 中文版 MyBatis3 教程 中文版

2017-12-22

微信 java weixin-java-tools-springmvc-master

微信 java weixin-java-tools-springmvc-master 微信 java weixin-java-tools-springmvc-master

2017-12-22

rabbitMQ JAVA开发 demo文件

rabbitMQ JAVA开发 demo文件 rabbitMQ JAVA开发 demo文件

2017-12-22

Font-Awesome-3.2.1

Font-Awesome-3.2.1 Font-Awesome-3.2.1 Font-Awesome-3.2.1

2017-12-22

算法导论 中文完整版

算法导论 中文完整版 原书第2版

2017-12-22

深入理解Java虚拟机++JVM高级特性与最佳实践 中文完整版

深入理解Java虚拟机++JVM高级特性与最佳实践 中文完整版

2017-12-22

MyBatis从入门到精通 中文完整版

MyBatis从入门到精通 中文完整版 MyBatis从入门到精通 中文完整版

2017-12-22

Java程序员修炼之道

Java程序员修炼之道 Java程序员修炼之道 Java程序员修炼之道

2017-12-22

SQL学习指南 完整中文版

SQL学习指南 SQL学习指南 SQL学习指南 SQL学习指南 SQL学习指南

2017-12-22

高性能MySQL(第3版)

高性能MySQL(第3版) 高性能MySQL(第3版) 高性能MySQL(第3版)

2017-12-22

JAVA面向对象编程_源代码

JAVA面向对象编程_源代码 JAVA面向对象编程_源代码 JAVA面向对象编程_源代码 JAVA面向对象编程_源代码

2011-04-05

10套后台系统管理HTML界面

10套后台系统管理HTML界面 10套后台系统管理HTML界面 10套后台系统管理HTML界面

2011-04-04

Javascript效果封装类(都是国外高手写的)

Javascript效果封装类(都是国外高手写的) 对于学习Javascript非常有用。值得一看!!

2011-04-04

J2EE5_ API_中文版

J2EE5_ API 中文 超好 J2EE5_ API 中文 超好 J2EE5_ API 中文 超好 J2EE5_ API 中文 超好

2011-04-04

JAVA API_中文

JAVA API_中文 JAVA API 中文版 java学习 JAVA API 中文版 java学习 JAVA API 中文版 java学习

2011-04-04

php帮助文档 API

php帮助文档 php帮助文档 php帮助文档 php帮助文档php帮助文档

2011-04-04

PHP网站开发案例教程

PHP网站开发案例教程 PHP网站开发案例教程 PHP网站开发案例教程

2011-04-04

Java多线程设计模式(带源码)

Java多线程设计模式(带源码) Java多线程设计模式(带源码)Java多线程设计模式(带源码)

2011-04-04

JAVA程序代码_设计模式大全

JAVA学习的强烈推荐 200道程序代码 23种设计模式

2011-04-04

北京大学算法分析与设计课件

算法分析与设计 算法分析与设计 算法分析与设计

2011-04-04

北京大学离散数学课件ppt

北大离散数学课件 北大离散数学课件 北大离散数学课件

2011-04-04

北大c++程序设计课件

北大c++程序设计课件 北大c++程序设计课件 北大c++程序设计课件

2011-04-04

was web service

waswaswas web service

2011-01-19

空空如也

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

TA关注的人

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