Java基础之常用API(一)

1. API

概述

API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的字典,是jdk中提供给我们使用的类的说明文档.这些类将底层的代码实现封装了起来,我们不需要关系这些了是如何实现的,只需要学习这些类的使用方法.所以我们可以通过查询API的方式来学习Java提供的类

API使用步骤

  • 打开帮助文档
  • 点击显示,找打索引,看到输入框
  • 你要找谁?在输入框里输入,然后回车
  • 看包,java.lang下的类不需要导包.其他需要.
  • 看类的解释和说明
  • 学习构造方法
  • 使用成员方法

2. Object类

2.1 概述

java.lang.Object类是java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候最终找到父类就是Object.

如果宇哥类没有特别指定父类,那么默认则继承字Object类

public class MyClass /* extends Object */ {
    //...
}

2.2 toString方法

方法摘要

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

toString方法饭后有该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值.由于toString方法返回的结果是内存地址值,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此需要重写它.

覆盖重写

如果不希望使用费toString方法的默认行为,则可以对它进行覆盖重写.

class Person {
    private String nsme;
    private int age;

    public Person(String nsme, int age) {
        this.nsme = nsme;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "nsme='" + nsme + '\'' +
                ", age=" + age +
                '}';
    }
}
  • 在我们直接使用输出语句输出对象名的时候,其实同过对象调用其toString()方法

2.3 equals方法

方法摘要

  • public boolean equals(Object obj);指示其他对某个对象是否与此对象"相等".

调用成员方法equals并指定参数为零一对象,则可以判断者两个对象是否是相同的.这里的"相同"有默认和自定义里昂中法方式

默认地址比较

如果没有覆盖重写equals方法,那么Object类默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false.

对象内容比较

如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法

class Person {
    private String nsme;
    private int age;

    public Person(String nsme, int age) {
        this.nsme = nsme;
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        // 如果对象地址一样,则认为不同
        if (this == o) return true;
        // 如果参数为空,或者类型信息不一样,则认为不同
        if (o == null || getClass() != o.getClass()) 
            return false;
        // 转换为当前类型
        Person person = (Person) o;
        // 要求基本类型相同,并且将引用类型教改java.util.Objects类的equals静态方法取用结果
        return age == person.age && Objects.equals(nsme, person.nsme);
    }
}

2.4 Objecs类

在IDEA自动重写equals代码中,使用到了java.util.objects类.

在jsk7添加了一个Object三工具类,它提供了一些方法来操作对象,它由一些静态的使用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode,返回对象的字符串表示形式,比较两个对象

在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题.

扫描二维码关注公众号,回复: 10971063 查看本文章
  • public static boolean equals(Object a,Oject b);判断两个对象是否相等.
public static boolean equals(Object a,Object b){
    return (a == b)||(a !=null && a.equals(b));
}

3. Scanner类

3.1 概述

一个可以解析基本类型和字符串的简单文本扫面器.例如是用户能够从System.in中读取一个数

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
  • System.in 系统输入指的是同过键盘录入数据

3.2 Scanner使用步骤

查看类

  • java.util.Scanner:该类需要import导入后使用.

查看构造方法

  • public Scanner(InputStream source):构造一个新的SCanner,它生产的值是从指定的输入流扫描的.

查看成员方法

  • public int nextInt():将输入信息的下个标记扫描为一个int值
// 1. 导包
import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        // 2. 创建键盘录入数据的对象
        Scanner sc = new Scanner(System.in);
        // 3. 接受数据
        System.out.println("请录入一个数据:");
        int i = sc.nextInt();
        // 4. 输出数据
        System.out.println("i:"+ i);
    }
}

4. String类

4.1 String类概述

概述

java.lang.String类代表字符串,Java程序中方所有的字符串文字(例如"abc")都可以被看作是实现此类的实例.

类String中包括用于检查各个字符串的方法,比如用于字符串的比较,搜索字符串,提取字符串以及创建具有翻译大写小写的所有字符串的副本

特点

  • 字符串不变:字符串的值在创建后不能被更改.
String s1 = "abc";
s1 + = "d";
System.out.println(s1); // "abcd"
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了'abcd".
* 因为String对象是不可改变的,所以他们可以被共享.
String s1 = "abc";
String s2 = "abc";
// 内存中只有一个"abc"对象被创建,同时s1和s2共享
* "abc"等效于char[] data = {'a','b','c'};
String str = "abc";
// 相当于:
char[] data = {'a','b','c'};
String str = new String(data);
// String 底层是靠字符数组实现的

4.2 使用步骤

  • 查看类
    • java.lang.String:此类不需要导包.
  • 查看构造方法
    • public String():初始化信创建的String对象,以使其表示空字符序列
    • public String(char[] value):通过当前参数中的字符数组来构造信的String.
    • public String(byte[] bytes):通过使用平台默认字符集解码当前参数中的字节数组来构造新的String.
// 无参构造
String str = new String();
// 通过字符数组构造
char[] chars = {'a','b','c'};
String str2 = new String(chars);
// 通过字节数组构造
byte bytes = {97,98,99};
String str3 = new String(bytes);

4.3 常用方法

判断功能的方法

  • public boolean equals (Object o):将此字符串于指定对象进行比较
  • public boolean equalsIgnoreCase(String anthorString);将此字符串于指定对象进行比较,忽略大小写
public class test1 {
    public static void main(String[] args) {
        // 创建字符串对象
        String s1 = "hello";
        String s2 = "hello";
        String s3 = "HELLO";
        System.out.println(s1==s2);
        // boolean equals(Object obj)比较字符串的内容是否相同
        System.out.println(s1.equals(s2)); // true
        System.out.println(s1.equals(s3)); // false
        // boolean equalsIgnoreCase(String str);比较字符串的内容是否相同,忽略大小写
        System.out.println(s1.equalsIgnoreCase(s2)); // true
        System.out.println(s1.equalsIgnoreCase(s3));// true
    }
}
  • Object是对象的意思,也是一种引用类型.作为参数类型,表示任意对象都可以传递到方法中

获取功能的方法

  • public int length();返回此字符串的长度
  • public String concat (String str);将指定的字符串连接到该字符串的末尾
  • public char charAt(int index);返回指定索引处的char值.
  • public int indexOf(String str):返回指定字符串第一次出现在该字符串内的索引
  • public String substring (int beginIndex);返回一个字符串,从beginIndex开始截取字符串到字符串结尾
  • public String substring (int beginIndex,int endIndex);返回一个子字符串,从beginIndex到endIndex截取字符串,包含beginIndex,不包含endIndex.
public class test1 {
    public static void main(String[] args) {
        // 创建字符串对象
        String s = "hello world";
        // int length();获取字符串的长度,其实也就是字符个数
        System.out.println(s.length());
        // String concat(String str)将指定的字符串连接到该字符串的末尾
        String s2 = s.concat("**hello itheima");
        System.out.println(s2); // hello world**hello itheima
        // char charAt(int index);获取指定索引处的字符
        System.out.println(s.charAt(0));
        System.out.println(s.charAt(1));
        // int indexOf(String str)获取str在字符串对象中第一次出现的索引,没有返回-1
        System.out.println(s.indexOf("1"));
        System.out.println(s.indexOf("owo"));
        System.out.println(s.indexOf("ak"));
        // String substring(int start)从start开始截取字符串到字符串结尾
        System.out.println(s.substring(0));
        System.out.println(s.substring(5));
        // String substring (int start ,int end)从start到end截取字符串.含start,不含end
        System.out.println(s.substring(0,s.length()));
        System.out.println(s.substring(3,8));

    }
}

转换功能的方法

  • public char[] toCharArray();将此字符串转换为新的字符数组
  • public bytep[] getBytes();使用平台的默认字符集将该String编码转换为新的字节数组
  • public string replace(CharSequence target,CharSequence replacement);将与target匹配的字符串使用replacement字符串替换
public class test1 {
    public static void main(String[] args) {
        // 创建字符串对象
        String s = "abcde";
        // char[] toCharArray();把字符串转换为字符数组
        char[] chs = s.toCharArray();
        for (int i = 0; i < chs.length; i++) {
            System.out.println(chs[i]);
        }
        // byte[] getBytes();把字符串转换为字节数组
        byte[] bytes = s.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }
        // 替换字母it为大写IT
        String str = "itcast itheima";
        String replace = str.replace("it","IT");
        System.out.println(replace);// ITcast ITheima
    }
}

分割功能的方法

  • public String[] split(String regex);将此字符串按照给定的规则拆分为字符串数组
public class test1 {
    public static void main(String[] args) {
        // 创建字符串对象
        String s = "aa|bb|cc";
        String[] strArray = s.split("\\|");//["aa","bb","cc"]
        for (int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);// aa bb cc
        }
    }
}
发布了24 篇原创文章 · 获赞 27 · 访问量 2036

猜你喜欢

转载自blog.csdn.net/weixin_45860268/article/details/103763974
今日推荐