- 博客(83)
- 收藏
- 关注
原创 多线程(1):基础总结
一、概述1. 概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。2.进程和线程区别进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。线程::同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。区别: ...
2017-04-30 23:52:35
446
原创 List接口实现类(3):CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,当想要对一块内存进行修改时,不在原有内存块中进行写操作,而是将内存拷贝一份,在新的内存中进行写操作,写完之后,就将指向原来内存指针指向新的内存,原来的内存就可以被回收掉。
2017-04-25 23:41:07
700
原创 List接口实现类(2):LinkedList
LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList实现了所有的列表操作,允许所有的元素(包括空元素)。LinkedList所有的操作都是在对双向链表操作,LinkedList不是线程安全的。Collections.synchronizedList方法可以实现线程安全的操作。
2017-04-25 23:40:02
393
原创 ConcurrentHashmap:基于jdk8
JDK1.8中的ConcurrentHashMap 放弃了1.7版本中Segment臃肿的设计,取而代之的是采用来保证并发安全进行实现。ConcurrentHashMap作为Concurrent一族,其有着高效地并发操作,相比Hashtable的笨重,ConcurrentHashMap则更胜一筹了。 在1.8版本以前,ConcurrentHashMap采用分段锁的概念,使锁更加细化,但是1.8已经改变了这种思路,而是利用Node + CAS + Synchronized 来保证并发更新的安全,底层采用数组
2017-04-10 01:47:21
425
原创 ConcurrentHashmap:基于jdk7
JDK1.7下的ConcurrentHashMap首先将数据分成一段一段(segment)的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。ConcurrentHashMap内部分为很多个Segment,每一个Segment拥有一把锁,然后每个Segment(继承ReentrantLock)下面包含很多个HashEntry列表数组。
2017-04-10 01:45:57
448
原创 LinkedHashMap
所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表双向链表的HashMap。在LinkedHashMapMap中,所有put进来的Entry都保存在如下面第一个图所示的哈希表中,但由于它又额外定义了一个以head为头结点的双向链表,因此对于每次put进来Entry,除了将其保存到哈希表中对应的位置上之外,还会将其插入到双向链表的尾部
2017-03-17 13:49:07
414
原创 HashSet
基于JDK7一、概述HashSet 是一个没有重复元素的集合。底层是由HashMap实现的,不保证元素的顺序。HashSet允许使用 null 元素。public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Seri...
2017-03-17 13:48:33
365
原创 Hashtable
一.概述1.定义Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。 HashMap是Hashtable的轻量级实现。 Hashtable定义:public class Hashtable<K,V> ...
2017-03-17 13:47:21
697
原创 HashMap(2): EntrySet、KeySet实现原理
一.概述HashMap里面保存的数据最底层是一个Entry型的数组,这个Entry则保留了一个键值对,还有一个指向下一个Entry的指针。所以HashMap是一种结合了数组和链表的结构。因此,我们有3种对数据的观测方式:keySet,values,entrySet。keySet是从key的值角度出发的结果。它里面包含了这个键值对表里面的所有键的值的集合,因为HashMap明确规定一个键只能对应一个值
2017-03-16 19:39:29
2472
1
原创 HashMap:基于jdk7
一.基础1.概述HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 键和null 值 。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap继承AbstractMap,实现了Map接口。
2017-03-12 14:39:46
438
原创 hashCode和hash值
HashMap一.概述基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。
2017-03-06 19:04:17
1339
3
原创 Object类详解
Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类,任何类都默认继承Object。当然,数组也继承了Object类。然而,接口是不继承Object类的,Object类不作为接口的父类。
2017-03-05 19:56:49
768
原创 WebService(3):JAX-WS
一.概述JAX-WS2.0 的全称为 Java API for XML-Based Webservices (JAX-WS) 2.0。JAX-WS 2.0 是对 JAX-RPC 1.0 规范的扩展,是 JAX-RPC 1.1 的后续版本, JAX-RPC 2.0 标准发布不久后便被重新命名为 JAX-WS 2.0。 JAX-WS 2.0 是面向 Java 5 的开发 Web services 的最新
2017-03-05 19:51:57
811
原创 WebService(2):注解详解
1.@WebService(1)serviceName对外发布的服务名,指定 Web Service 的服务名称:wsdl:service。缺省为 Java 类的简单名称 + Service。(字符串)(2)endpointInterface服务接口全路径, 指定做SEI(Service EndPoint Interface)服务端点接口(3)name此属性的值包含XML Web Service的名
2017-03-02 20:49:57
627
原创 WebService(1): 基本概念
一.术语1.Web ServiceWeb Service也叫XML Web Service。WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。2.XMLXML扩展型可标记语言(Extensible Markup Language)。面向
2017-03-02 17:36:10
486
原创 nginx(2): 配置
一.概述 Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
2017-02-28 13:54:03
404
原创 nginx(1): linux下的安装
一.概述Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,ngin
2017-02-27 18:19:44
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人