RabbitMQ

RabbitMQ 1.RabbitMQ是什么? RabbitMQ是一个基于AMQP协议的高级消息中间件,它主要的技术特点是可用性,安全性,集群,多协议支持,可视化的客户端,活跃的社区。 2.为什么选择RabbitMQ 功能强大,支持死信队列,优先级队列,延迟队列,重试队列等多种功...

2018-04-28 14:58:55

阅读数 3177

评论数 0

Netty(一):IO通信模型

[TOC] BIO:同步阻塞模型 在传统的同步阻塞模型中,ServerSocket负责绑定IP地址,监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。 采用BIO通信模型的Server端,由一个Acceptor线程负责监听客户端的连接,它接收到客户...

2018-03-15 18:19:56

阅读数 171

评论数 0

深入dubbo内核(3):本地服务暴露

服务发布原理 观察dubbo服务发布时的启动日志 [DUBBO] The service ready on spring started. service: com.alibaba.dubbo.demo.DemoService, dubbo version: 2.0.0, curren...

2018-02-12 11:22:18

阅读数 187

评论数 0

深入dubbo内核(3):dubbo的IOC机制

当@Adaptive注解没有注解在扩展点实现类上,而是在扩展点实现类的方法上的时候则会生成一个$Adpative的代理类。 private Class createAdaptiveExtensionClass() { String code = createAdaptiveExte...

2018-02-05 16:54:22

阅读数 675

评论数 0

深入dubbo内核(2):注解式配置dubbo服务

dubbo注解式配置版本:2.5.8 服务提供方配置 beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XML...

2018-02-01 11:06:43

阅读数 790

评论数 0

深入dubbo内核(1):dubbo的自动发现机制

首先了解一下java的spi spi的设计目标: 面向对象的设计思想是模块之间基于接口编程,模块之间不可以对实现类进行硬编码,一旦代码涉及了具体的实现类就违反了可插拔的原则,如果要替换一种实现就要修改代码。 Java spi提供了这样一种机制: 为某个接口寻找服务实现的机制,类似于IOC的思...

2018-01-25 20:03:59

阅读数 1948

评论数 0

ThreadPoolExecutor高级应用

自定义线程池队列的选择 使用有界队列(ArrayBlockingQueue)自定义线程池,当任务的数量小于corePoolSize的时候,直接创建新的线程执行任务。当任务数量大于corePoolSize的时候会将任务加入到等待队列。若等待队列已满再不大于maxPoolSize的情况下直接创建新的线...

2017-06-18 17:28:57

阅读数 248

评论数 0

Future模式

package future; //核心接口Data,客户端需要的真实数据,在future模式中,这个data有两个重要实现 //RealData,真实数据 //FutureData,用来提取RealData的一个"订单",可以立即返回 //FutureData实现了一个快速返...

2017-06-15 23:14:18

阅读数 295

评论数 0

DelayQueue小例子

网吧上网:package Test1;import java.util.Calendar; import java.util.concurrent.DelayQueue; import java.util.concurrent.Delayed; import java.util.concurren...

2017-06-15 16:28:15

阅读数 1125

评论数 0

JVM类加载机制

class类文件结构任何一个Class文件都对应着唯一 一个类或者接口的定义信息,但是类或者接口不一定都定义在文件里。类或者接口可以直接通过类加载器生成。Class文件是一组以8位字节为基础单位的二进制流,按照严格的顺序排列在Class文件里。Class文件格式采用一种类似于C语言结构体的伪结构来...

2017-05-22 21:49:35

阅读数 171

评论数 0

hashMap原理

线性表的弊端线性表的顺序存储,占用的空间地址是连续的,查找方便,但是容易造成内存空间的浪费。插入和删除,需要大规模的移动数据,既不安全速度又慢。链式存储虽然插入删除方便但是由于其空间的不连续,查找速度慢。当我们既要对数据增删又要查询显然线性表已经不能满足我们的需求了。散列表(hashTable)散...

2017-05-19 23:48:20

阅读数 113

评论数 0

队列

队列是只允许在一端进行插入操作,而在另一段进行删除操作的线性表。 插入的一段称为队尾,删除的一端称为队头。队列的顺序存储结构:采用顺序存储结构的队列 容易假溢出, 即使是循环队列也面临着大规模的移动数据的安全问题。所以队列采用链式存储结构是最好的方式。而在java中队列只是一个接口,它用Lin...

2017-05-18 14:29:47

阅读数 122

评论数 0

栈(经典应用逆波兰表达式)

java中栈继承了Vector,源码很简单,采用的是顺序存储结构。 实现栈:import java.util.Arrays;public class Stack { private Object[] elementData; private int size; public...

2017-05-17 14:44:43

阅读数 275

评论数 0

Vector源码分析

public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { // 采用线性存储结构 ...

2017-05-16 13:36:39

阅读数 121

评论数 0

链式存储结构之单向链表

/** * @author Administrator 单向链表 * @param <E> */ public class Link<E> { private Node<E> first;// 头节点 private Node<E&g...

2017-05-16 12:30:45

阅读数 125

评论数 0

LinkedList底层原理(双向链表)

public class LinkedList<E> { private Node<E> first; private Node<E> last; private int size; private class Node<E&...

2017-05-16 12:28:43

阅读数 361

评论数 0

JDK动态代理原理

public class ProxySubject implements InvocationHandler { private Object target; /** * @param obj * 真实对象 * @return 代理...

2017-05-14 23:51:03

阅读数 125

评论数 0

反射机制

什么是反射反射是java的重要特色之一,如果不理解反射不能说是熟悉java,在代理模式,工厂模式,框架和简单java类的调用我们都需要用到反射。包括面试中经常问到反射。只要提到动态那么必然要用到反射,那么反射的作用是什么?用官方一点的话说JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这...

2017-05-14 22:11:18

阅读数 110

评论数 0

线性表顺序存储结构(ArrayList底层实现原理)

public class ArrayList { private Object[] elementData; private size; //初始化空表 public ArrayList(int initalCapacity){ this.elementData...

2017-05-11 21:01:59

阅读数 400

评论数 0

redis数据类型及持久化方案

String类型 赋值 语法:SET key value 127.0.0.1:6379> set test 1 ok

2017-05-08 19:10:20

阅读数 212

评论数 0

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