java.lang 中包括了基本的功能,无需 import

1 Object

  • 方法 getClass() 返回一个 class 对象,该对象的 getName() 方法返回一个表示类名的 String

    1. String name = key.getClass().getName();
  • instanceof 运算符,判断对象是否属于某类:

    1. boolean check1 = "Texas" instanceof String; //true
    2. Object obiwan = new Object();
    3. boolean check2 = obiwan instanceof String; //false
  • boolean equals(Object a) 当变量引用同一个对象时返回 true

  • int hashCode(); String toString();

2 Class

与数组类相关的两个方法:cl.isArray()用来测试一个Class实例是不是数组,cl.getComponentType()用来获得数组的成员的类型。

  • Method getMethod( String name )
  • Method getMethod( String name, Class... parameterTypes ) 除了方法的名称外,还需要提供方法的参数类型,以辨别重载的方法。
  • Constructor getConstructor( Class... parameterTypes ) 返回指定的构造函数。

3 Math

类变量,类方法:

  • Math.PI
  • Math.max(int,int)
  • Math.random() 返回一个 01 之间的随机浮点数。

1.4 Integer

类方法:

  • int parseInt(String str) 把字符串转为 int 型。
  • Integer valueOf(int num) 把一个基本类型转换为 Integer 对象。
  • int hashCode(int value) 返回给定值的散列码,其它基本类型的包装器也有类似方法。

实例方法:

  • intValue() 返回该对象的 int 型值。

1.5 System

System 类位于 java.lang 包中。System.outSytem 类的类变量,out 实际上是 PrintStream 类的一个实例,而 PrintStream 类的对象有一个 println() 方法。PrintStream 类位于 java.io 包中。

类方法:

  • Console console() 如果可以进行交互,就返回一个 Console 对象。
  • long currentTimeMillis(),返回一个 long,表示从 1970-01-01 00:00 开始,到现在经过的微秒数。
  • void arraycopy( Object src, int srcPos, Object dest, int destPos, int length)src数组的srcPos位置开始,拷贝lengh个元素到dest数组的destPos位置。

6 Console

Console 类在 java.io 包中。

实例方法:

  • readLine("", args...) 显示一个提示符 (和 printf 一样可以格式化输出) ,并从控制台读取一行输入,返回一个 String
  • readPassword("", args...)readLine 用法类似,但是返回一个 char[] 数组。

7 Throwable

0.1 Comparable<T> 函数式接口

0.2 Comparator<T> 函数式接口

这个接口用来自定义比较大小规则。必须先定义一个实现了 Comparator 接口的类,再声明一个实例才能进行比较。

  1. public interface Comparator<T>
  2. {
  3. int compare( T first, T secend );
  4. }
  1. //定义一个实现 Comparator<String> 的类
  2. class LengthComparator implements Comparator<String>
  3. {
  4. public int compare( String first, String second )
  5. {
  6. return first.length() - second.length();
  7. }
  8. }
  9. //建立一个实例,把这个实例传给 sort 作为第二个参数
  10. var cmp = new LengthComparator();
  11. Arrays.sort( aArray, cmp );

0.3 Cloneable 接口

Cloneable是Java提供的少数 标记接口 之一,又称为 记号接口。标记接口不包含任何方法,接口定义是空的;它唯一的作用就是可以使用 instanceof 判断一个对象是否 implements了这个接口: if ( obj instanceof Cloneable ) . . .

只有实现了Cloneable接口,才能调用的Clone方法。否则会抛 CloneNotSupportedException 异常
Clone 方法是在 Object 类中定义的,并且被声明为 protected native
按照惯例,实现Cloneable接口的类要覆盖 Object.clone 方法,并将它声明为 public ,这样才能在另一个类中调用一个类的 clone 方法。(protected修饰符不允许一个类调用另一个类的 clone 方法)
Object.clone 实行的是浅拷贝