Java 常用工具

API

APIApplication Programming Interface,应用程序编程接口,这里指的是 API 文档,通常叫做 “Java 文档”,是 Java 中提供的类的使用说明书

Java 中的类和方法几乎全部都有文档注释(/** 文档注释内容 */),这些文档注释就被 Java 的命令(javadoc.exe,在 JDK 安装的 bin 目录下)编译成了 Java 文档,即 API

发挥面向对象思想,找到 Java 提供的对象来实现功能,学习 API 文档就是学习 Java 中的类的使用方法。开发 Java 程序的过程中,想要使用 Java 提供的类的功能,就需要通过 API 文档来查找并使用。

API 是程序员和 Java 语言之间沟通的桥梁

API 文档的使用方法

使用步骤 :

  1. 搜索类

    在搜索框里按类名模糊查询,或者通过文档顶部提供的层级结构查找。

  2. 查看类的包名

    很多类在使用之前需要导包,所以要知道该类所属的包。 每一个类都默认导入 java.lang 包,所以如果你使用的是该包下的类,则无须手动导包。

  3. 查看类的注释

    使用一个类前,要知道该类的大致功能和它的定位,要知道一个类的能力边界,以便快速确定该类是不是你真正需要的。

  4. 查看构造方法(如有)

    使用类之前要创建类的对象。如果是静态类或者一些工具类如 java.lang.Math 类,则不需要这么做。

  5. 查找需要的方法并使用

    根据标识符的命名规则,可以快速定位方法的位置。仔细阅读方法的注释,注意区分重载方法的使用有何不 同。如果找不到想要的方法,可能该方法在父类,或者更高的父类中。

Object

类层次结构最顶层的基类,所有类都直接或间接的继承自 Object 类,所以,所有的类都是一个 Object(对象)。Java 是严格的面向对象的语言,所以,所有的函数和数据都封装到类中(并非所有的编程语言都这样),通过类的对象来调用这些功能或实现某个算法。

tu 1

  • 构造方法

    Object():
    构造一个对象。所有子类对象初始化时都会优先调用该方法

  • 成员方法

    int hashCode():
    返回对象的哈希码值,该方法通过对象的地址值进行计算,不同对象的返回值一般不同

    Class<?> getClass():
    返回调用此方法对象的运行时类对象(调用者的字节码文件对象)

    String toString():
    返回该对象的字符串表示

    boolean equals():
    返回其它某个对象是否与此对象“相等”。默认情况下比较两个对象的引用(地址值),建议重写

Scanner

扫描器,能够解析字符串(String)和基本数据类型的数据

图scanner

  • 构造方法

    Scanner(InputStream):
    构造一个扫描器对象,从指定输入流中获取数据参数 System.in,对应键盘录入

  • 成员方法

    hasNextXxx():
    判断是否还有下一个输入项,其中 Xxx 可能是任意基本数据类型,返回结果为布尔类型

    nextXxx():
    获取下一个输入项,其中 Xxx 可能是任意基本数据类型,返回对应类型的数据

    String nextLine():
    获取下一行数据。以换行符作为分隔符

    String next():
    获取下一个输入项,以空白字符作为分隔符

    空白字符:空格、tab、回车等

String

字符串,每一个字符串对象都是常量

图String

  • 构造方法

    String(byte[]):
    构造一个 String 对象,将指定字节数组中的数据转化成字符串

    String(char[]):
    构造一个 String 对象,将指定字符数组中的数据转化成字符串

  • 成员方法

    boolean equals(String)
    判断当前字符串与给定字符串是否相同,区分大小写

    boolean equalsIgnoreCase(String):
    判断当前字符串与给定字符串是否相同,==不区分大小写 ==

    boolean startWith(String):
    判断是否以给定字符串开头

    int length():
    获取当前字符串的长度

    char charAt(int index):
    获取指定索引位置的字符

    int indexOf(String):
    获取指定字符(串)第一次出现的索引

    int lastIndexOf(String):
    获取指定字符(串)最后一次次出现的索引

    String substring(int):
    获取指定索引位置(含)之后的字符串

    String substring(int, int):
    获取从索引 start 位置()起至索引 end 位置(不含)的字符串

    byte[] getBytes():
    将字符串转换成字节数组

    char[] toCharArray():
    将字符串转换成字符数组

    static String valueOf(..) :
    将指定类型数据转换成字符串

    String replace(old, new):
    将指定字符(串)替换成新的字符(串)

    String[] split(String):
    切割字符串,返回切割后的字符串数据,原字符串不变

    String trim():
    去掉字符串两端的空白字符

StringBuilderStringBuffer

可变字符序列,用于构造字符串对象。内部使用自动扩容的数组操作字符串数据。StringBuilderStringBuffer 使用相同的 API

  • 构造方法

    StringBuilder()
    构造一个空的 StringBuilder 容器

    StringBuilder(String):
    构造一个 StringBuilder 容器,并添加指定字符串

  • 成员方法

    StringBuilder append(…):
    将任意数据添加到 StringBuilder 容器中

    String toString():
    将当前 StringBuilder 容器转成字符串

DataCalendar

日期和日历类,用于操作日期相关的信息

  • 构造方法
    Date():
    构造一个日期对象,当前系统时间,精确到毫秒

    Date(long):
    构造一个日期对象,时间为自 “1970年1月1日00:00:00 GMT” 起,至指定参数的毫秒数

  • 成员方法

    long getTime():
    将日期对象转换成对应时间的毫秒值

    static Calendar getInstance():
    根据当前系统时区和语言环境获取日历对象

    int get(int field):
    返回给定日历字段的值

    void set(int field, int value):
    将给定的日历字段设置为指定的值

Calender 类是抽象类,不能创建对象

基本类型的包装类

基本数据类型不是对象,所以 Java 针对基本类型提供了对应的包装类,以对象的形式来使用

tu jiben shujuleiixng

  • 装箱

基本类型转包装类型(对象类型)

  • 拆箱

包装类型(对象类型)转基本类型

  • 成员方法

基本类型 parseXxx(String)
将字符串类型的数据转换成对应的基本类型

示例代码
package cn.itcast.demo2;

import java.util.Calendar;
import java.util.Scanner;

public class APIDemo1 {
    /*
    * Object 类:
    *   类层次结构最顶层的基类,所有类都直接或间接继承自Object
    *   所有类都是一个Object对象
    * 构造方法:
    *   Object() : 构造一个对象,所有子类对象初始化时都会优先调用该方法
    * 成员方法:
    *   int hashCode() : 返回对象的哈希码值,该方法通过对象的地址值进行计算
    *                   不同对象的返回值一般不同
    *   Class<?>getClass() :
    *                   返回调用此方法对象的运行时类对象(调用者的字节码文件对象)
    *   String toString() : 返回该对象的字符串表示
    *   boolean equals() : 比较是否相等,建议重写
    * */
    public static <Calender> void main(String[] args) {
        // 非静态方法的调用方式:通过 对象名. 的形式
        Object obj1 = new Object();
        Object obj2 = new Object();

        int code1 = obj1.hashCode();
        int code2 = obj2.hashCode();
        System.out.println(code1);
        System.out.println(code2);
        System.out.println("----------------");
        Class clazz1 = obj1.getClass();
        Class clazz2 = obj2.getClass();
        System.out.println(clazz1);
        System.out.println(clazz2);
        System.out.println("----------------");
        // 默认打印地址值
        // 地址值的组成: 全类名 + @ + 该对象的哈希码的无符号16进制形式
        String s1 = obj1.toString();
        String s2 = obj2.toString();
        System.out.println(s1);
        System.out.println(s2);
        System.out.println("----------------");
        boolean b1 = obj1.equals(obj2);
        System.out.println(b1);
        System.out.println("----------------");
        
        /*
        * Scanner 类:
        *   扫描器,能够解析字符串(String)和基本数据类型的数据
        * 构造方法:
        *   public Scanner(InputStream is):
        *       构造一个扫描器对象,从指定输入流中获取数据参数
        *       System.in对应键盘录入
        * 成员方法:
        *   hasNextXxx():
        *       判断是否还有下一个输入项,Xxx可能是任意基本数据类型
        *       返回结果为 布尔类型
        *  ** nextXxx():
        *       获取下一个输入项,Xxx可能是任意基本数据类型
        *       返回对应类型的数据
        *  ** String nextLine():
        *       获取下一行数据,以换行符作为分隔符
        *   String next():
        *       获取下一个输入项,以空白字符为分隔符
        *       空白字符:空格、tab、回车等
        * */
        // System.in 标准的输入流,默认指向键盘
        Scanner sc = new Scanner(System.in);

        /*System.out.println("Enter one int");
        // 为了解决 InputMismatchException,可以加一个判断
        if (sc.hasNextInt()) {
            int num = sc.nextInt();
            System.out.println(num);
        }*/
        // 97 = a
        byte[] by = {97,98,99};
        String str1 = new String(by);
        System.out.println(str1);
        char[] ch = {'h', 'e', 'l', 'l', 'o'};
        String str2 = new String(ch);
        System.out.println(str2);
        // String 可以免写 new
        String str3 = "abc";

        /*
        * StringBuilder  和 StringBuffer
        * 可变字符序列,用于构造字符串对象,内部使用自动扩容的数组操作
        * 字符串数据,使用相同的 API
        * 建议优先使用 StringBuilder,速度更快
        * 构造方法:
        *   StringBuilder()
        *       构造一个空的 StringBuilder容器
        *   StringBuilder(String)
        *       构造一个 StringBuilder容器,并添加指定字符串
        * 成员方法:
        *   StringBuilder append(...):
        *       将任意数据添加到容器中,返回自身
        *   StringBuilder toString():
        *       将当前StringBuilder容器转成字符串
        * */

        /*
        * Calender 类是抽象类,不能创建对象
        * 但是可以如下使用
        * */
        Calendar c = Calendar.getInstance();
        System.out.println(c);
        // 获取年月日
        // java 中使用 0-11 表示月份
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DATE);
        System.out.println("Year = " + year);
        System.out.println("Month = " + (month + 1));
        System.out.println("Day = " + day);
        // 设置
/*        System.out.println("----------------");
        c.set(Calendar.YEAR, 2020);
        int year2 = c.get(Calendar.YEAR);
        System.out.println("Year2 = " + year2);*/
        c.set(2020, 2, 3);
        int year3 = c.get(Calendar.YEAR);
        int month3 = c.get(Calendar.MONTH);
        int day3 = c.get(Calendar.DATE);
        System.out.println("Year3 = " + year3);
        System.out.println("Month3 = " + (month3 + 1));
        System.out.println("Day3 = " + day3);

        /*
        * 装箱:基本类型转包装类型(对象类型)
        * 拆箱:包装类型(对象类型)转基本类型
        *
        * 基本类型 parseXxx(String):(静态)
        *   将字符串类型的数据转成对象的基本类型
        *   除了 Character 都有
        *
        * 如果字符串想转换成 char类型
        * 可以使用 String的方法 toCharArray()、charAt()
        *
        * */
        int a = 10;
        // a 是基本类型,不能 对象名. 来调用方法
        Integer i1 = new Integer(a);  // 过时写法
        int b = i1.intValue();
        // 新写法
        Integer i2 = 30;
        int a2 = i2;

        String s = "10";
        int num = Integer.parseInt(s);
        System.out.println(num+10);
    }
}

如果 if 语句控制的只有一行代码,可以省略 {}

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐