第四次文章:其他容器类
- 2019 年 10 月 8 日
- 筆記
各位小伙伴儿大家好,临近年关,先给大家拜个早年,祝大家新年快乐!今天先分享一碗鸡汤:代码学习绝对不是一条坦途,人生奋斗的向上之路也异常曲折,但没有关系,当你回望之时,我依然在此为你守候。
言归正传,进入本周总结:
一、一个古老的接口Enumeration
jdk1.5之前的版本常用,jdk1.5以后,使用的是迭代器Iterator进行代替。以后在维护系统时,很多代码是jdk1.5之前的代码,所以了解这个接口主要是为了熟悉此接口,避免以后的运维过程中不认识此接口。
主要是两个方法
1、判断hasMoreElements(与Iterator中的hasNext相同)
2、获取nextElement()(与Iterator中的Next相同)
使用方法如下:
import java.util.Enumeration; import java.util.Vector; public class Demo01 { public static void main(String[] args) { Vector<String> v = new Vector<String>(); v.add("www.baidu.com"); v.add("www.google.com"); v.add("www.sina.com"); Enumeration<String> ele =v.elements(); while(ele.hasMoreElements()) { System.out.println(ele.nextElement()); } } }
二、Hashtable与HashMap的区别(面试题)
1、Hashtable线程安全,同步,效率相对低下
HashMap线程不安全,非同步,效率相对较高
2、父类:
Hashtable继承的父类是Dictionary
HashMap继承的父类是AbstractMap
3、null:
Hashtable 键与值不能为null
HashMap键最多一个null,值可多个null
三、Properties类:
Hashtable中主要使用一个子类Properities(主要用于资源配置文件的读写)
根据类的根路径进行读取资源配置文件的方法:
方法1:类.class.getResourceAsStream("/")
方法2:Thread.currentThread().getContextClassLoader().getResourceAsStream(“”)
四、引用类型(面试题)
1.强引用StrongReference:引用指向对象,gc(Garbage Collection)运行时不回收
2.软引用SoftReference:gc运行时可能回收(当jvm的内存不够的时候会被回收)
3.弱引用WeakenReference:gc运行时立即回收
4.强引用PhantomReference:类似于无引用,主要跟踪对象被回收的状态,不能单独使用,必须与引用队列联合使用
五、三个Map接口实现类
1.WeakHashMap:键为弱引用
2.IdentityHashMap:键比较地址去重
3.EnumMap:枚举map,要求键为枚举的值
