Java.lang包的接口解读
Java.lang包中提供了八个接口:
1、Appendable
能够被追加 char 序列和值的对象。如果某个类的实例打算接收来自 Formatter的格式化输出,那么该类必须实现 Appendable 接口。如StringBuffer就实现了此接口。此接口定义了三个append方法:
Appendable append(CharSequence csq,int start,int end)throws IOException
Appendable append(CharSequence csq,int start,int end)throws IOException
Appendable append(char c)throws IOException
猜猜它们要实现什么功能?
2、CharSequence
是 char
值的一个可读序列。此接口对许多不同种类的 char
序列提供统一的只读访问。CharBuffer, String, StringBuffer, StringBuilder都实现此接口。
此接口定义的方法有:
char |
charAt(int index) 返回指定索引的 char 值。 |
int |
length() 返回此字符序列的长度。 |
|
subSequence(int start, int end) 返回一个新的 CharSequence,它是此序列的子序列。 |
|
toString()返回一个包含此序列中字符的字符串,该字符串与此序列的顺序相同。 |
3、Cloneable
实现了 Cloneable
接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。 如果在没有实现 Cloneable
接口的实例上调用 Object 的 clone 方法,则会导致抛出CloneNotSupportedException
异常。按照惯例,实现此接口的类应该使用公共方法重写Object.clone(它是受保护的)。
此接口不 包含 clone 方法。
4、Comparable<T>
此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。
此接口定义的方法了一个方法:
int compareTo(T o)
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回-1、0、1。
5、Iterable<T>
实现这个接口允许对象成为 "foreach" 语句的目标。
此接口定义的方法了一个方法:
- 返回一个在一组 T 类型的元素上进行迭代的迭代器。
- 返回:
- 一个迭代器。
6、Readable
Readable 是一个字符源
此接口定义的方法了一个方法:
int read(CharBuffer cb)
throws IOException
- 试图将字符读入指定的字符缓冲区。缓冲区可用作类似以下字符的存储库:所做的惟一改变是 put 操作的结果。不对缓冲区进行反转或重绕操作。
- 参数:
cb
- 将要读入字符的缓冲区- 返回:
- 添加到缓冲区的 char 值的数量,如果此字符源位于缓冲区末端,则返回 -1
7、
Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为
run
的无参数方法。此接口定义的方法了一个方法:void run()
- 使用实现接口
Runnable
的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的run
方法。方法
run
的常规协定是,它可能执行任何所需的操作。8、Thread.UncaughtExceptionHandler
当 Thread 因未捕获的异常而突然终止时,调用处理程序的接口。
此接口定义的方法了一个方法:
void uncaughtException(Thread t,Throwable e)
- 当给定线程因给定的未捕获异常而终止时,调用该方法。
Java 虚拟机将忽略该方法抛出的任何异常。