排序:
默认
按更新时间
按访问量

java-源码解读-jdk1.6-LinkedHashMap与HashMap

摘要:  HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然...

2018-04-03 15:16:58

阅读数:52

评论数:0

Linux-Linux零拷贝原理

这是译文 源文请参考源文。到目前为止,几乎所有人都听说过Linux下所谓的零拷贝功能,但我经常遇到对这个主题没有完全了解的人。 正因为如此,我决定写几篇文章,深入探讨这个问题,希望能解开这个有用的特性。在这篇文章中,我们从一个用户的角度看零拷贝,血淋淋的内核级细节被有意省略。什么是零拷贝?为了更好...

2018-03-26 19:59:03

阅读数:132

评论数:0

算法-trie树

先记得,以后再补上

2018-03-21 15:56:54

阅读数:51

评论数:0

算法-大数据量的定时超时

需求:一个集合Map<key,last_update_time>,多线程实时的往集合里添加数据,要求集合里的数据在30秒后过期并删除。实现:方法一:轮询扫描法启动一个线程,当map不为空时,轮询扫描这个map,看每个元素的last_update_time...

2018-03-01 09:20:43

阅读数:184

评论数:0

java-Java对象的强、软、弱和虚引用原理

1.Java对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人...

2018-02-01 14:32:07

阅读数:106

评论数:0

算法-Gossip

Gossip算法因为Cassandra而名声大噪,Gossip看似简单,但要真正弄清楚其本质远没看起来那么容易。为了寻求Gossip的本质,下面的内容主要参考Gossip的原始论文:<<Efficient Reconciliation and Flow Control for An...

2018-01-16 13:47:15

阅读数:90

评论数:0

Linux-io模型

1. Linux下的五种I/O模型 1)阻塞I/O(blocking I/O) 2)非阻塞I/O (nonblocking I/O) 3) I/O复用(select 和poll) (I/O multiplexing) 4)信号驱动I/O (signal driven I/O (SIGIO)) ...

2018-01-03 16:10:29

阅读数:110

评论数:0

缓存行

我们经常提到一个短语Mechanical Sympathy,这个短语也是Martin博客的标题(译注:Martin Thompson),Mechanical Sympathy讲的是底层硬件是如何运作的,以及与其协作而非相悖的编程方式。 我在上一篇文章中提到RingBuffer后,我们收到一些关于R...

2017-11-28 10:57:38

阅读数:189

评论数:0

storm-并行度

什么让 topology(拓扑)可以运行 worker 进程, executors(执行器)和 tasks(任务)。 一个 worker 进程 执行一个 topology(拓扑)的子集. 一个 worker 进程属于一个指定 topology(拓扑)。 并且针对该 topology 的一个或...

2017-11-26 10:19:30

阅读数:140

评论数:0

storm-窗口

1. 简介 Storm可同时处理窗口内的所有tuple。窗口可以从时间或数量上来划分,由如下两个因素决定: 窗口的长度,可以是时间或Tuple数量;滑动间隔(sliding Interval),同样也可以是时间或Tuple数量,后面Sliding Window中介绍; 2. Window 2.1...

2017-11-25 18:32:57

阅读数:224

评论数:0

storm-组件

Bolt bolt的主要方法: declareOutputFileds(OutputFieldsDeclarer declarer) ; prepare(Map conf,TopologyContext context,OutputCollector collector); 仅在Bolt开始处理T...

2017-11-24 09:36:00

阅读数:125

评论数:0

java-源码解读-线程池实现原理-1

为什么要使用线程池合理利用线程池能够带来三个好处。(复制过来的,懒)第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,...

2017-11-22 20:09:39

阅读数:170

评论数:0

storm-ACK的实现原理

异或运行基本原理 异或xor也叫半加运行,其运行法则相当于不带进位的二进制加法: 0 xor  0=0 1 xor 1 = 0 0 xor 1 =1 1 xor 0= 1 异或运行特性 1.交换律  a xor b=b xor a 2.结合律 a xor (b xor c)= (a xor b) ...

2017-11-22 16:27:13

阅读数:179

评论数:0

HBase -ROOT-和.META.表结构(region定位原理)

在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServe...

2017-11-01 20:15:42

阅读数:119

评论数:0

kerberos认证过程

一、 基本原理 Authentication解决的是“如何证明某个人确确实实就是他或她所声称的那个人”的问题。对于如何进行Authentication,我们采用这样的方法:如果一个秘密(secret)仅仅存在于A和B,那么有个人对B声称自己就是A,B通过让A提供这个秘密来证明这个人就是他或她...

2017-11-01 20:14:07

阅读数:190

评论数:0

java-源码解读-线程池提交之execute和submit有何不同

先上测试用例package com.phl.threadpool; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Fut...

2017-09-28 14:42:21

阅读数:1561

评论数:0

java-源码解读-java类加载机制

作为一个java程序员,估计没有人不知道java的类加载机制是委托父加载器加载,也知道java有这么几大类加载器,分别是BootStrapClassLoader,ExtClassLoader,AppClassLoader以及自定义类加载器。但对于他们的之间的关系是怎样建立起来,估计很少有人说得清楚...

2017-09-21 10:53:34

阅读数:289

评论数:0

java-源码解读-线程池实现原理-0

线程池初识我们一般这样使用线程池:public class ExecutorServiceDemo { public static void main(String[] args) { // 创建一个线程池对象,控制要创建几个线程对象。 Executo...

2017-08-16 19:38:55

阅读数:348

评论数:0

maven-常用plugin备忘

tomcat org.apache.tomcat.maven tomcat7-maven-plugin 2.1 /device-manager-provider utf-8 8001 tomcat ...

2017-08-14 20:06:05

阅读数:226

评论数:0

java-源码解读-FutureTask

使用场景 在java多线程编程中,我们经常使用线程池提交任务,并且通过Future来获取任务执行的结果,以此达到异步或者并行执行的效果在java多线程编程中,我们经常使用线程池提交任务,并且通过Future来获取任务执行的结果,以此达到异步或者并行执行的效果 通常我们是这样使用线程池: publi...

2017-07-18 10:39:53

阅读数:1946

评论数:2

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