[菜鸟]简单阅读java.lang 与java.util

在看efftive java的时候 ,有一条 ,每个程序员都应该 了解java的包,至少了解java.lang 与java.util包,

但一看自己 包里有什么,什么结构 ,完全不知,所以先简单的了解一下 这两个包,有什么东西。关于最佳实践则 

还没有需要努力。先了解 才能深入嘛。

 好了先看一下 util包中的内容

分为 

Interface

Class

Enum

Exception

Error

[菜鸟]简单阅读java.lang 与java.util

[菜鸟]简单阅读java.lang 与java.util

[菜鸟]简单阅读java.lang 与java.util

[菜鸟]简单阅读java.lang 与java.util

[菜鸟]简单阅读java.lang 与java.util

 

 

 

好了,异常 我就不截图的了,可以看到 util包中的内容还是挺多的,但是却又是最有价值的的 因为从包名 util  都知道了

而这么多一天简单看完也有些困难,所以,先列出 今晚所看的一内容  interface 的前几个

 

interface

    1.Collection   集合接口,标识可以时一类元素的集合,它定义了集合的基本操作,以及集合之间的可以互相转化

    2.Comparator  比较器 ,按照 efftice java 提到的  这个类 是 策略模式的设计,对一些对象的集合施加了一个整体排序 。 可以将比较器传递给排序方法(如Collections.sortArrays.sort )

    3.Deque  双端队列  即 两头都可以插入,和取出  ,他可以模拟 队列,或者栈  ,只要限制它的一些操作,这里也提供了存取的方式,因为它时 双端的   就会存在 长度的说明,所以会出现 内容已满。此接口 也提供了 两头操作的函数

   4.Enumeration<E>   菜鸟 如此说

    Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。

 

      这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。尽管如此,它还是使用在  诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用。

 

  5 Formattable  跳过学习 配合格式化

   6 Iterator<E>   迭代器  ,可以支持 遍历集合并在遍历时操作集合的方法。例如hasNext(); next();以及 java8 的一个新函数

forEachRemaining(Consumer<? super E> action)

此函数  还需要在了解  未明白

   7 List  有序集合,他可以允许出现重复的对象 ,因为 它是根据 索引 去区分元素的,

   8. ListIterator    有了通用的迭代器接口 ,但是却不能很好的满足 List这种有序的集合 遍历的需求 ,所以由ListIterator,因为是有序的 所以可以 操作迭代器 正向遍历 与 逆向遍历,其实 就是 自己去移指针

  9.Map<K,V>  地图  (api 说明)

K - 由此地图维护的键的类型

V - 映射值的类型

将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。

注意:如果使用可变对象作为地图键,必须非常小心。 如果对象的值以影响equals比较的方式更改,而对象是地图中的键,则不会指定地图的行为。 这个禁令的一个特殊情况是,地图不允许将自己包含在内。 虽然地图可以将其本身作为一个值,但建议您非常小心: equals和hashCode方法在这样的地图上已经不太明确。

所有通用映射实现类应提供两个“标准”构造函数:一个创建空映射的void(无参数)构造函数,以及一个具有类型为Map的单个参数的构造函数 ,它创建一个具有相同键值的新映射映射作为参数。 实际上,后一个构造函数允许用户复制任何地图,产生所需类的等效地图。 没有办法强制执行此建议(因为接口不能包含构造函数),而JDK中的所有通用映射实现都符合要求。

包含在该界面中的“破坏性”的方法,即,修改其操作地图的方法,被指定抛出UnsupportedOperationException如果此映射不支持该操作。

 地图就像 一个是存放键值,一个是存在实际值 ,api中 提供的 也是对其 进行操作,除此之外,还有 可以自定义 计算映射规则

 

10。 Map.Entry<K,V>  一看就知道 时Map中的子接口  就是为了存放键值的  Entry(入口的意思)

KgetKey()

返回与此条目相对应的键。

VgetValue()

返回与此条目相对应的值。

inthashCode()

返回此映射条目的哈希码值。

VsetValue(V value)

用指定的值替换与该条目相对应的值(可选操作)。

 

11.NavigableMap 可操作的Map  可以获取到 给定的数 大于它或者等于它  的最相关的键值,或者值,也可以筛选出 这个Map的一部分。操作比较多

12 Observcer  观察者   ,与类 Observable(被观察者,即观察对象)配合 使用 当Observable 变化的时候 他对通知 Observcer去更新。

13.PrimitiveIterator<T,T_CONS> 原生迭代器 内涵 三个int  double long 的迭代器  咱不了解 这个接口

14 Queue<E>  设计由于保存 之前值的集合 ,其实就是队列  有两种操作方式  出队与入队

boolean add(E e)

将指定的元素插入到此队列中,如果可以立即执行此操作,而不会违反容量限制, true在成功后返回 IllegalStateException如果当前没有可用空间,则抛出IllegalStateException。

E element()

检索,但不删除,这个队列的头。

boolean offer(E e)

如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。

E peek()

检索但不删除此队列的头,如果此队列为空,则返回 null 。

E poll()

检索并删除此队列的头,如果此队列为空,则返回 null 。

E remove()

检索并删除此队列的头。

 

 

今天先到这里,太晚了,先休息