Java常用类

目录

一、Java API概述

二、Object

1.toString方法

2.equal方法

三、Arrays

1.equals 方法

2.sort方法

3.binarySearch

4. copyOf方法

四、基本数据类型包装类


一、Java API概述

API(Application Programming Interface)应用程序编程接口

是对java预先定义的类或接口功能和函数功能的说明文档,

目的是提供 给开发人员进行使用帮助说明.

本章会学习java提供的一些基础常用类,以便后期学习需要.

后面的章节以具体模块化学习为主,本质就是学习java中提供的类的功能

二、Object

java.lang.Object 是java类体系中的最顶级的,万类之组。

1.toString方法

toString()

当输出一个对象时,上默认调用类中toString()方法,把对象以字符申形式输出,

类中如果没有toString(),那么会调用父类(Object)中的toString();

public String toString() {

object类中的默认输出类的名字和对象在内存中地址(10进制 转为16进行)

return getClass().getName() + "@"+ Integer.toHexString(hashCode());

}

public class ToStringDemo {

    public static void main(String[] args) {
        Person p1 = new Person("张三", 18);
        String s=p1.toString();
        System.out.println(p1.toString());
        System.out.println(s);
        System.out.println(p1);
    }

}

2.equal方法

public boolean equals(Object obj) {
    return (this == obj);
}
== 用于基本类型比较时,比较的是值是否相等
== 用于引用类型比较时,比较的是两个引用的地址是否相等
以后如果比较两个对象的地址是否相等时,直接使用=比较即可
所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
equals()用来比较对象中的内容是否相等
public class TestEquals {
    public static void main(String[] args) {

        int a = 10;
        int b = 10;
        System.out.println(a == b);

        Person p1 = new Person("张三1", 18);
        Person p2 = new Person("张三1", 18);

        System.out.println(p1.equals(p2));//凡是new出来的,内存地址肯定不同
        System.out.println(p1 == p2);
        System.out.println(p1.equals(p2));
        String s = new String("abc");
        String s1 = new String("abc");
        System.out.println(s == s1);//false
        System.out.println(s1.equals(s));//true
    }
}
public class Person extends Object {
    private String name;
    private int age;

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

    /*
    重写父类中toString()方法
     */

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (obj instanceof Person) {
            Person p = (Person) obj;
            return this.name.equals(p.name) && this.age == p.age;
        }
        return false;
    }
}

三、Arrays

1.equals 方法

import java.util.Arrays;

public class ArraysEqualsDemo {
    public static void main(String[] args) {
        int[] a = {1, 2, 3, 4, 5, 6};
        int[] b = {1, 2, 3, 4, 5, 6};
        System.out.println(a == b);//false 比较的是两个数组对象的地址
        System.out.println(a.equals(b));//false 数组也是对象,也继承了object类,数组名.equals() 调用的是Object类中的equals
        System.out.println(Arrays.equals(a,b));//true比较的两个数组中的内容是否相等
    }
}

2.sort方法

public class Student implements Comparable<Student> {
    private int num;
    private String name;

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

    /*
    此方法是用来指定排序规则
    此方法公在sortO进行调用
     */
    @Override
    public int compareTo(Student o) {
        return this.num - o.num;
//        return this.name .compareTo(o.name) ;
    }

    @Override
    public String toString() {
        return "Student{" +
                "num=" + num +
                ", name='" + name + '\'' +
                '}';
    }
}
import java.util.Arrays;

public class ArraysSort {
    public static void main(String[] args) {
        /*int [] a = {5,2,3,4,1,6};
        Arrays.sort(a);//对整个数组默认进行升序排序
        Arrays.sort(a,0, 4);//对指定区间进行排序,包含开始位置,不包含结束
        System.out.println(Arrays.toString(a));*/

        String[] s ={ "b","a","c","d"};
        Arrays.sort(s);
        System.out.println(Arrays.toString(s));

        Student s1 = new Student(101, "张三1");
        Student s2 = new Student(102, "张三2");
        Student s3 = new Student(103,"张三3");
        Student s4 = new Student(104,"张三4");

        Student[] students = new Student[4];
        students[0] = s2;
        students[1] = s1;
        students[2] = s4;
        students[3] = s3;
        Arrays.sort(students);
        System.out.println(Arrays.toString(students));


//        System.out.println("c".compareTo("a"));
    }
}

3.binarySearch

binarySearch -使用二分搜索算法搜索指定数组

import java.util.Arrays;

public class ArraysBinarySearch {
    public static void main(String[] args) {
        int[] a = {1, 2, 3, 4, 5, 6, 7};

        //二分查找算法,需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
        int index = Arrays.binarySearch(a, 2);
        System.out.println(index);

        //在给定范围内查找
        int index1 = Arrays.binarySearch(a, 0, 4, 5);
    System.out.println(index1);

    }
}

4. copyOf方法

数组复制:
java中的数组在创建时,指定长度,一旦给定长度不能改变
30--->扩容40 new 40
将原数组中的内容复制到一个指定长度的新数组中
import java.util.Arrays;

public class ArraysCopyof {
    public static void main(String[] args) {
               int[] a = {1, 2, 3, 4, 5};
        int[] b = Arrays.copyOf(a, 10);
        System.out.println(Arrays.toString(b));

    }

}

四、基本数据类型包装类

java中的基本数据类型,由8种关键字声明的,不是面向对象的设计.
为了对基本类型更加方便的操作,java为每一种基本类型创建了一个类来进行表示
核心是类中还是包含了一个基本数据类型,还包含了很多关于基本类型操作的方法
这样我们使用包装类型,表示一个数据,符合面向对象思想
public class MyInt {

    int value;

    public MyInt(int value) {
        this.value = value;
    }

    public int maxint() {
        return Integer.MAX_VALUE;
    }

    public int minint() {
        return Integer.MIN_VALUE;
    }

    public static void main(String[] args) {
        int a = 10;
        MyInt b = new MyInt(a);
    }


}
public class IntegerDemo1 {
    public static void main(String[] args) {
        int x = 10;
        Integer a = new Integer(x);

        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.SIZE);
        System.out.println(Integer.BYTES);
    }
}

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘伊珂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值