自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(409)
  • 资源 (14)
  • 收藏
  • 关注

原创 Java反射机制

一、JAVA是动态语言吗?一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言。但JAVA它却有着一个非常突出的动态相关机制:反射。通过反射,Java可以于运行时加载、探知和使用编译期间完全求和的类、生成其对象实体,调用其方法或者对属性设值。所以Java算是一个半动态的语言吧。反射的概念:在Java

2017-09-14 14:23:47 229

原创 Redis与Memcached的区别

Redis与Memcached的区别传统MySQL+ Memcached架构遇到的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着

2017-09-14 14:16:51 349

原创 面试题

下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法()A start()       B run()       C exit()       D getPriority()答案:ABD解析:看Java API docs吧:http://docs.oracle.com/javase

2017-09-14 13:59:32 254

转载 Java 集合深入理解(15):AbstractMap

今天来了解下 AbstractMap。什么是 AbstractMapAbstractMap 是 Map 接口的的实现类之一,也是 HashMap, TreeMap, ConcurrentHashMap 等类的父类。AbstractMap 提供了 Map 的基本实现,使得我们以后要实现一个 Map 不用从头开始,只需要继承 AbstractMap, 然

2017-09-14 11:00:27 227

转载 Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读

读完本文你将了解到:点击查看 Java 集合框架深入理解 系列 - - 乾杯什么是 HashMapHashMap 的特点HashMap 的 13 个成员变量HashMap 的初始容量和加载因子HashMap 的关键方法HashMap 的 4 个构造方法HashMap 中的链表节点HashMap 中的添加操作HashMap 中的哈希函数 hashHashMap

2017-09-14 10:55:33 571

原创 基于zookeeper简单实现分布式锁

这里利用zookeeper的EPHEMERAL_SEQUENTIAL类型节点及watcher机制,来简单实现分布式锁。主要思想:1、开启10个线程,在disLocks节点下各自创建名为sub的EPHEMERAL_SEQUENTIAL节点;2、获取disLocks节点下所有子节点,排序,如果自己的节点编号最小,则获取锁;3、否则watch排在自己前面的节点,监听到其删除后,进入第2步

2017-09-13 17:36:27 293

原创 zookeeper简介

场景一有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。        通过我们的讨论和以往的经验判断在这场景中可以实现并行计算,但我们还期望能

2017-09-13 17:06:46 329

转载 重温数据结构:深入理解红黑树

读完本文你将了解到:什么是红黑树黑色高度红黑树的 5 个特性红黑树的左旋右旋指定节点 x 的左旋 右图转成左图指定节点 y 的右旋左图转成右图红黑树的平衡插入二叉查找树的插入插入后调整红黑树结构调整思想插入染红后的调整有 2 种情况根据 TreeMap 的代码来验证这个过程红黑树的平衡删除

2017-09-13 14:47:20 335

转载 Java 集合深入理解(17):HashMap 在 JDK 1.8 后新增的红黑树结构

点击查看 Java 集合框架深入理解 系列 传统 HashMap 的缺点HashMap 在 JDK 18 中新增的数据结构 红黑树HashMap 中关于红黑树的三个关键参数HashMap 在 JDK 18 中新增的操作桶的树形化 treeifyBinHashMap 在 JDK 18 中新增的操作 红黑树中添加元素 putTreeValHashMa

2017-09-13 14:43:03 446

原创 基于html5 websocket API简单实现断点上传文件

本实例基于html5的 websocket API和netty框架,如果您对两个技术不太熟悉,可以点击下面连接了解websocket: http://www.chinaz.com/web/2012/0806/267188.shtml                      http://www.websocket.org/netty:             http

2017-09-13 11:20:21 2804

原创 HTML5 文件域+FileReader 分段读取文件并上传-WebSocket

一、单文件上传实例HTML:div class="container"> div class="panel panel-default"> div class="panel-heading">分段读取文件:div> div class="panel-body"> input type="file" id="file

2017-09-13 11:16:45 1223

原创 探索 ConcurrentHashMap 高并发性的实现机制

简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型。同时,ConcurrentHashMap 的源代

2017-09-13 09:23:04 216

原创 java源码分析之TreeMap基础篇

常见的数据结构有数组、链表,还有一种结构也很常见,那就是树。前面介绍的集合类有基于数组的ArrayList,有基于链表的LinkedList,还有链表和数组结合的HashMap,今天介绍基于树的TreeMap。     TreeMap基于红黑树(点击查看树、红黑树相关内容)实现。查看“键”或“键值对”时,它们会被排序(次序由Comparable或Comparator决定)。TreeMap的

2017-09-13 09:06:58 254

原创 《Java线程池》:Executor生命周期

《Java线程池》:Executor生命周期我们知道线程是有多种执行状态的,同样管理线程的线程池也有多种状态。JVM会在所有线程(非后台daemon线程)全部终止后才退出,为了节省资源和有效释放资源关闭一个线程池就显得很重要。有时候无法正确的关闭线程池,将会阻止JVM的结束。线程池Executor是异步的执行任务,因此任何时刻不能够直接获取提交的任务的状态。这些任务有可能已经完成,

2017-09-12 10:30:15 248

原创 《Java线程池》Executor 以及Executors

《Java线程池》Executor 以及Executors线程池的相关类的体系结构如下:先看Executor接口,是最根上的接口 public interface Executor { /* * Executes the given command at some time in the future. The comman

2017-09-12 10:28:36 205

原创 《Java源码分析》:CopyOnWriteArrayList/ CopyOnWriteArraySet

《Java源码分析》:CopyOnWriteArrayList/CopyOnWriteArraySetCopyOnWriteArrayList/CopyOnWriteArraySet的基本思想是一旦对容器有修改,那么就“复制”一份新的集合,在新的集合上修改,然后将新集合复制给旧的引用。当然了这部分少不了要加锁。显然对于CopyOnWriteArrayList/CopyOnWriteArra

2017-09-12 10:27:26 275

原创 《Java源码分析》:ReadWriteLock(第二部分)

《Java源码分析》:ReadWriteLock(第二部分)本篇博文主要介绍了ReentrantReadWriteLock内部实现。ReadWriteLock是一个接口,如下: public interface ReadWriteLock { /** * Returns the lock used for reading.

2017-09-12 10:25:22 186

原创 《Java源码分析》:ReadWriteLock(第一部分)

《Java源码分析》:ReentrantLock.unlock 释放锁ReentrantLock.unlock()API给出的介绍为:试图释放此锁。 如果当前线程是此锁所有者,则将保持计数减 1。如果保持计数现在为 0,则释放该锁。如果当前线程不是此锁的持有者,则抛出 IllegalMonitorStateException。下面就从源码的角度来分析

2017-09-12 10:24:52 185

原创 《Java源码分析》:CountDownLatch

《Java源码分析》:CountDownLatchLatch:闭锁。有人把Latch比喻成是一个门,在门打开之前,所有想进门的线程都被阻塞,在门打开之后,所有想进门的线程全部通过,且门打开之后就不能再关闭。CountDownLatch是一个同步辅助类,允许一个或多个线程等待直到其它线程的一些操作已经准备完成。CountDownLatch是JDK 5+里面闭锁

2017-09-12 10:24:25 191

原创 《Java源码分析》:Exchanger

《Java源码分析》:ExchangerExchanger类用于两个线程之间交换数据。Exchanger类只有两个方法:1、V exchange(V x) 等待另一个线程到达此交换点(除非当前线程被中断),然后将给定的对象传送给该线程,并接收该线程的对象。API给出的详细说明如下:public V exchange(V x) throws Inter

2017-09-12 10:23:51 196

原创 HashMap对HashCode碰撞的处理

先说Java之外的,什么是拉链法?怎么解决冲突的:拉链法解决冲突的做法是:将所有关键字为同义词的结点链接在同一个单链表中。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数组t[0..m-1]。凡是散列地址为i的结点,均插入到以t为头指针的单链表中。t中各分量的初值均应为空指针。在拉链法中,装填因子α可以大于1,但一般均取α≤1。换句话说:HashCode是

2017-09-12 10:23:07 264

原创 PyCharm下进行Scrapy项目的调试

1、首先创建一个Scrapy项目:在命令行输入:scrapy startproject project_nameproject_name为项目名称,比如我的项目名称为py_scrapyjobbole,生成的目录为:2、创建新的Spider在命令行输入:scrapy genspider jobbole(spider名称) blog.jobbole.com(

2017-09-12 10:22:31 287

原创 《Java困惑》:多并发情况下HashMap是否还会产生死循环

《Java困惑》:多并发情况下HashMap是否还会产生死循环ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现,在看很多博客在介绍ConcurrentHashMap之前,都说HashMap适用于单线程访问,这是因为HashMap的所有方法都没有进行锁同步,因此是线程不安全的,不仅如此,当多线程访问的时候还容易产生死循环。

2017-09-12 10:21:52 379

原创 《Java源码分析》:Semaphore

《Java源码分析》:SemaphoreSemaphore 是一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。说白了,Semaphore是

2017-09-11 10:34:39 309

原创 《Java源码分析》:Condition

《Java源码分析》:ConditionAPI文档中对Condtion类列出的方法的说明如下1、 void await()造成当前线程在接到信号或被中断之前一直处于等待状态。2、 boolean await(long time, TimeUnit unit)造成当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。3、lo

2017-09-11 10:33:17 381

原创 《Java源码分析》:ReentrantLock.unlock 释放锁

《Java源码分析》:ReentrantLock.unlock 释放锁ReentrantLock.unlock()API给出的介绍为:试图释放此锁。 如果当前线程是此锁所有者,则将保持计数减 1。如果保持计数现在为 0,则释放该锁。如果当前线程不是此锁的持有者,则抛出 IllegalMonitorStateException。下面就从源码的角度来分析如何释放

2017-09-11 10:31:35 282

原创 《Java源码分析》:ReentrantLock.lock 锁机制

《Java源码分析》:ReentrantLock.lock 锁机制AbstractQueuedSynchronizer这个类真的很难也很复杂,是构建锁以及实现其他相关同步类的基础框架。本来是没有打算来研究下这个类,但是由于想了解锁机制,因此,不可避免的需要研究它。但是这个类确实很难,自己看了几遍这个类也还是没有过多的看懂,本篇博文只能说是对自己看这个类的一点点理解和记录,若有错,请

2017-09-11 10:30:01 218

原创 《Java源码分析》:ReferenceQueue、Reference及其子类

《Java源码分析》:ReferenceQueue、Reference及其子类在看完WeakHashMap源码之后,看了有关于讲解WeakHashMap的些许博客,发现了几个比较有意思的类:Reference、Reference子类(SoftReference、WeakReference、PhantomReference)以及ReferenceQueue。以前自己只是知道这些类的存

2017-09-11 08:57:45 240

原创 WeakHashMap和HashMap的区别

WeakHashMap和HashMap的区别前面对HashMap的源码和WeakHashMap的源码分别进行了分析。在WeakHashMap源码分析博文中有对与HashMap区别的比较,但是不够具体系统。加上本人看了一些相关的博文,发现了一些好的例子来说明这两者的区别,因此,就有了这篇博文。WeakHashMap和HashMap一样,WeakHashMap也是一个散列表,它存储的内

2017-09-11 08:52:14 459

原创 《Java源码分析》:WeakHashMap

说明:WeakHashMap也是一个“数组和链表”的结合体1、WeakHashMap的继承结构 public class WeakHashMapK,V> extends AbstractMapK,V> implements MapK,V> 123WeakHashMap与HashMap一样,都是继承AbstractMap并实现了Map接口。与

2017-09-11 08:50:39 226

原创 《Java源码分析》:LinkedHashSet

HashSet是借助于HashMap来进行实现的,而LinkedHashSet是基于LinkedHashMap进行实现的。1、LinkedHashSet的继承体系LinkedHashSet是继承HashSet类,并实现了Set接口。因此具有HashSet类的一切特性。 public class LinkedHashSetE> extends HashSet

2017-09-11 08:47:00 241

原创 《Java源码分析》:HashSet

说明:我们都知道HashSet集合是不允许重复元素的,因此这个类的利用什么来保证这个集合里面不会有重复的元素呢?结论是:HashSet是借助于HashMap的key不允许重复这个特性来实现的。想想这个思想确实比较奇妙,是吧,HashMap是操作键值对,而HashSet是操作HashMap的key完成相关操作,或者这么说,HashSet全部的操作是借助于HashMap经过某种封装得到的下面来

2017-09-11 08:45:56 237

原创 《Java源码分析》:Stack

1、Stack的继承结构 public class StackE> extends VectorE> 12看见没,Stack类继承Vector来实现的。Stack相对于Vector添加的方法 public Stack() { } //添加元素 public E push(E item) { addElement(i

2017-09-11 08:43:52 323

原创 《Java源码分析》:Vector

《Java源码分析》:Vector1、Vector的继承结构 public class VectorE> extends AbstractListE> implements ListE>, RandomAccess, Cloneable, java.io.Serializable1234从继承结构可以看出,Vector继承了Abstrac

2017-09-08 09:38:24 265

原创 《Java源码分析》:LinkedHashMap

《Java源码分析》:LinkedHashMap1、LinkedHashMap的继承结构 public class LinkedHashMapK,V> extends HashMapK,V> implements MapK,V>123从结构可以看出,LinkedHashMap继承HashMap并实现了Map接口。2、LInkedHa

2017-09-08 09:35:52 205

原创 《Java源码分析》:HashMap

《Java源码分析》:HashMapHashMap和Hashtable一样,底层都是基于“数组和链表”来实现的1、HashMap的继承结构 public class HashMapK,V> extends AbstractMapK,V> implements MapK,V>, Cloneable, Serializable 12HashMap继承了

2017-09-08 09:33:25 174

原创 《Java源码分析》:Hashtable

Java源码分析》:HashtableHashtable类的实现也是基于“数组和链表”来实现的。Hashtable的继承关系为: public class HashtableK,V> extends DictionaryK,V> implements MapK,V>, Cloneable, java.io.Serializable 123

2017-09-08 09:30:50 200

原创 《JAVA源码分析》:LinkedList

LinkedList源码分析今天就来看下LinkedList的源码,先看下LinkedList的继承体系结构。public class LinkedListE> extends AbstractSequentialListE> implements ListE>, DequeE>, Cloneable, java.io.Serializable123Linked

2017-09-08 09:22:01 241

原创 《JAVA源码分析》:ArrayList

《JAVA源码分析》:ArrayListArrayList继承体系结构如下:public class ArrayListE> extends AbstractListE> implements ListE>, RandomAccess, Cloneable, java.io.Serializable12ArrayList类主要是继承AbstractList类并实

2017-09-08 09:18:41 248

原创 《Java源码分析》:TreeMap

《Java源码分析》:TreeMap今天把TreeMap的源码稍微看了下,TreeMap的内部是基于红黑树来完成的。由于红黑树确实在我们的实际编码过程中用的比较少,因此自己对红黑树的认知不是很深,只是稍微有点印象罢了。由于TreeMap是基于红黑树来完成,因此 ,首先先列出红黑树的5个性质:性质 1:每个节点要么是红色,要么是黑色。性质 2:根节点永远是黑色

2017-09-08 09:14:14 265

物流跟踪查询快递鸟

java实现物流跟踪查询。Demo写好了,测试方法有两个参数。1:物流公司的简称(SF),2:需要查询的物流单号。你们需要申请物流接口的商户Id和api key值,申请步骤word文档有详细介绍

2018-10-07

IKAnalyzer2012

IKAnalyzer2012_u3

2017-10-30

IKAnalyzer2012_u3

IKAnalyzer2012_u3

2017-10-30

sessionDemo.zip

用于测试Nginx分发请求的案例demo

2017-09-26

tomcat-redis-session.zip

使用tomcat-redis-session-manager开源框架实现使用Redis存储Nginx+Tomcat负载均衡集群的Session所需要的3个jar:tomcat-redis-session-1.0-SNAPSHOT.jar、jedis-2.7.2.jar、commons-pool2-2.0.jar

2017-09-26

HiJson 2.1.2_jdk64

json 离线格式化工具

2017-09-14

JAVA利用HttpClient进行HTTPS接口调用

JAVA利用HttpClient进行HTTPS接口调用

2017-09-14

python-3.6.0-amd64.exe

python-3.6.0-amd64.exe

2017-09-13

jdk1.8中文api

jdk1.8中文api

2017-08-30

pcre-8.39.tar.gz

pcre-8.39.tar.gz

2017-08-18

mybatis-spring-1.3.1

mybatis-spring-1.3.1

2017-05-19

apache-activemq-5.9.0-bin.zip

apache-activemq-5.9.0-bin.zip

2017-05-16

TortoiseGit-1.8.14.0_64bit.

TortoiseGit-1.8.14.0_64bit

2017-05-16

空空如也

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

TA关注的人

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