JavaAPI常用类01

目录

概述

Object类

Object类_toString()

代码展示

重写toString()方法前后输出

Object类_equals()

代码展示

重写equals()方法前后输出对比

Arrays类

equals()方法

Binary Search(二分查找)

copyOf()方法

sort()方法

了解sort()方法

进阶

基本数据类型包装类

例一

例二


概述

常用类API

常用类:Java系统中提供的一些使用频率较高的类

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

  Java系统中所提供的一系列类和接口

api文档:官方给广大Java开发者、学习者提供对类和接口功能的说明文档

Object类

     object
       java.lang.object是Java类体系中的最顶级的类,万类之祖,

Object类_toString()

代码展示

package com.ffyc.javaapi.objectdemo;

public class Person extends Object{
    private String name;
    private int age;

    public Person() {
    }

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

    /*
     重写父类中toString方法
    */
    @Override
    public String toString() {
        return "Person{" +
                "name='" + this.name + '\'' +
                ", age=" + this.age +
                '}';
    }
}

 toString()
       当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出,
       类中如果没有toString(),那么会调用父类(Object.toString)
          public String toString(){
                          //Object类中默认输出类的名字和对象在内存中的地址(10进制 转为16进制)
                 return getClass().getName() + "@" + Integer.toHexString(hashCode())

          }

package com.ffyc.javaapi.objectdemo;

public class ToStringDemo {
    */

    public static void main(String[] args) {
        Person person1 = new Person("三儿",18);
        Person person2 = new Person("小舞",100000);
        System.out.println(person1);//没有进行对toString方法重写前输出:com.ffyc.javaapi.objectdemo.Person@1b6d3586
        System.out.println(person2);
    }

}

重写toString()方法前后输出

重写前

重写后

Object类_equals()

代码展示

package com.ffyc.javaapi.objectdemo;

public class Person extends Object{
    private String name;
    private int age;

    public Person() {
    }

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

    /*
     重写父类中equals方法 
    */
    @Override
    public boolean equals(Object obj) {
        Person p = (Person)obj;
        return this.name.equals(p.name) && this.age == p.age;
    }
}

         public boolean equals(Object obj){
                return (this == obj);
            }
            == 用于基本类型,比较值是否相等
            == 用于引用类型比较时,比较的是两个引用的地址是否相等

package com.ffyc.javaapi.objectdemo;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class TestEquals {
    public static void main(String[] args) { 
        int a = 10;
        int b = 10;
        System.out.println(a==b);
        Person person1 = new Person("三儿",18);//凡是new出来的,内存地址肯定不同
        Person person2 = new Person("三儿",18);
        Person person3 = person2;
        System.out.println(person1.equals(person2));
        //以后如果比较两个对象的地址是否相等时,直接使用==比较即可
        System.out.println(person1==person2);
        System.out.println(person3==person2);
        //所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
        System.out.println(person1.equals(person2));

        //equals()用来比较对象中的内容是否相等
        String s1 = new String("aaa");
        String s2 = new String("aaa");
        System.out.println(s1==s2);//false
        System.out.println(s1.equals(s2));//true
    }
}

重写equals()方法前后输出对比

重写前

重写后

Arrays类

equals()方法

          equals是object类中的方法,只能用于判断引用类型
          equals方法默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。
          比如String和Integer类中的equals源代码

package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysEquals {

    public static void main(String[] args) { 
        int[]  a = {1,2,3,4,5,6};//数组也是对象,也是继承Object
        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比较的两个数组中的内容是否相等
    }
}

Binary Search(二分查找)

package com.ffyc.javaapi.arraysdemo;

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,8);
        System.out.println(index);

        //指定区间的查找 包含开始索引,到结束索引-1.
        int index1 = Arrays.binarySearch(a,0,4,5);
        System.out.println(index1);
    }
}

copyOf()方法

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

package com.ffyc.javaapi.arraysdemo;

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));
    }
}

sort()方法

了解sort()方法

即对一个数组的所有元素进行排序
而且排序的时候是从小到大

package com.ffyc.javaapi.arraysdemo;

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));
    }
}

进阶

当存在两种或两种以上数据类型时,通过重写sort()方法进行排序

package com.ffyc.javaapi.arraysdemo;

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

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

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

    /*
     此方法用来制定和排序规则
     此方法会在sort()进行调用
    */
    @Override
    public int compareTo(Student o) {
        return this.num - o.num;//小于0  等于0  大于0(通过num排序)
        //return this.name.compareTo(o.name);(通过name排序)
    }
}
package com.ffyc.javaapi.arraysdemo;

import java.util.Arrays;

public class ArraysSort {
    public static void main(String[] args) { 

        Student s1 = new Student(001,"三儿");
        Student s2 = new Student(002,"十三");
        Student s3 = new Student(003,"洛雪");
        Student s4 = new Student(004,"一心");
        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("a".compareTo("b"));字符串比较大小,返回一个int值

    }
}

基本数据类型包装类

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

例一

package com.ffyc.javaapi.datatype;

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(10);
        System.out.println(b.maxint());
        System.out.println(b.minint());
        System.out.println(Integer.toBinaryString(3)); 
    }
}

例二

package com.ffyc.javaapi.datatype;

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);
        System.out.println(Integer.toBinaryString(333));
    }
}

  • 46
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值