自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java枚举使用以及枚举实现单例模式

JDK 1.5 之前需要自定义枚举类JDK 1.5 新增的enum关键字用于定义枚举类若枚举只有一个成员,则可以作为一种单例模式的实现方式。枚举类型是指由一组固定的常量组成合法值的类型,枚举提供了编译时的类型安全,枚举类型还允许添加任意的方法和域,并实现任意的接口。Java枚举类型背后的基本想法非常简单:她们就是通过共有的静态final域为每个枚举常量导出实际的类。因为没有可以访问...

2016-08-22 00:24:12 16365 1

转载 ArrayList源码分析

ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。   每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量也自动增长。自动增长会带来数据向新数组的重新

2016-08-19 18:23:34 5604 1

原创 ArrayBlockingQueue源码分析及使用

BlockingQueue介绍与常用方法BlockingQueue是一个阻塞队列。在高并发场景是用得非常多的,在线程池中。如果运行线程数目大于核心线程数目时,也会尝试把新加入的线程放到一个BlockingQueue中去。队列的特性就是先进先出很容易理解,在java里头它的实现类主要有下图的几种,其中最常用到的是ArrayBlockingQueue、LinkedBlockingQueue

2016-08-15 22:14:15 15746

转载 回调函数透彻理解Java

回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。但是一直都没有重视,终于在一次面试的时候吃亏了,越来越理解为什么很多人说Java编程思想这本书要一遍遍的看,吃透!        首先在网络上搜索很多文章介绍什么是回调函数,看的云里雾里的。后来自己一步步分解终于理解了,记录如下。        从维基百科上面摘抄定义:(看完本篇文章再来理解这个定

2016-08-14 20:09:44 824

转载 Java中的CopyOnWrite容器

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。

2016-08-14 14:37:09 437

原创 深入理解ThreadLocal

ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。线程局部变量(ThreadLocal)的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的...

2016-08-13 19:45:13 6765

转载 Java HashMap的死循环

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo

2016-08-13 18:09:45 747

转载 ConcurrentHashMap、synchronized与线程安全

最近做的项目中遇到一个问题:明明用了ConcurrentHashMap,可是始终线程不安全除去项目中的业务逻辑,简化后的代码如下:[java] view plain copypublic class Test40 {        public static void main(String[] args) throws In

2016-08-13 18:05:42 840

原创 深入分析ConcurrentHashMap

ConcurrentHashMap的目的多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。虽然已经有一个线程安全的HashTable,但是HashTable容器使用synchronized(他的get和put方法的实现代码如下)来保证线程安全,在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线

2016-08-13 18:02:02 5892

原创 java类里的成员变量是自身的对象问题

今晚看单例模式饿汉时想到一个问题:假如java类里的成员变量是自身的对象,则新建该类对象时内存中怎么分配空间,我感觉似乎死循环了。举个例子:package day810;class B { private String b = "Hello"; private B a = new B();}public class A { public static void main(S

2016-08-10 23:10:07 12838 4

原创 java List删除元素问题及解决办法

先看一个例子:删除List中值为2的元素:List list = new ArrayList(); list.add(1); list.add(2); list.add(2); list.add(3); list.add(4); System.out.println("----------list大小1:--"+list.size()); for (int i

2016-08-02 21:49:48 16422 4

转载 java比较器Comparable接口和Comaprator接口

java的比较器有两类,分别是Comparable接口和Comparator接口。一、其实很简单,单从字面理解就基本明白1. Comparable:“可比较的”,(欲参与比较的对象对应的元素类需实现Comparable接口)使用这种策略来比较时,两个对象(这里两个对象是指一个类的两个不同实例)本身必须是“可比较的”,比较的标准由对象所在的类来定义,这种可比较的能力是对象本身固有的,

2016-08-01 14:11:33 882

原创 HashMap源码分析以及四种遍历方法

package day05;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;/* *...

2016-08-01 11:20:34 7355

图解HTTP(彩色高清带目录).zip

本书作者的写作手法平实易懂,内容讲解透彻到位。前半部分由 HTTP 的成长发展史娓娓道来,基于 HTTP 1.1 标准讲解通信过程,包括 HTTP 方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解 HTTP 通信过程中代理、网关、隧道等的作用。接着介绍 SPDY、WebSocket、WebDAV 等 HTTP 的扩展功能。作者还从细节方面举例,让读者更好地理解何为无状态(stateless)、301 和 302重定向的区别在哪、缓存机制,等等。本书后半部分的重心放在 Web安全上,涵盖 HTTPS、SSL、证书认证、加密机制、Web 攻击手段等内容。旨在让读者对 HTTP 协议形成一个整体概念,明确设计 HTTP的目的及意义所在,了解 HTTP 的工作机制,掌握报文中常用的首部字段,返回结果状态码的作用,对各种客户端与服务器的通信交互场景的细节等都做到了然于心,从而在平时的开发工作中独立思考,迅速准确地定位分析由 HTTP 引发的问题,并辅以适当的方法加以解。

2019-06-24

elasticsearch权威指南高清中文pdf

Elasticsearch权威指南中文(最新版)pdf,高清,1. Introduction 2. 入门 i. 是什么 ii. 安装 iii. API iv. 文档 v. 索引 vi. 搜索 vii. 聚合 viii. 小结 ix. 分布式 x. 结语 3. 分布式集群 i. 空集群 ii. 集群健康 iii. 添加索引 iv. 故障转移 v. 横向扩展 vi. 更多扩展 vii. 应对故障 4. 数据 i. 文档 ii. 索引 iii. 获取 iv. 存在 v. 更新 vi. 创建 vii. 删除 viii. 版本控制 ix. 局部更新 x. Mget xi. 批量 xii. 等等

2019-01-15

空空如也

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

TA关注的人

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