自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LinkedList源码(1)

在使用List的 时候经常是ArrayList和LinkedList他们两个各有千秋,根据自己的业务使用情况来使用,现在咱们看看LinkedList的底层是如何实现各种操作的。 首先咱先看看他的继承和实现类:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E

2017-07-20 14:48:58 261

原创 ArrayList源码(3)

前两篇写了add和remove相关的源码,现在剩下的是零散的一些和Itr、SubList、ListItr几个相关的代码,这些应用次数也多但是其中相似的代码较多。 先说零散的几个: trimToSize()是减少存储使用的字符序列 ,如果缓冲区大于必要保持其当前的字符序列,那么它可能会调整大小,以成为更加节省空间.public void trimToSize() { modCount++;

2017-07-19 14:19:21 201

原创 ArrayList源码(2)

现在接着说ArrayList的另外一个常用方法remove(). remove同样也是存在两个方法 1.public E remove(int index) { rangeCheck(index); modCount++; E oldValue = elementData(index); int numMoved = size - index - 1; if

2017-07-18 18:49:12 252

原创 ArrayList源码(1)

ArrayList继承了AbstractList并实现了List接口。 三种初始化的方法:第一种:规定List长度的参数public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new IllegalArgumentException("I

2017-07-18 16:40:45 197

原创 java volatile

volatile是共享变量“可见性”关键字,当该变量在一处更改后,在其他线程里读到的是这个修改后的值。它是轻量级的synchronized,Volatile变量修饰符如果使用恰当的话,它比synchronized的使用和执行成本会更低,因为它不会引起线程上下文的切换和调度,执行开销更小。   我记着在一次面试里让我写一个并发的程序,我使用volatile来进行计数操作,面试官问我为什么用这个?解释

2017-07-18 14:39:26 198

转载 java transient关键字

transient的作用和使用方法   我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化   然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方

2017-07-17 13:55:34 227

原创 java的final关键字

Java中的final关键字非常重要,它可以应用于类、方法以及变量。将变量,方法和类声明为final代表了什么?使用final的好处是什么?final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。   final关键字的含义   final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了

2017-07-17 13:10:26 198

转载 static特殊用法--Java包静态导入

静态导包就是Java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。   一般我们导入一个类都用 import com…..ClassName;而静态导入是这样:import static com…..ClassName.;这里的多了个static,还有就是类名ClassName后面多了个. ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方

2017-07-12 14:21:52 196

原创 static{}静态块

static{}静态块会在类被加载的时候执行一次,一般用来初始化静态变量和调用静态方法。 1、static{}语句块执行的时机,类被加载的准确含义   用Class.forName()显示加载的时候;实例化一个类的时候,如将main()函数的内容改为:Test t=new Test();//这种形式其实和1相比,原理是相同的,都是显示的加载这个类,读者可以验证Test t=new Test(

2017-07-12 14:18:06 289

原创 static用法详解

如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。   声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量,例如:声明一个static的变量

2017-07-12 13:53:00 1084

转载 GitHub git clone时,提示warning: remote HEAD refers to nonexistent ref, unable to checkout.

问题描述:最近做Android开发,采用的是Git管理代码,从git服务器上获取Contacts模块的代码:git clone your-git-server提示:warning: remote HEAD refers to nonexistent ref, unable to checkout.并且Contacts模块的代码并没有下载到工作区。解决方法:原因是.git目录下.git/refs/he

2017-06-28 13:25:15 1040

原创 Zookeeper

Zookeeper概述  Zookeeper是一个工具,可以实现集群中的分布式协调服务。   所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作。   Zookeeper之所以能够实现分布式协调服务,靠的就是它能够保证分布式数据一致性。   所谓的分布式数据一致性,指的就是可以在集群中保证数据传递的一致性。   Zookeeper能够提供的分布式协调服务包括:数据发

2017-06-27 10:35:07 214

转载 HashMap、HashTable和ConcurrentHashMap的区别

#HashMap  HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable

2017-05-12 16:48:02 408

转载 HashMap的实现原理

转载的文章原地址HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构  在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap

2017-05-12 13:38:39 125

原创 MySQL主从复制读写分离

原理 mysql主(称master)从(称slave)复制的原理: 1、 master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events) 2、 slave将master的binary log events拷贝到它的中继日志(relay log) 3、 slave重做中继日志中

2017-05-11 21:45:46 180

原创 Redis的哨兵模式(Sentinel)

Redis Sentinel是一个分布式系统,你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个从服务器作为新的主服务器。   Sentinel系统用于管理多个Redis服务器(instan

2017-05-11 15:15:09 361

转载 zookeeper通信模式

Zookeeper的通信架构  在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择。而leader主要承担事务的协调,当然leader也可以承担接收客户请求的功能,为了方便描述,后面的描述都是client与Fo

2017-05-11 14:05:03 1506

原创 HBase简单配置学习

一、HBASE概述HBase是一个分布式的、面向列的开源数据库。HBase不同于一般关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase是基于列而不是基于行的模式。HBase利用hadoopHDFS作为其文件存储系统,利用Hadoop的MapReduce中的海量数据,利用zookeeper作为协调工具。提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。它介于no

2017-02-15 21:48:13 215

原创 Hadoop 特点 和缺点

一、 Hadoop 特点 1、支持超大文件 一般来说,HDFS存储的文件可以支持TB和PB级别的数据。 2、检测和快速应对硬件故障 在集群环境中,硬件故障是常见性问题。因为有上千台服务器连在一起,故障率高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。假设某一个datanode节点挂掉之后,因为数据备份,还可以从其他节点里找到。namenode通

2017-02-14 22:22:13 16863

原创 hadoop基本介绍及简单安装配置

1、hadoop简单介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)PO

2017-02-14 21:22:22 609

经典算法大全

面试和自己平时开发用到的算法,多学算法代码牛掰。

2017-08-04

MongoDB权威指南_中文版

学习mongoDb的最好资源

2017-08-04

HBase权威指南中文版

hbase 是大数据里面常用的数据库之一,应用也比较广泛。

2017-07-20

flume安装包

flume应用安装包,解压修改配置

2017-06-27

zookeeper3.4.7安装包

zookeeper的应用Linux安装包,直接解压安装成功

2017-06-27

GitHub入门与实践.pdf

GitHub学习的最好资料,可以快速入门使用Git让学习更加简单。

2016-08-15

python 3.5 64位安装

python windows 64 位安装

2016-05-24

alibaba-rocketmq

rocketmq-3.2.6.tar.gz 2015-06-11,最新版本的的rocketmq服务端安装包

2016-05-24

ssh框架(测试)

是一个基本的ssh框架的基本搭建,里面有简单的项目,可以ssh框架的基本运行.

2016-03-02

Thingking in java

java经典教材 清晰pdf版 2002年Software Development杂志Jolt大奖; 2001年JavaWorld编辑选择最佳书籍奖; 2000年JavaWorld读者选择最佳书籍奖; 1998年Software Development杂志Jolt大奖; 1998年Java Developer's Journal编辑选择最佳书籍奖。 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书作者有多年的教学经验,对C、C++、Java语言都有独到、深入的理解。因此他非常了解如何教授Java语言这门课程,也非常明白语言教学中的难点及人们的困惑。作者以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念,精心选取“对读者理解Java语言来说最为重要”的部分编写成书。 Bruce Eckel从1986年至今,已经发表了超过150篇计算机技术文章,出版了6本书(其中4本是关于C++的),并且在全世界做了数百次演讲。他是《Thinking in Java》、《Thinking in C++》、《C++ Inside & Out》《Using C++》和《Thinking in Patterns》的作者,同时还是《Black Belt C++》文集的编辑。他的《Thinking in C++》一本书在1995年被评为“最佳软件开发图书”,《Thinking in Java》被评为1999年Java World“最爱读者欢迎图书”,并且赢得了编辑首选图书奖

2016-03-02

深入分析Java Web技术内幕

这是一本很好的java web 开发书,讲解的很到位,给我们提供了正确的学习方向。

2016-03-02

日志管理方面

只是一个简单的网页制作源码,做的是网页中log的一小部分,有需求再传。

2015-07-25

空空如也

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

TA关注的人

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