自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

转载 Spring MVC处理请求流程

1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用HandlerAdapt...

2020-03-12 15:12:03 208

转载 多路复用IO与NIO

最近在学习NIO相关知识,发现需要掌握的知识点非常多,当做笔记记录就下。在学NIO之前得先去了解IO模型(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(NewIO)库。(3)多路复用...

2019-11-11 15:08:06 330

转载 B树与B+树

本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点...

2019-04-02 09:39:15 123

转载 A FIRST LOOK INTO ZGC

ZGCis a new garbage collector recently open-sourced by Oracle for the OpenJDK. It was mainly written byPer Liden. ZGC is similar toShenandoahor Azul’s C4 that focus on reducing pause-times while s...

2019-04-01 17:32:38 314

转载 ZGC

http://dinfuehr.github.io/blog/a-first-look-into-zgc/

2019-04-01 17:10:35 503

转载 redis跳跃表

一:基本概念 跳跃表是一种随机化的数据结构,在查找、插入和删除这些字典操作上,其效率可比拟于平衡二叉树(如红黑树),大多数操作只需要O(log n)平均时间,但它的代码以及原理更简单。跳跃表的定义如下: “Skip listsare data structures that use probabilistic balancing ratherthan ...

2019-04-01 16:55:29 463

转载 转:JDK1.8-Stream()使用详解

为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集...

2019-04-01 13:49:52 186

转载 Eureka的工作原理以及它与ZooKeeper的区别

1、Eureka 简介:Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。 1.基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka; - 处于不同节点的eureka通...

2019-01-27 11:49:46 114

原创 反转链表

public ListNode reverseList(ListNode head) { if(head == null) { return null; } ListNode first = head; head = head.next; first.next = null;...

2018-12-18 15:46:31 72

原创 数字旋转方阵

1 2 3 4 14 15 16 5 13 30 17 6 12 19 18 7 11 10 9 8 public class RotateMatrix { private int[][] result; private int maxNum; public R...

2018-12-10 14:38:37 615

转载 Java并发控制:ReentrantLock Condition使用详解

生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,其解决方法是让生产者此时进行休眠,等待消费者从缓冲区中取走了一个或者多个数据后再去唤醒...

2018-11-09 16:47:18 2242

转载 TCC 分布式事物最终一致性

简介TCC是由支付宝架构师提供的一种柔性解决分布式事务解决方案,主要包括三个步骤:TCC流程TCC的关键流程如下图(以下单和扣减库存为例子)Q: 预生成订单失败了,为什么要通过TCC执行预处理数据回滚?A: 可能预生成订单成功,但是接口返回失败(超时失败),所以预处理在某些情况下是有预处理数据,需要清理TCC异常场景在整个流程,我们主要需要关注的是cancel失败和c...

2018-11-08 15:36:04 423

转载 java集合——Queue

Queue接口定义了队列数据结构,元素是有序的(按插入顺序),先进先出。Queue接口相关的部分UML类图如下:DeQueueDeQueue(Double-ended queue)为接口,继承了Queue接口,创建双向队列,灵活性更强,可以前向或后向迭代,在队头队尾均可心插入或删除元素。它的两个主要实现类是ArrayDeque和LinkedList。ArrayDeque (底层使用...

2018-11-08 10:14:31 161

转载 不得不提的volatile及指令重排序(happen-before)

一、不得不提的volatilevolatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它;我们在JDK及开源框架中随处可见这个关键字,但并发专家又往往建议我们远离它。比如Thread这个很基础的类,其中很重要的线程状态字段,就是用volatile来修饰,见代码 /* Java thread status for tools, ...

2018-11-08 09:19:31 118

转载 跳表(skiplist)的理解

听到跳表(skiplist)这个名字,既然是list,那么应该跟链表有关。 跳表是有序链表,但是我们知道,即使对于排过序的链表,我们对于查找还是需要进行通过链表的指针进行遍历的,时间复杂度很高依然是O(n),这个显然是不能接受的。是否可以像数组那样,通过二分法进行查找呢,但是由于在内存中的存储的不确定性,不能这做。但是我们可以结合二分法的思想,没错,跳表就是链表与二分法的结合。 1.链表从...

2018-11-07 16:21:29 210

转载 java队列

Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。 Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口  内置的不阻塞队列: Prior...

2018-10-19 17:01:31 86

转载 Java并发容器之非阻塞队列ConcurrentLinkedQueue

参考资料:http://blog.csdn.net/chenchaofuck1/article/details/51660521    实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,阻塞队列就是通过使用加锁的阻塞算法实现的;另一种非阻塞的实现方式则可以使用循环CAS(比较并交换)的方式来实现。    ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列...

2018-10-19 17:00:31 228

转载 Java并发之AQS详解

一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!  类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。  以下是本文的目录大...

2018-10-19 16:59:25 77

转载 自旋锁、排队自旋锁、MCS锁、CLH锁

自旋锁、排队自旋锁、MCS锁、CLH锁

2018-10-19 16:57:31 120

转载 使用 Binlog 和 Canal 从 MySQL 抽取数据

数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的数据...

2018-10-15 09:17:34 172

转载 CAS原理分析

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错...

2018-09-29 15:55:23 120

转载 HTTP协议详解

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT...

2018-09-29 14:32:45 194

转载 Java对象克隆——浅克隆和深克隆的区别

在Java中对象的克隆有深克隆和浅克隆之分。有这种区分的原因是Java中分为基本数据类型和引用数据类型,对于不同的数据类型在内存中的存储的区域是不同的。基本数据类型存储在栈中,引用数据类型存储在堆中。 什么是克隆克隆就是依据已经有的数据,创造一份新的完全一样的数据拷贝。实现克隆有多种方式,可以手工的new出一个新的对象,然后将原来的对象信息一个一个的set到新的对象中。还有就是使用cl...

2018-09-29 10:35:49 103

原创 OSGI

OSGI分为模块化,生命周期和服务。 模块化模块层分为物理模块化和逻辑模块化。1. 物理模块化确定了模块的成员关系。物理模块其实是OSGI部署单元(JAR文件),其包括类文件,资源文件(jpg,xml),元数据(Manifest.mf)。2. 逻辑模块化是根据业务逻辑将业务进行纵向拆分成不同的模块,通过模块的私有可见性对不同业务逻辑模块之间进行隔离从而实现高内聚,低耦合。(...

2018-09-25 17:52:36 115

转载 快速排序

 /** * 快速排序 * 快速排序采用了分治策略。就是在一个数组中取一个基准数字,把小的数放基准的左边,大的数放基准的右边。 * 基准左边和右边分别是新的序列。在新的序列中再取一个基准数字,小的放左边,大的放右边。 * 这个里面用到的递归。我们需要三个参数,一个是数组,另外两个是序列的边界 * @author HJS */public class QuickSort{ ...

2018-09-21 10:11:31 70

转载 选择排序

基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止。public class SelectionSort { private int[] array; private int nElements; public SelectionSort(int max) { this.array = new in...

2018-09-20 16:02:59 83

转载 冒泡排序

冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序    public class ArrayBub { private int[] array; private int nElements; public ArrayBub(int max) { this.arr...

2018-09-20 14:27:03 97

原创 HashMap详解

HashMap默认初始容量为16,默认加载因子为0.75.,HashMap数据存储在Node数组中。 /** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. * (We als...

2018-08-23 11:12:36 91

原创 ArrayList扩容

初始化时调用构造方法底层数组elementData指向空数组,容量为0。/*** Shared empty array instance used for default sized empty instances. We* distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when* first e...

2018-08-23 09:45:46 258

转载 JDK1.8 HashMap源码分析

一、HashMap概述      在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。      下图中代...

2018-08-09 17:45:10 87

转载 熔断机制HYSTRIX

一、问题产生雪崩效应:是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程  正常情况下的服务:某一服务出现异常,拖垮整个服务链路,消耗整个线程队列,造成服务不可用,资源耗尽:形成过程:           1)服务提供者不可用                                 a)硬件故障:硬件损坏造成的服务器主机宕机, 网络硬件故障造成的服务提供者的不可访问...

2018-06-21 14:46:55 3744

转载 微服务(Microservice)那点事

WHAT - 什么是微服务微服务简介这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可见Microservice有多火。最喜欢其中一页。关于这个典故,可以参考this,此图适用于一切高大上的名字——技术有SOA,Agile,CLOUD,DevOps等等,古代有道,气,八卦等等。此类名词的最...

2018-06-21 14:39:23 167

转载 In-Memory Caching

The in-memory caching system is designed to increase application performance by holding frequently-requested data in memory, reducing the need for database queries to get that data.The caching system

2018-06-21 14:30:01 278

转载 Flume or Kafka for Real-Time Event Processing

Flume and Kakfa both can act as the event backbone for real-time event processing. Some features are overlapping between the two and there are some confusions about what should be used in what use cas

2017-11-07 15:00:27 195

Python入门

python基础教程2

2012-04-17

Robot FrameWork快速入门

1 参考文档 7 2 介绍 8 2.1 概述 8 2.2 安装 8 2.3 运行演示 9 2.4 实例程序介绍 12 3 测试用例 14 3.1 第一个测试用例 14 3.2 高级测试用例 15 3.3 数据驱动测试用例 15 4 关键字 17 4.1 内置关键字 17 4.2 库关键字 17 4.3 用户关键字 18 5 变量 21 5.1 定义变量 21 5.2 使用变量 22 6 组织测试用例 24 6.1 Test suites 24 6.2 Setup 和 Teardown 24 6.3 使用标签 24 7 创建测试库 26

2012-04-17

Linux零基础初级教程

Linux零基础初级教程,主讲Linux基本技能 .chm格式

2010-07-09

commons-fileupload-1.2.1-bin.zip

commons-fileupload-1.2.1-bin

2009-12-22

空空如也

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

TA关注的人

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