系统类库

一、系统类库

1、系统类库解释

JRE中已经编写好的类和接口的统称,我们叫Java的系统类库。

我们直接使用这些类和接口即可。

2、API文档

Application Programming Interface,应用程序接口。

类和接口的解释说明文档,或者叫使用手册。

下载:

jdk api 1.8_google.CHM(google翻译)

jdk api 1.8_baidu.CHM (百度翻译)

3、API文档使用

(1)主页面

 

左上角:包

左下角:类

右边:解释说明

(2)使用

以String类为例:

第一步,选择包名:java.lang

第二步,选择类:String

第三步,查看右边String类的详细信息

 

4、类的详细信息

以String类为例:

(1)类的声明

  • public final class String
    extends Object
    implements Serializable, Comparable<String>, CharSequence

(2)类的功能描述

  • String类代表字符串。Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

    字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。 例如:

    String str = "abc";

    相当于:

    char data[] = {'a', 'b', 'c'};
    String str = new String(data);

(3)属性概要介绍

    • Field Summary

      Modifier and Type Field and Description
      static Comparator<String> CASE_INSENSITIVE_ORDER 一个比较器,按 compareToIgnoreCase订购 String对象。

(4)构造方法概要描述

    • 构造方法摘要

      Constructor and Description
      String() 初始化新创建的 String对象,使其表示空字符序列。
      String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的 String
      String(byte[] bytes, Charset charset) 构造一个新的String由指定用指定的字节的数组解码charset
      String(byte[] ascii, int hibyte) 已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方法是通过String构造函数获取Charset ,字符集名称,或者使用平台的默认字符集。
      String(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的字节子阵列来构造新的 String
      String(byte[] bytes, int offset, int length, Charset charset) 构造一个新的String通过使用指定的指定字节子阵列解码charset
      String(byte[] ascii, int hibyte, int offset, int count) 已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方式是通过String构造函数获取Charset ,字符集名称,或使用平台的默认字符集。
      String(byte[] bytes, int offset, int length, String charsetName) 构造一个新的 String通过使用指定的字符集解码指定的字节子阵列。
      String(byte[] bytes, String charsetName) 构造一个新的String由指定用指定的字节的数组解码charset
      String(char[] value) 分配一个新的 String ,以便它表示当前包含在字符数组参数中的字符序列。
      String(char[] value, int offset, int count) 分配一个新的 String ,其中包含字符数组参数的子阵列中的字符。
      String(int[] codePoints, int offset, int count) 分配一个新的 String ,其中包含 Unicode code point数组参数的子阵列中的 字符
      String(String original) 初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。
      String(StringBuffer buffer) 分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。
      String(StringBuilder builder) 分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。

(5)方法概要描述

  • 方法摘要

    Modifier and Type Method and Description
    char charAt(int index) 返回 char指定索引处的值。
    int codePointAt(int index) 返回指定索引处的字符(Unicode代码点)。
    int codePointBefore(int index) 返回指定索引之前的字符(Unicode代码点)。
    int codePointCount(int beginIndex, int endIndex) 返回此 String指定文本范围内的Unicode代码点数。
    int compareTo(String anotherString) 按字典顺序比较两个字符串。

(6)属性详细介绍

(7)构造器详细介绍

(8)方法详细介绍

      • charAt

        public char charAt(int index)

        返回char指定索引处的值。指数范围为0length() - 1 。该序列的第一个char值在索引0 ,下一个索引为1 ,依此类推,与数组索引一样。

        如果char由索引指定的值是surrogate ,则返回所述替代值。

        • Specified by:

          charAt在界面 CharSequence

        • 参数

          index - char值的指数。

        • 结果

          所述char此字符串的指定索引处的值。 第一个char值是索引0

        • 异常

          IndexOutOfBoundsException - 如果 index参数为负数或不小于此字符串的长度。

二、常用包

java.lang(此包下的类,无需导入,可以直接使用)

java.io

java.text

java.util

java.net

java.sql

三、Object类

1、包

java.lang.Object

2、构造器

Object()`

无参构造器,没有啥用。

3、方法

    • Modifier and Type Method and Description
      protected Object clone() 创建并返回此对象的副本。
      boolean equals(Object obj) 指示一些其他对象是否等于此。
      protected void finalize() 当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。
      类<?> getClass() 返回此 Object的运行时类。
      int hashCode() 返回对象的哈希码值。
      void notify() 唤醒正在等待对象监视器的单个线程。
      void notifyAll() 唤醒正在等待对象监视器的所有线程。
      String toString() 返回对象的字符串表示形式。
      void wait() 导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法。
      void wait(long timeout) 导致当前线程等待,直到另一个线程调用 notify()方法或该对象的 notifyAll()方法,或者指定的时间已过。
      void wait(long timeout, int nanos) 导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法,或者某些其他线程中断当前线程,或一定量的实时时间。

4、超类

根类,基类。

所有类都直接或间接继承了Object类。

package com.hs.obj;

public class P {
//p extend object
}
package com.hs.obj;

public class Student extends P{

  public static void main(String[] args) {
      Student s=new Student();
      Student s2=new Student();
      s.toString();
      s.hashCode();
      s.equals(s2);

  }
}

Object充分体现了面向对象继承的使用!!

我们将所有类都应该有的方法,定义到Object。

5、常用方法

(1)hashCode方法

每个对象在内存中存储,都一个对应的地址。

我们可以通过地址找到内存中的该对象,然后访问对象。

每个对象都一个唯一的地址。

hashCode方法作用:将对象的地址,通过哈希算法(散列算法)转换为一个int整数,这个整数我们称为哈希码。

一般情况,不同的对象对应的哈希码值不同。但是少数情况,不同的对象哈希码值可能相同。

        Student  s=new Student();
      Student s2=new Student();

      System.out.println(s.hashCode());
      System.out.println(s2.hashCode());

(2)toString方法

返回对象的字符串形式:类名@哈希码值

        Student  s=new Student();
      Student s2=new Student();

      System.out.println(s.hashCode());
      System.out.println(s2.hashCode());

      System.out.println(s.toString());
      System.out.println(s2.toString());

(3)equals方法

比较两个对象是否相等:比较的是对象的首地址是否相同,如果相同返回true,如果不相同返回false。

Student  s=new Student();
Student s2=new Student();

System.out.println(s.hashCode());
System.out.println(s2.hashCode());

System.out.println(s.toString());
System.out.println(s2.toString());

System.out.println( s.equals(s2));
Student s3=s2;
System.out.println(s3.equals(s2));

==和equals区别:

==既可以比较基本数据类型,也可以比较引用数据类型。

equals只能比较引用数据类型。

比较引用数据类型,==和equals都是比较的是对象的首地址。

上一篇:文明与征服S2测试服技能一览


下一篇:C++ string类的用法整理