TreeSet介绍 与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的,我们知道TreeMap是一个有序的二叉树,那么TreeSet肯定也是一个有序的,它的作用是提供Set集合。 本文源码均为JDK1.8 TreeSet源码分析 定义 TreeSet继承了AbstractSet,实现NavigableSet、Cloneable、Serializable接口,其中AbstractSet提供set接口的骨干实现,NavigableSet继承SortedSet,具有了为给定搜索目标…

2018年05月09日 0条评论 3点热度 0人点赞 阅读全文

HashSet介绍 对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素,若对Hashmap很熟悉,那么HashSet就很容易了 本文源码均为JDK1.8 HashSet源码解析 定义 HashSet继承至AbstractSet,实现Set、Cloneable、Cloneable接口。其中Set接口是一种不包含重复元素的Collection,维持自己内部的排序。 [crayon-5eff2fd9c8201955588933/] 属性 [crayon-5eff2fd9c820942…

2018年05月09日 0条评论 1点热度 0人点赞 阅读全文

HashTable介绍 先来看看HashMap和HashTable有哪些区别 1. 关于null,HashMap运行key和value都可以为null,而HashTable不允许key或者value为null的键值对 当HashMap遇到null为key时,回调用putForNullKey方法来进行处理,当HashTable遇到null时,直接抛出异常 2. 关于线程安全,Hashmap不是线程安全的,HashTable则是线程安全的,它的需要操作都是由synchronized修饰 3. Hashtable与Has…

2018年05月07日 0条评论 1点热度 0人点赞 阅读全文

TreeMap概述 TreeMap集合是基于红黑树(Red-Black tree,本片暂不介绍红黑树,后面单独写一篇 )的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。也就是说TreeMap可以对添加进来的元素进行排序,可以按照默认的排序方式,也可以自己指定排序方式。 本文若未特殊说明,源码均为JDk8. TreeMap源码解析 TreeMap定义 TreeMap的定义如下: [cr…

2018年05月05日 0条评论 1点热度 0人点赞 阅读全文

HashMap概述 HashMap是我们使用最多的的Collection,它是基于哈希表的Map接口的实现,以key-value的形式存储,系统会根据hash算法来计算key-value的存储位置。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。 HashMap并不是一个线程安全的类,如果需要进行多线程的访问,可以考虑一下方式: 1. Map map = Collections.synchronizedMap(new HashMap(...)) 2. 使用HashTable 3. 使用…

2018年05月03日 0条评论 5点热度 0人点赞 阅读全文

LinkedList概述 LinkedList和ArrayList一样都是实现了List接口,只是ArrayList是可变数组的实现,LinkedList是链表实现。基于链表实现方式使得LinkedList在插入和删除时更优于ArrayList,而随机访问ArrayList更有优势。 LinkedList除了实现List接口以外,还实现了Deque接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。 Linkedlist同样也是线程不安全的,想要让线程变的安全,可以使用如下方式: [cra…

2018年05月02日 0条评论 1点热度 0人点赞 阅读全文

Centos7使用systemd代替之前的systemv的启动脚本,可以说更简单。不再需要编写一长段脚本 复制以下内容到/usr/lib/systemd/system/nginx.service [crayon-5eff2fd9cafca014118494/] 然后就可使用systemctl start|stop|reload|restart nginx 进行启动重启等操作。 systemctl enable nginx即可实现开机启动。 systemctl disable nginx取消开机启动。

2018年04月28日 0条评论 1点热度 0人点赞 阅读全文

本文若无特殊说明,源码均为JDK1.8 list中常用的主要有ArrayList和Linkedlist,其中Vector,Stack并不常用。下图为List的框架图: 根据上图,逐个来看其各个类、接口: Collection:是根接口,其源码没有任何的实现,都是由其子类去实现。 AbstractCollection:实现了Collection接口,要实现一个不可修改的collection,只需扩展此类,并提供 iterator和size 方法的实现。但要实现可修改的collection,就必须另外重写此类的 add…

2018年04月28日 0条评论 1点热度 0人点赞 阅读全文

话说写Markdown最麻烦的图片的插入,虽然插入的图片的方式可以采用免费的CDN,鄙人并不是很喜欢这种方式,下文介绍的是如何插入本地图片。 修改站点配置文件 全局 _config.yml 中打开 post_asset_folder:true 选项,默认false 使用 在Hexo的_post文件中建立和文章标题一样名字的文件夹,当然也可以用hexo的命令去创建文章,会同时生成md文件和文件夹,我比较喜欢用Markdown工具直接创建md文件。 [crayon-5eff2fd9cb90a178794306/] 然后…

2018年04月28日 0条评论 2点热度 0人点赞 阅读全文

最近配合运维搭建Docker环境,需要把原来的包部署在Docker环境,因运维在Docker环境部署Tomcat是8.5的版本,在启动项目的时候报如下错误: [crayon-5eff2fd9cbbb3314495826/] An invalid domain [.xx.com] was specified for this cookie 这个无效的域名是什么鬼,代码中确实是有这样的一个域名, 但是测试环境和生产环境重来就没有报这个错误 后面google才知道,原来Docker环境使用的是Tomcat8.5版本,测试…

2018年03月08日 0条评论 2点热度 0人点赞 阅读全文
145678