
Runnable @FunctionalInterfacepublic interface Runnable Runnable 接口应该由其实例打算由线程执行的任何类实现。 该类必须定义一个没有参数的方法,称为run。 该接口旨在为希望在活动时执行代码的对象提供通用协议。 例如,Runnable 是由类 Thread 实现的。 处于活动状态仅意味着线程已启动且尚未停止。 此外,Runnable 提供了使类处于活动状态而不是子类化 Thread 的方法。 实现 Runnable 的类可以通过实例化 Thread 实例并将其自身作为目标传入而无需子类化 Thread 即可运行。 在大多数情况下,如果您只打算覆盖 run() 方法而不打算覆盖其他 Thread 方法,则应该使用 Runnable 接口。 这很重要,因为除非程序员打算修改或增强类的基本行为,否则不应将类子类化。 方法总结 修饰符和类型 方法 描述 void run() 当使用实现接口 Runnable 的对象创建线程时,启动线程会导致在该单独执行的线程中调用对象的 run 方法。 方法详情 run void run() 当使用实现接口 Runnable 的对象创建线程时,启动线程会导致在该单独执行的线程中调用对象的 run 方法。 方法 run 的一般约定是它可以采取任何行动。

Readable public interface Readable Readable 是字符的来源。 来自 Readable 的字符可通过 CharBuffer 提供给 read 方法的调用者。 方法总结 修饰符和类型 方法 描述 int read(CharBuffer cb) 尝试将字符读入指定的字符缓冲区。 方法详情 read int read(CharBuffer cb) throws IOException 尝试将字符读入指定的字符缓冲区。 缓冲区按原样用作字符的存储库:所做的唯一更改是 put 操作的结果。 不执行缓冲区的翻转或倒带。 参数: 参数名称 参数描述 cb 将字符读入的缓冲区 返回: 添加到缓冲区的 char 值的数量,如果此字符源位于其末尾,则为 -1 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误 NullPointerException 如果 cb 为空 ReadOnlyBufferException 如果 cb 是只读缓冲区

Iterable public interface Iterable<T> 实现此接口允许对象成为“for-each 循环”语句的目标。 请参阅 For-each 循环 方法总结 修饰符和类型 方法 描述 default void forEach(Consumer<? super T> action) 对 Iterable 的每个元素执行给定的操作,直到处理完所有元素或该操作引发异常。 IteratorT iterator() 返回 T 类型元素的迭代器。 default SpliteratorT spliterator() 在此 Iterable 描述的元素上创建 Spliterator。 方法详情 iterator IteratorT iterator() 返回 T 类型元素的迭代器。 返回: 一个迭代器。 forEach default void forEach(Consumer<? super T> action) 对 Iterable 的每个元素执行给定的操作,直到处理完所有元素或该操作引发异常。 除非实现类另有规定,否则按迭代顺序执行操作(如果指定了迭代顺序)。 操作引发的异常将转发给调用者。 参数: 参数名称 参数描述 action 为每个元素执行的操作 Throws: Throw名称 Throw描述 NullPointerException 如果指定的操作为空 spliterator default SpliteratorT spliterator() 在此 Iterable 描述的元素上创建 Spliterator。 返回: 在此 Iterable 描述的元素上的 Spliterator。

Comparable public interface Comparable<T> 该接口对实现它的每个类的对象进行了总排序。这种排序称为类的自然排序,类的 compareTo 方法称为其自然比较方法。 实现此接口的对象列表(和数组)可以通过 Collections#sort(List)(和 [Arrays#sort(Object]))自动排序。实现此接口的对象可以用作 SortedMap 中的键或用作 SortedSet 中的元素,而无需指定 Comparator。 当且仅当 e1.compareTo(e2) == 0 对于类 C 的每个 e1 和 e2 具有与 e1.equals(e2) 相同的布尔值时,类 C 的自然排序被称为与 equals 一致。注意null 不是任何类的实例,即使 e.equals(null) 返回 false,e.compareTo(null) 也应该抛出 NullPointerException。 强烈建议(尽管不是必需的)自然排序与 equals 一致。之所以如此,是因为没有显式比较器的排序集(和排序映射)在与自然顺序与等于不一致的元素(或键)一起使用时表现“奇怪”。特别是,这样的排序集合(或排序映射)违反了集合(或映射)的一般合同,该合同是根据 equals 方法定义的。 例如,如果添加两个键 a 和 b 使得 (!a.equals(b) && a.compareTo(b) == 0) 到不使用显式比较器的排序集,则第二个添加操作返回 false (并且排序集的大小不会增加)因为从排序集的角度来看 a 和 b 是等价的。 几乎所有实现 Comparable 的 Java 核心类都具有与 equals 一致的自然顺序。一个例外是 java.math.BigDecimal,它的自然排序等同于具有相同值和不同精度的 BigDecimal 对象(例如 4.0 和 4.00)。 对于数学倾向,定义给定类 C 的自然排序的关系是: {(x, y) such that x.compareTo(y) <= 0}. 这个总订单的商是: {(x, y) such that x.compareTo(y) == 0}. 从 compareTo 的约定可以直接得出,商是 C 上的等价关系,自然排序是 C 上的全序。当我们说类的自然排序与 equals 一致时,我们的意思是 自然排序是类的 Object#equals(Object) 方法定义的等价关系: {(x, y) such that x.equals(y)}. 此接口是 Java 集合框架的成员。 方法总结 修饰符和类型 方法 描述 int compareTo(T o) 将此对象与指定对象进行比较以进行排序。 方法详情 compareTo...

Cloneable public interface Cloneable 一个类实现了 Cloneable 接口,以向 Object.clone() 方法指示该方法可以合法地对该类的实例进行逐个字段的复制。 在未实现 Cloneable 接口的实例上调用 Object 的 clone 方法会导致抛出异常 CloneNotSupportedException。 按照惯例,实现此接口的类应使用公共方法覆盖 Object.clone(受保护的)。 有关覆盖此方法的详细信息,请参阅 Object.clone()。 请注意,此接口不包含 clone 方法。 因此,不可能仅凭借实现该接口的事实来克隆对象。 即使以反射方式调用 clone 方法,也不能保证它会成功。

CharSequence public interface CharSequence CharSequence 是一个可读的 char 值序列。 此接口提供对许多不同类型的字符序列的统一只读访问。 char 值表示基本多语言平面 (BMP) 中的字符或代理项。 这个接口没有细化 equals 和 hashCode 方法的一般契约。 因此,比较实现 CharSequence 的两个对象的结果通常是未定义的。 每个对象都可以由不同的类实现,并且不能保证每个类都能够测试其实例与其他类的实例是否相等。 因此,将任意 CharSequence 实例用作集合中的元素或映射中的键是不合适的。 方法总结 修饰符和类型 方法 描述 char charAt(int index) 返回指定索引处的 char 值。 default IntStream chars() 返回一个 int 流,对该序列中的 char 值进行零扩展。 default IntStream codePoints() 从该序列返回代码点值流。 int length() 返回此字符序列的长度。 CharSequence subSequence(int start, int end) 返回作为此序列子序列的 CharSequence。 String toString() 以与此序列相同的顺序返回包含此序列中字符的字符串。 方法详情 length int length() 返回此字符序列的长度。 长度是序列中 16 位字符的数量。 返回: 此序列中的字符数 charAt char charAt(int index) 返回指定索引处的 char 值。 索引范围从零到 length() – 1。序列的第一个 char 值在索引 0 处,下一个在索引 1 处,依此类推,与数组索引一样。 如果索引指定的 char 值是代理项,则返回代理项值。 参数: 参数名称 参数描述 index 要返回的 char 值的索引 返回: 指定的字符值 Throws: Throw名称 Throw描述 IndexOutOfBoundsException 如果 index 参数为负数或不小于 length() subSequence CharSequence subSequence(int start, int end) 返回作为此序列子序列的 CharSequence。 子序列以指定索引处的 char 值开始,以索引 end – 1 处的 char 值结束。返回序列的长度(以字符为单位)为 end – start,因此如果 start == end 则返回空序列 . 参数: 参数名称 参数描述 start 起始索引,包括 end...

AutoCloseable public interface AutoCloseable 一个在关闭之前可能持有资源(例如文件或套接字句柄)的对象。 AutoCloseable 对象的 close() 方法在退出资源规范标头中已为其声明对象的 try-with-resources 块时自动调用。 这种构造确保了及时释放,避免了资源耗尽异常和错误,否则可能会发生。 方法总结 修饰符和类型 方法 描述 void close() 关闭此资源,放弃任何基础资源。 方法详情 close void close() throws Exception 关闭此资源,放弃任何基础资源。此方法在由 try-with-resources 语句管理的对象上自动调用。 虽然此接口方法被声明为抛出异常,但强烈建议实现者声明 close 方法的具体实现以抛出更具体的异常,或者如果关闭操作不会失败,则根本不抛出异常。 关闭操作可能失败的情况需要实施者仔细注意。强烈建议在抛出异常之前放弃底层资源并在内部将资源标记为已关闭。 close 方法不太可能被多次调用,因此可以确保及时释放资源。此外,它减少了资源包装或被另一个资源包装时可能出现的问题。 强烈建议此接口的实现者不要让 close 方法抛出 InterruptedException。此异常与线程的中断状态交互,如果 InterruptedException 为 Throwable#addSuppressed,则可能发生运行时错误行为。更一般地说,如果抑制异常会导致问题,则 AutoCloseable.close 方法不应抛出它。 请注意,与 Closeable 的 close 方法不同,此 close 方法不需要是幂等的。换句话说,多次调用此 close 方法可能会产生一些可见的副作用,这与 Closeable.close 不同,如果多次调用则要求无效。但是,强烈建议此接口的实现者使他们的 close 方法具有幂等性。 Throws: Throw名称 Throw描述 Exception 如果无法关闭此资源

Appendable public interface Appendable 可以附加字符序列和值的对象。 Appendable 接口必须由其实例旨在从 Formatter 接收格式化输出的任何类实现。 要附加的字符应该是有效的 Unicode 字符,如 Unicode 字符表示中所述。 请注意,补充字符可能由多个 16 位 char 值组成。 附加组件对于多线程访问不一定是安全的。 线程安全是扩展和实现此接口的类的责任。 由于该接口可能由具有不同错误处理风格的现有类实现,因此无法保证错误将传播到调用者。 方法总结 修饰符和类型 方法 描述 Appendable append(char c) 将指定的字符附加到此 Appendable。 Appendable append(CharSequence csq) 将指定的字符序列附加到此 Appendable。 Appendable append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此 Appendable。 方法详情 append Appendable append(CharSequence csq) throws IOException 将指定的字符序列附加到此 Appendable。 根据哪个类实现了字符序列 csq,可能不会附加整个序列。 例如,如果 csq 是一个 CharBuffer,那么要追加的子序列由缓冲区的位置和限制定义。 参数: 参数名称 参数描述 csq 要追加的字符序列。 如果 csq 为 null,则将四个字符“null”附加到此 Appendable。 返回: 对本附录的引用 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误 append Appendable append(CharSequence csq, int start, int end) throws IOException 将指定字符序列的子序列附加到此 Appendable。 当 csq 不为空时,以 out.append(csq, start, end) 形式调用此方法的行为与调用完全相同 out.append(csq.subSequence(start, end)) 参数: 参数名称 参数描述 csq 从中追加子序列的字符序列。 如果 csq 为 null,则将附加字符,就好像 csq 包含四个字符“null”。 start 子序列中第一个字符的索引 end 子序列中最后一个字符之后的字符的索引 返回: 对本附录的引用 Throws: Throw名称 Throw描述 IndexOutOfBoundsException 如果 start 或 end 为负数,则 start 大于 end,或者 end 大于 csq.length() IOException 如果发生 I/O 错误 append Appendable append(char c) throws IOException 将指定的字符附加到此 Appendable。 参数: 参数名称 参数描述 c 要附加的字符 返回: 对本附录的引用 Throws: Throw名称 Throw描述 IOException...
