冒泡排序浅析

简介 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的...

2019-05-06 11:08:03

阅读数 53

评论数 0

RocketMQ源码解析之Broker启动

阅读须知 文章中使用/* */注释的方法会做深入分析 正文 之前我们分析了Broker初始化流程,接下来我们来看Broker的启动流程: BrokerStartup: public static BrokerController start(BrokerController controlle...

2019-04-07 21:16:31

阅读数 74

评论数 0

MySQL索引原理浅析

前言 我们都知道,MySQL索引的数据结构是

2019-03-31 23:38:08

阅读数 139

评论数 0

RocketMQ源码解析之Broker初始化

阅读须知 文章中使用/* */注释的方法会做深入分析 正文 在启动Broker时,我们会使用类似下面的命令: nohup sh bin/mqbroker -n localhost:9876 & 在mqbroker...

2019-03-10 21:51:52

阅读数 151

评论数 0

RocketMQ源码解析之NameServer请求处理

阅读须知 文章中使用/* */注释的方法会做深入分析 正文

2019-02-13 21:46:09

阅读数 120

评论数 2

类加载过程结合Spring案例分析

案例 最近在分析一个有关类加载过程的问题,代码如下: @Component public class SpringContextUtils implements ApplicationContextAware { private static ApplicationContext app...

2019-01-27 17:30:24

阅读数 222

评论数 0

Spring源码解析之bean的创建

阅读须知 研究了半天markdown也没发现怎么为代码块中的重点代码做特殊标记,所以这里使用//单行注释做代码的简单注释,而/**/多行注释的代码注释的同时会做深入分析,同时为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本...

2019-01-27 14:06:08

阅读数 5093

评论数 2

类加载过程整理

各种调用初始化顺序 我们用一个小demo来验证一下各种调用的初始化顺序: demo1 public class Test { public static void main(String[] args) { new C1(); } } class C1 { ...

2019-01-26 20:29:16

阅读数 127

评论数 2

RocketMQ源码解析之NameServer启动和停止

阅读须知 文章中使用/* */注释的方法会做深入分析 正文 关于RocketMQ源码的下载和构建,这里不多重复,很简单,相信大家都搞的定。 启动请参考官方文档:http://rocketmq.apache.org/docs/quick-start/ 源码git地址:https://githu...

2019-01-24 20:38:45

阅读数 321

评论数 2

MyBatis缓存不一致问题测试

数据准备 首先我们创建两张表: CREATE TABLE `person` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `age` int(11) NOT NULL DEFAULT '0' COMMENT...

2019-01-02 17:00:55

阅读数 114

评论数 9

Dubbo源码阅读顺序

Dubbo源码解析之配置解析篇,主要内容是<dubbo:service/>、<dubbo:reference/>、<dubbo:registry/...

2018-12-29 17:22:49

阅读数 294

评论数 4

Spring源码阅读顺序

Spring源码解析之ApplicationContext,主要内容是介绍Spring上下文初始化时的一些主要步骤 Spring源码解析之默认标签的解析,如文章标题,主要内容是<bean/>、&a...

2018-12-25 14:24:15

阅读数 727

评论数 9

Spring boot内嵌tomcat源码解析

阅读须知 版本:2.0.4 文章中使用/* */注释的方法会做深入分析 正文 我们知道,在使用Spring boot搭建web工程时,我们不需要自己搭建一个tomcat服务器,只需要引入spring-boot-starter-web,在应用启动时会自动启动嵌入版的tomcat作为应用服务器,下...

2018-12-15 16:16:32

阅读数 1004

评论数 7

策略模式实践

模式简介 策略模式是一种行为型模式,它定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户端应用而独立变化。策略模式适合解决当程序出现多个不同分支,而且每个分支的逻辑还比较复杂的场景。 生产实践 在笔者参与的交易系统中,需要支持多种支付方式,如支付宝、微信、现...

2018-12-06 17:58:28

阅读数 189

评论数 0

RocketMQ整体结构

RocketMQ 结构 概述 Apache RocketMQ是一个分布式消息传递和流平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可扩展性。它由四部分组成:NameServer、broker、producer 和 consumer。它们中的每一个都可以水平扩展而没有单点故障。 如上图所示。...

2018-12-03 16:20:25

阅读数 172

评论数 2

建造者模式实践

建造者模式是一种常见的设计模式,属于创建型模式,我们常见的工厂、单例、原型、包括《重构与模式》一书中提到的creation method都属于创建型模式。建造者适合用于构建复杂对象,它可以将创建和表示分离,使我们的代码可读性更好,更易于维护。 在我们的实际开发中,经常会构建一些实体对象,比如,在笔...

2018-12-01 16:45:06

阅读数 144

评论数 0

装饰者模式实践

装饰者模式是一个比较常用的模式,它可以在不改变原类文件和不使用继承的情况下动态地扩展一个对象的功能。现在我们遇到这样一个需求,我们要做一个智能货架系统,它可以根据门店的销量、坪效、客单价等等一些数据来展现一个智能的陈列方案,目的是门店可以通过这种陈列方式来提升商品的销量、坪效等指标。 一个货架的品...

2018-11-25 19:13:50

阅读数 1168

评论数 1

CyclicBarrier源码解析

阅读需知 jdk版本:1.8 使用/* */注释的方法会做深入分析 正文 public CyclicBarrier(int parties) { this(parties, null); } /** * @param parties 在栅栏被触发之前必须调用await方法的线程数 ...

2018-11-09 11:42:12

阅读数 341

评论数 0

Spring boot自动配置源码解析

阅读须知 版本:2.0.4 文章中使用/* */注释的方法会做深入分析 正文 自动配置是Spring boot的一大亮点,让我们从Spring繁杂的配置中脱身而出,本篇文章我们就来分析一下Spring boot自动配置的源码。不知道读者是否有注意到,在分析Spring boot启动流程时,我们...

2018-11-07 17:55:51

阅读数 480

评论数 0

Spring boot启动流程源码解析

阅读须知 版本:2.0.4 文章中使用/* */注释的方法会做深入分析 正文 @SpringBootApplication public class BootApplication { public static void main(String[] args) { S...

2018-11-06 17:40:34

阅读数 515

评论数 0

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