自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (12)
  • 收藏
  • 关注

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

摘要:  HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥有HashMap的所有特性。比如,LinkedHashMap的元素存取过程基本与HashMap基本...

2018-04-03 15:16:58 334

原创 Linux-Linux零拷贝原理

这是译文 源文请参考源文。到目前为止,几乎所有人都听说过Linux下所谓的零拷贝功能,但我经常遇到对这个主题没有完全了解的人。 正因为如此,我决定写几篇文章,深入探讨这个问题,希望能解开这个有用的特性。在这篇文章中,我们从一个用户的角度看零拷贝,血淋淋的内核级细节被有意省略。什么是零拷贝?为了更好地理解问题的解决方案,我们首先需要了解问题本身。让我们来看看网络服务器处理的简单过程中所涉及到的内容,...

2018-03-26 19:59:03 709

原创 算法-trie树

先记得,以后再补上

2018-03-21 15:56:54 372

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

需求:一个集合Map<key,last_update_time>,多线程实时的往集合里添加数据,要求集合里的数据在30秒后过期并删除。实现:方法一:轮询扫描法启动一个线程,当map不为空时,轮询扫描这个map,看每个元素的last_update_time是否超过30秒,如果超过,作超时处理。方法二:多timer触发对集合中的每个元素启动一个timer,30秒后触发,对该元素作超时处理。...

2018-03-01 09:20:43 750

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

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

2018-02-01 14:32:07 418

转载 算法-Gossip

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

2018-01-16 13:47:15 356

转载 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))5)异步I/O (asynchronous I/O (the POSIX aio_fun

2018-01-03 16:10:29 329

转载 缓存行

我们经常提到一个短语Mechanical Sympathy,这个短语也是Martin博客的标题(译注:Martin Thompson),Mechanical Sympathy讲的是底层硬件是如何运作的,以及与其协作而非相悖的编程方式。我在上一篇文章中提到RingBuffer后,我们收到一些关于RingBuffer中填充高速缓存行的评论和疑问。由于这个适合用漂亮的图片来说明,所以我想这是下一个我

2017-11-28 10:57:38 2393 1

原创 storm-并行度

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

2017-11-26 10:19:30 330

原创 storm-窗口

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

2017-11-25 18:32:57 594

原创 storm-组件

Boltbolt的主要方法:declareOutputFileds(OutputFieldsDeclarer declarer) ;prepare(Map conf,TopologyContext context,OutputCollector collector); 仅在Bolt开始处理Tuple之前调用;execute(Tuple input);处理一个bolt的输入cle

2017-11-24 09:36:00 342

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

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

2017-11-22 20:09:39 371

原创 storm-ACK的实现原理

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

2017-11-22 16:27:13 569

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

在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?本文就是在研究源码的基础上揭

2017-11-01 20:15:42 559

转载 kerberos认证过程

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

2017-11-01 20:14:07 810

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

先上测试用例package com.phl.threadpool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/** * @Title:SubmitExecuteMain * @Descripti...

2017-09-28 14:42:21 3655

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

作为一个java程序员,估计没有人不知道java的类加载机制是委托父加载器加载,也知道java有这么几大类加载器,分别是BootStrapClassLoader,ExtClassLoader,AppClassLoader以及自定义类加载器。但对于他们的之间的关系是怎样建立起来,估计很少有人说得清楚,下面就通过最权威的源码(jdk1.8),回答以上问题。ClassLoaderjava用Cla

2017-09-21 10:53:34 609

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

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

2017-08-16 19:38:55 651

原创 maven-常用plugin备忘

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

2017-08-14 20:06:05 585

原创 java-源码解读-FutureTask

使用场景java多线程编程中,我们经常使用线程池提交任务,并且通过Future来获取任务执行的结果,以此达到异步或者并行执行的效果。通常我们是这样使用线程池:public class ExecutorServiceDemo { public static void main(String[] args) { // 创建一个线程池对象,控制要创建几个线程对象。 ...

2017-07-18 10:39:53 2510 2

转载 spring-Spring 和SpringMVC 的父子容器关系

Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置Spring和SpringMVC时会出现一些奇怪的异常,比如Bean被多次加载,多次实例化,或者依赖注入时,Bean不能被自动注入,但是明明你已经将该Bean注册了的。找原因还是要看问题的根源,我们从容

2017-04-18 15:29:50 462

转载 IntelliJ IDEA 16 本地LicenseServer激活(破解)

IntelliJ IDEA 16 本地LicenseServer激活(破解)IntelliJ IDEA 是Java开发利器,用社区版不爽,干催就用旗舰版,这个是收费的,需要licence。网上找到了一个帖子 http://blog.csdn.net/rickyit/article/details/50600723,可以通过服务器激活。 最近IntelliJ IDEA 16激活不

2017-04-09 18:14:36 410

转载 Restful形式接口文档生成之Swagger与SpringMVC整合

笔者目前正在搭建一套API服务框架,考虑到客户端能够更方便的调用API服务(这里说的更方便是指避免不厌其烦地解说各接口需要的参数和返回结果),于是决心为每个接口生成详细的说明文档。网上搜索了一下,发现了Swagger这个东西,感觉不错,界面也比javadoc生成的页面要美观,而且网上关于Swagger和springmvc整合的文章不少(遗憾的是大多雷同且不完整)。本文详细介绍Swagger和Spr

2017-03-13 10:24:52 575

转载 Swagger与SpringBoot的整合

Swagger可视化API,不仅能查看API,还能测试1.引入相关JARdependency> groupId>com.mangofactorygroupId> artifactId>swagger-springmvcartifactId> version>1.0.2version>dependency>dependency> groupId>o

2017-03-13 10:02:20 488

转载 zookeeper-数据与存储

1.    Zookeeper技术内幕 1.1. 数据与存储1.1.1.  内存数据        数据结构:        ZooKeeper的数据模型是一棵树,而从使用角度看, Zookeeper就像一个内存数据库一样。在这个内存数据库中,存储了整棵树的内容,包括所有的节点路径、节点数据及其ACL信息等,Zookeeper会定时将这个数据存储到磁盘上。1.1

2017-02-15 09:32:38 10198

转载 zookeeper-服务器角色介绍

1.    Zookeeper技术内幕 1.1. 各服务器角色介绍1.1.1.  Leader        Leader服务器是整个zookeeper集群工作机制中的核心,其主要工作有以下两个。        l  事物请求的唯一调度和处理者,保证集群事务处理的顺序性。        l  集群内部各个服务器的调度者。        请求处理链

2017-02-15 09:31:59 2289 2

转载 zookeeper-系统模型

1.    Zookeeper技术内幕1.1. 系统模型1.1.1.  数据模型        树zookeeper名字空间由节点znode构成,其组织方式类似文件系统,其中各个节点相当于目录和文件,通过路径作为唯一标识。事务ID        在传统数据库中事务具有所谓的ACID特性:即原子性、一致性、隔离性、和持久性。        在Zookeeper中,事务是指

2017-02-15 09:30:38 576

转载 zookeeper-通信协议

1.    Zookeeper技术内幕1.1. 通信协议        基于TCP/IP协议,zookeeper实现了自己的通信协议来完成客户端与服务端、服务端与服务端之间的网络通信。Zookeeper通信协议整体上的设计非常简单,对于请求,主要包含请求头和请求体,而对于响应,则主要包含响应头和响应体。1.1.1.  协议解析:请求部分        GetDataRe

2017-02-15 09:29:45 3134

转载 zookeeper-客户端

1.    Zookeeper技术内幕 1.1. 客户端1.1.1.  服务器地址列表        Zookeeper构造方法中传入的地址,使用逗号分隔的多个IP地址和端口的字符串,                192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181        Zookeeper客户端在连接服务器的过程中

2017-02-15 09:28:58 526

转载 zookeeper-会话

1.    Zookeeper技术内幕 1.1. 会话1.1.1.  sessionID生成        4个基本属性:        sessionlD:会话ID,用来唯一标识一个会话,每次客户端创建新会话的时候,ZooKeeper都会为其分配一个全局唯一的sessionID。        TimeOut:会话超时间。客户端在构造ZooKeeper实例的时候,会配置一个

2017-02-15 09:28:18 690

转载 zookeeper-服务器启动

1.    Zookeeper技术内幕 1.1. 服务器启动        集群版zookeeper服务器启动流程 1.1.1.  数据加载1.1.1.1.      加载快照文件 1.1.1.2.      加载事物日志文件 1.1.2.  启动ServerCnxnFactory        启动过程中,创建一个固定大小的线程池workerPool,

2017-02-15 09:27:24 486

转载 zookeeper-Leader选举

zookeeper

2017-02-15 09:25:31 611

原创 java-synchronized与volatile

 重排序的影响重排序不会给单线程带来内存可见性的问题。多线程中,线程交互执行时,重排序可能会造成内存可见性的问题。synchronized 即能保证可见性,又能保证原子性。volatile只能保证可见性,不能保证原子性。导致共享变量在线程间不可见的原因1.线程的交叉执行2.重排序结合线程交叉执行3.共享变量更新后的值没有及时更新到主内存中synchron...

2016-10-12 10:28:18 337

转载 java-调试hotspot

转自 http://blog.csdn.net/pange1991/article/details/51580969一、下载并安装Netbeans 7.0.1 (c/c++) http://share.weiyun.com/6292e450ed1c88423812e268f355a108或者官网下载https://netbeans.org/community/rel

2016-08-31 09:43:39 580

原创 java-编译openJdk

Using java runtime at: /opt/jdk1.7.0_04/jreError occurred during initialization of VMUnable to load native library: /opt/jdk1.7.0_04/jre/lib/i386/libjava.so: symbol JVM_SetNativeThreadName, versio

2016-08-30 15:12:46 1921 1

原创 java-类初始化

类初始化时机遇到new ,getstatic,putstatic,或invokestatic 这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。这4条指令最常见的java代码场景是:使用new关键字实例化对象的时候。读取或设置一个类的静态字段(被final修饰,已在编译期把结果放入常量池的静态字段除外)使用java.lang.reflect包的方法对类进行反

2016-08-24 13:29:59 386

原创 javascript-this

this指的是谁?this 指的是调用链上的最近的一个对象。function fa(){       alert(this.constructor);}调用方式:fa();    fa定义了一 个函数(对象),但没有实例化这个对象,此时fa的域为window,也是第一调用fa的对象。调用方式:var b=new fa();此时new了一个对象,所

2016-08-18 15:39:54 427

原创 java-jar的格式

ManifestDefault ManifestWhen you create a JAR file, the default manifest file simply contains the following:Manifest-Version: 1.0Created-By: 1.7.0_06 (Oracle Corporation)hese lines sh

2016-07-28 19:41:28 1653

原创 tomcat-tomcat启动流程

2016-07-08 15:34:05 473

原创 java-ContextClassLoader的意义

Thread的实现化过程:public Thread() { init(null, null, "Thread-" + nextThreadNum(), 0);}private void init(ThreadGroup g, Runnable target, String name, long stackSize) { ini

2016-07-06 13:22:15 593

java-spi学习例子

压缩包spi下为代码,解压后用intellij IDEA打开spi下的parent工程即可。

2016-01-06

dubbo分步式服务

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架

2015-08-05

MyEclipse激活程序

一个小小的java程序里面只有一个main方法 把程序用eclipse运行一下输入两个参数就行了

2013-06-03

Oracle_DBA

Oracle DBA DBA helper

2013-03-30

Oracle文档

Oracle的帮助文档,有例子 视图,过程,函数,包

2013-03-30

Spring PPt

Spring开发介绍,很全,很实用

2013-03-30

android 软件管理器

android 软件管理器 代码

2012-05-08

android 通讯录

android 通讯录 代码

2012-05-08

android中文帮助文档

android 帮助文档 api 中文的 有例子 翻译版本:Android 2.3 r1 结构 继承关系 public interface SharedPreferences android.content.SharedPreferences 类概述 用于访问和修改getSharedPreferences(String, int)返回偏好设置数据(preference data)的一个接口。对于任何一组特殊的preferences,所有的客户端共享一个此类单独的实例。 修改Preferences必须通过一个SharedPreferences.Editor对象,以确保当他们提交存储数据的操作时,preference值保持一致的状态。 注意:当前此类不支持多线程访问。后续将添加。 (译者注:这里译为” 偏好设定”,类似于ini文件,用于保存应用程序的属性设置) 参见 getSharedPreferences(String, int) 内部类 interface SharedPreferences.Editor 用于修改SharedPreferences对象设定值的接口。 interface SharedPreferences.OnSharedPreferenceChangeListener 接口定义一个用于在偏好设定(shared preference)改变时调用的回调函数。 公共方法 public abstract boolean contains (String key) 判断preferences是否包含一个preference。 参数 key 想要判断的preference的名称 返回值 如果preferences中存在preference,则返回true,否则返回false。

2012-04-03

Oracle 练习题 很好的自测题

Oracle 自测题 练习题 oracle,很全面的练习题Oracle 自测题 练习题 oracle,很全面的练习题

2011-05-31

jsp某些常用学习实例代码

jsp某些常用学习实例代码jsp实例代码

2011-03-04

空空如也

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

TA关注的人

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