不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-07-08 10:14  分类:Java  编辑

Java NIO 系列教程

作者:php-note.com  发布于:2019-05-19 16:58  分类:Java  编辑

slf4j+log4j 配置 备份

作者:php-note.com  发布于:2019-03-03 18:59  分类:Java  编辑
作者:php-note.com  发布于:2019-02-27 23:29  分类:Java  编辑

子类调用继承来的父类的方法,输出this,显示this是指向子类实例的指针。

但是输出this.name,却输出的是父类的成员变量,而没有使用子类中定义的同名变量(讲道理不应该就近选择子类的name变量?)

作者:php-note.com  发布于:2019-02-25 15:45  分类:Java  编辑

Maven 仓库配置(settings.xml)备份

作者:php-note.com  发布于:2019-02-23 17:30  分类:Java  编辑

Java 数组 ArrayList 常用操作:并集、交集、差集、去重、反转

作者:php-note.com  发布于:2019-02-23 14:32  分类:Java  编辑

Heap Pollution

首先来看下什么是Heap Pollution(堆污染)。

在Java编程语言中, 当一个 可变泛型参数 指向一个 无泛型参数 时,堆污染(Heap Pollution)就有可能发生。

作者:php-note.com  发布于:2019-02-19 10:05  分类:Java  编辑

Set排序

Set包括HashSet和TreeSet,HashSet是基于HashMap的,TreeSet是基于TreeMap的。

TreeMap是用红黑树实现,天然就具有排序功能,“天然就具有排序功能”是指它拥有升序、降序的迭代器。

那么HashSet怎么排序呢?我们可以将HashSet转成List,然后用List进行排序。

作者:php-note.com  发布于:2019-02-18 23:18  分类:Java  编辑

首先来看一下List接口中的sort()方法

从这个描述我们可以看到,我们可以根据具体的Comparator对List结合中的元素进行排序,如果传入的comparator是null的时候,那么集合中的元素必须实现Comparable接口实现自然排序。从上面的一段话我们知道List集合对元素排序的方法有以下两种:

  • List中的元素自己实现一个Comparable接口实现一个自然排序
  • 我们通过传入一个实现了Comparator接口实现一个排序
作者:php-note.com  发布于:2019-02-18 11:34  分类:Java  编辑

在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMapHashtableTreeMap 以及 LinkedHashMap 等。其中这四者的区别如下(简单介绍):

HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度。HashMap最多只允许一条记录的key值为Null(多条会覆盖);允许多条记录的Value为 Null。非同步的。

Hashtable:与HashMap类似,不同的是:key和value的值均不允许为null,它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。

TreeMap:能够把它保存的记录根据key排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。TreeMap不允许key的值为null。非同步的。

LinkedHashMap:保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的,在遍历的时候会比HashMap慢,key和value均允许为空,非同步的。