1、类库介绍

1.1 - 常用包

java.lang包 - 该包是java中的核心包,该包中的所有类由java虚拟机自动导入。

如:String类、System类、Thread类…

java.util包 - 该包是java中的工具包,该包中提供了大量的工具类和集合类等。

如:Scanner类、Random类、Collections类…

java.io包 - 该包是java中的IO包,该包中提供了有关输入输出的类信息。

如:FileOutputStream类、FileInputStream类

java.net包 - 该包是java中的网络包,该包中提供了有关网络编程的类的信息。

如:ServerSocket类、Socket类、DatagramSocket类…

1.2 - Object类

基本概念

java.lang.Object类是所有类层次结构中的根类。

常用方法

方法名

说明

boolean equals(Object obj)

用于判断调用对象和参数对象是否相等

int hashCode()

用于返回调用对象的哈希码值(内存地址的编号,对一个一块内存)

String toString()

用于返回对象的字符串表示形式

import java.util.Objects;

/**
 * @author ly_smith
 * @Description #TODO
 */
//当自定义类没有继承于任何类的时候,默认继承与Object
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return age == student.age &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
------------------------------------------------
/**
 * @author ly_smith
 * @Description #TODO  Object类中的常用方法
 */
public class Demo01 {
    public static void main(String[] args) {
        Student stu01 = new Student("Andy", 18);
        Student stu02 = new Student("Andy", 18);

        //当学生类没有重写equals方法时,默认使用的是Object类中的equals方法
//        System.out.println(stu01.equals(stu02));//false

        //当前已经在Student类重写了equals方法,比较的是对象的内容
        System.out.println(stu01.equals(stu02));//true
        System.out.println("------------------------------------------");

        //当Student类中没有重写toString方法时,默认调用Object类中的toString方法
//        System.out.println(stu01.toString());

        System.out.println(stu01);//打印对象会自动调用toString方法
        System.out.println(stu01.toString());
    }
}

1.3 - 包装类

1.3.1 - 包装类概念

在某些场合(集合)中要求所有数据类型都必须是对象,但是java中的8种基本数据类型的定义并不是对象,为了满足集合场合的需求就需要对变量进行对象化处理,此时需要借助包装类。

1.3.2 - 常用的包装类

基本数据类型

包装类

byte

java.lang.Byte类

short

java.lang.Short类

int

java.lang.Integer类

long

java.lang.Long类

float

java.lang.Float类

double

java.lang.Double类

boolean

java.lang.Boolean类

char

java.lang.Character类

1.3.3 - Integer类

基本概念

java.lang.Integer类被final关键字修饰表示该类不能被继承。

该类的内部包装了一个int类型的变量作为该类的成员变量,实现了int类型的包装。

装箱和拆箱的概念

装箱就是指从int类型向Integer类型的转换。

拆箱就是指从Integer类型向int类型的转换。

从JDK1.5以后,编译器提供了自动装箱和拆箱的机制

常用方法

方法名

说明

int intValue()

用于返回该调用对象的int类型数据

float floatValue()

用于返回该调用对象的float类型数据

static int parseInt(Stirng s)

用于将参数指定的字符串转换成整数类型并返回

static String toBinaryString(int i)

用于将参数指定整数拆分成字符串形式的二进制并返回

static String toHexString(int i)

用于将参数指定的整数拆分成字符串形式的十六进制并返回

static Integer valueOf(String s)

用于将指定参数的字符串转换成Integer对象

/**
 * @author ly_smith
 * @Description #TODO  Integer类常用方法
 */
public class Demo02 {
    public static void main(String[] args) {
        String str01 = "123";
        String str02 = "123abc";
        int num01 = 456;
        Integer num02 = 789;

        int num03 = num02;//自动拆箱
//        int i = num02.intValue();   Ctrl + Alt + V 快速生成当前引用类型和引用名
        System.out.println(num02.intValue());

        System.out.println(num02.floatValue());

        System.out.println(Integer.parseInt(str01));
//        System.out.println(Integer.parseInt(str02));  java.lang.NumberFormatException: For input string: "123abc"

        System.out.println(Integer.toBinaryString(num01));

        System.out.println(Integer.toHexString(num01));

        Integer integer = Integer.valueOf(str01);
        System.out.println(integer);
    }
}

1.4 - String类(重点)

基本概念

java.lang.String类由final关键字修饰,表示该类不能被继承。

该类用于描述字符串,使用该类创建的对象可以用来描述java中的所有字符串字面值,如:“abc”,“123”.

有什么区别
String s1 = null;
String s2 = "";
前者的形式表示没有字符串对象 ,后者表示有字符串对象,但是对象中没有内容。
常用构造方法

方法名

说明

String()

使用无参的形式构造字符串对象

String(byte[] bytes)

使用参数指定的字节数组来构造对象

String(byte[] bytes ,int off, int len)

使用参数指定字节数组中的一部分内容来构造字符串

/**
 * @author ly_smith
 * @Description #TODO String类构造方法
 */
public class Demo03 {
    public static void main(String[] args) {
        //创建byte类型数组,并且进行初始化
        byte[] bytes = {97,98,99,100,101,102,103};

        String s = new String();//创建空字符串对象
        System.out.println(s);

        String s1 = new String(bytes);//将整个byte数组转换成String类型对象
        System.out.println(s1);

        String s2 = new String(bytes, 4, 3);//将byte数组中的一部分内容转换成字符串
        System.out.println(s2);
    }
}

方法名

说明

char charAt(int index)

用于返回调用对象指定参数位置的字符

int length()

用于返回字符串的长度

int compareTo(String anotherString)

表示按照字典顺序来比较两个字符串的大小

int compareToIgnoreCase(String str)

比较字符串大小,忽略大小写

boolean equals(Object anotherObject)

用于判断调用对象字符串和参数对象字符串内容是否相等

boolean equalsIgnoreCase(Object anotherObject)

判断字符串是否相等,忽略大小写

boolean contains(CharSequence s)

判断调用对象字符串中是否包含参数字符串

String concat(String str)

返回参数对象与调用对象的拼接

boolean endsWith(String suffix)

判断当前字符串是否以suffix为结尾

boolean startsWith(String prefix)

判断当前字符串是否以prefix开头

String toLowerCase()

用于将所有调用对象字符串都转换为小写

String toUpperCase()

用于将所有调用字符串对象转换为大写

byte[] getBytes()

用于将字符串内容转换为byte数组并返回

int indexOf(String str)

用于查找指定参数第一次出现的下标,不存在则返回-1

int lastIndexOf(String str)

用于查找指定参数最后一次出现的下标。

String substring(int beginIndex)

用于获取从参数指定位置开始截取字符串并返回

String substring(int beginIndex,int endIndex)

用于获取从beginIndex位置开始到endIndex位置结束之间的字符串。