Java 知识点补充

本文深入探讨了Java中的关键概念,包括线程与线程池的区别、super与this关键字的使用场景、volatile关键字的作用及其与static的区别、集合框架中不同迭代器的特点、Map与Set接口的具体实现细节、以及比较器和可比较接口的应用。

1. thread and thread pool

2. super and this

super(parameter list) in constructor调用父类里constructor,只有super()则指向默认的那个。

this(parameter list) in constructor调用另一个不同parameter list的constructor,只有this()则指向默认的那个

super().parentMethod()指向父类方法,一般为被override的

this().anotherMethod()指向子类另一个方法,虽然有些多余


推荐博客

http://www.cnblogs.com/zhguang/

涉及java加载机制,java gc等


3. volitile

用来和static对比。

static虽然所有的object都只能看到一个实例,但是具体运行的时候,每个thread都可能会有各自的copy,只有运行完会返回到原来static的地址,这时其他thread可以看到变量被更新。基本肯定不能thread safe。

volatile是强制各个线程不能有自己的copy,所有的操作都是对其他线程可见的,volatile变量存在于主内存,线程要读或写必须接触主内存,而不是各自的cache。即使如此依然不能保证thread safe,还是需要synchronized来保证thread safe。比起synchronized,volatile没有lock的机制。


4.Enumeration, Iterator, ListIterator

Enumeration通过对象的elements()方法返回

Iterator是新介入的几乎可以完全代替Enumeration,增加了remove(),fail-fast,如果正在遍历的过程中,别的线程更改了内容,抛出ConcurrnetModificationException。

ListIterator可以双向遍历,具有next,previous,add,remove,set方法。不能用于set。


5. Implementation of Map interface

HashMap

Hashtable

TreeMap,带有顺序的map,保证containsKey,put,get都是lgn的速度。不是thread safe。

EnumMap,专门支持enum的map,使用的时候必须指明enum类型。内部实现是数组形式,不允许null key,不是thread safe,所以性能较好。

例子:

EnumMap enumMap = new EnumMap(Season.class);

public enum Season{
    SPRING,SUMMER,FALL,WINTER
}

import java.util.*;
public class TestEnumMap{
    public static void main(String[] args){
        //创建一个EnumMap对象,该EnumMap的所有key必须是Season枚举类的枚举值
        EnumMap enumMap = new EnumMap(Season.class);
        enumMap.put(Season.SUMMER,"夏日炎炎");
        enumMap.put(Season.SPRING,"春暧花开");
        System.out.println(enumMap);
    }
}


6. Implementation of Set interface

HashSet

TreeSet,同treemap。

LinkedHashSet,使用linkedlist实现的hashset,元素按插入顺序存储,不是thread safe

EnumSet,同EnumMap,不允许null key,不是thread safe。


7. Comparable Comparator

Comparable是interface适合本身具有natural order的类implement compareTo(Object ob1)方法

Comparator是具体的类,适合实现compare(Object ob1, Obejct ob2)后,实例化再传入对象

其实没有本质上区别,只是用法不同。


8. Restfull SOAP

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值