zoukankan      html  css  js  c++  java
  • 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)。

  • 相关阅读:
    高亮表格行或列
    点击表格获取表格行或列索引
    文本框仅可接收decimal
    实现表格自动计算
    实现一个超简单的开关
    Nginx反向代理中proxy_set_header参数说明
    两个目录中,删除其中一个目录中同名文件的做法
    监控某个目录是否被更改
    centos下升级git版本的操作记录
    linux下core file size设置笔记
  • 原文地址:https://www.cnblogs.com/lianghaode/p/9098618.html
Copyright © 2011-2022 走看看