学习目的

了解java.lang包的包含和作用

学会查看java.lang包下类和接口的底层源码实现

掌握java.lang包的常用接口和类,以及常用的方法

二、java.lang

lang包提供利用 Java 编程语言进行程序设计的基础类。

2.1 接口

接口

名称

备注

2.1.1 Iterable接口

简述

实现这个接口的子类,允许其实例对象成为 "foreach" 语句的目标

作用

常见实现类

底层实现及常用方法

public interface Iterable {
//返回一个 在一组T类型元素上 进行迭代的迭代器
Iterator iterator();
// forEach循环:接口的默认实现,从JDK8开始@since 1.8
default void forEach(Consumer super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
//
default Spliterator spliterator() {
return Spliterators.spliteratorUnknownSize(iterator(), 0);
}
}

2.1.2 Cloneable接口

简述

一个类实现了 Cloneable接口时,可以使用Object.clone()方法合法地对该类实例进行按字段复制。如果一个类在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。

作用

一种代码规定,一个类只有实现了Cloneable接口,才能调用Object类的clone()方法。

常见实现类

底层实现及常用方法

//Cloneable底层源码并没有任何可实现的方法,实现该接口只是一个规定
public interface Cloneable {
}

2.1.3 Comparable接口

简述

Comparable接口 强行对实现它的 每个类的对象进行整体排序,这种排序被称为类的自然排序。

作用

实现此接口的 对象列表(和数组)可以通过 Collections.sort() 和 Arrays.sort() 进行自动排序。

实现此接口的对象可以用作 有序映射中的键 或 有序集合中的接口 中的元素,无需指定比较器中的接口

常见实现类

底层实现及常用方法

/*比较此对象 与 指定对象的顺序。

若该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数

*/
public interface Comparable {
public int compareTo(T o);
}

2.1.4 Runnable接口

简述

Runnable 接口应该由那些 打算通过某一线程 执行其实例的类来实现,该实现类必须定义一个 run() 的无参数方法。

作用

设计该接口的目的:希望在活动时 为执行代码的对象提供一个公共协议。

常见实现类

子类:Thread线程类,TimerTask

底层实现及常用方法

@FunctionalInterface
public interface Runnable {
//使用实现接口Runnable的对象 创建一个线程时,启动该线程 将导致在独立执行的线程中调用对象的 run 方法
public abstract void run();
}

2.1.5 Thread接口

简述

当线程因未捕获的异常而突然终止时,调用处理程序的接口。

作用

当某一线程因未捕获的异常而即将终止时,Java 虚拟机将使用 Thread.getUncaughtExceptionHandler()方法查询该线程 以获得其 UncaughtExceptionHandle的线程,并调用处理程序的 uncaughtException() 方法,将线程和异常作为参数传递。

常见实现类

底层实现及常用方法

public interface Thread {
/*当给定线程 因 给定的未捕获异常 而终止时,调用该方法
Java 虚拟机将忽略该方法抛出的任何异常
*/
void uncaughtException(Thread t,Throwable e);
}

2.1.6 Readable接口

简述

Readable接口是一个字符源,实现该接口的类可以 以字符形式 对文件进行读取。

作用

常见实现类

子接口

子类:BufferedReader、Reader、FileReader、InputStreamReader

底层实现及常用方法

//该方法在底层书写时自带异常抛出,调用时必须处理
public interface Readable {
//试图将 字符 读入指定的 字符缓冲区,cb - 将要读入字符的缓冲区
public int read(java.nio.CharBuffer cb) throws IOException;
}
2.1.7 Appendable

简述

一个类的实例对象想添加 cha序列和值,或者某个类的实例打算接收取自 Formatter的格式化输出,那么该类必须实现Appendable接口。

作用

常见实现类

子类:BufferedWriter、FileWriter、OutputStreamWriter、PrintStream、StringBuffer、StringBuilder、StringWriter、Writer

底层实现及常用方法

public interface Appendable {
//向此 Appendable 添加指定的字符序列,若csq为null,则添加四个字符 "null"
Appendable append(CharSequence csq) throws IOException;
//向此 Appendable 添加指定字符序列的子序列,start 子序列中起始索引,end子序列最后索引
Appendable append(CharSequence csq, int start, int end) throws IOException;
//向此 Appendable 添加指定字符
Appendable append(char c) throws IOException;
}

2.2 常用类

类名

作用

备注

2.2.1 包装类

简述

作用

常见父类或接口

底层实现及常用方法

2.2.2 Class类

简述

作用

常见父类或接口

底层实现及常用方法

2.2.3 System系统类

简述

作用

常见父类或接口

底层实现及常用方法

2.2.4

简述

作用

常见父类或接口

底层实现及常用方法

2.2.5

简述

作用

常见父类或接口

底层实现及常用方法

2.2.6

简述

作用

常见父类或接口

底层实现及常用方法

2.2.7

简述

作用

常见父类或接口

底层实现及常用方法

2.2.8

简述

作用

常见父类或接口

底层实现及常用方法

2.2.9

简述

作用

常见父类或接口

底层实现及常用方法