Servlet的生命周期,以及数组类型的比较

首先是调用init()初始化,然后调用service()方法来处理客户端请求,之后调用destory()方法终止,最后servlet由jvm的垃圾回收器进行回收。

 

 

 

hashmap与Linkedhashmap

 

hashmap可以key与value 都为空,而linkedhashmap不可以。

hashmap输出是无序的,Linkedhashmap是有序的;

map如果是比较复杂并且要求效率高,使用Linkedhashmap ,若是多线程可能会造成不同步,可以使用Collections.synchronizedMap进行包装

 Map<String String> map = Collections.synchronizedMap(new LinkedHashMap(<String String));

 

Collections.synchronizedMap()与ConcurrentHashMap两者都提供了线程同步的功能

1.Collections.synchronizedMap()和Hashtable一样,实现上在调用map所有方法时,都对整个map进行同步,而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁。所以,只要要有一个线程访问map,其他线程就无法进入map,而如果一个线程在访问ConcurrentHashMap某个桶时,其他线程,仍然可以对map执行某些操作.

 

hashmap与currenthashmap

在hashMap的基础上,ConcurrentHashMap将数据分为多个segment,默认16个(concurrency level),然后每次操作对一个segment加锁,避免多线程锁的几率,提高并发效率。

引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的HashTable,根据key.hashCode()来决定把key放到哪个HashTable中。

 

 

 

collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口。它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它对集合中的对象进行索引,Queue的工作原理是FCFS算法(First Come, First Serve)。

 

posted @ 2018-05-28 09:51  杨紫的粉丝  阅读(112)  评论(0编辑  收藏  举报