第四次文章:其他容器类

  • 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,要求键为枚举的值

以上就是本周的学习总结了!感谢各位小伙伴儿的支持,文章中存在的任何问题都可以直接留言的哈!比如语言描述哪里需要进一步精简,文章排版哪里可以改进,字体的大小是否舒适等等,都可以直接提出来的!谢谢大家!祝各位新年快乐!