• 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()

    代码展示

    1. package com.ffyc.javaapi.objectdemo;
    2. public class Person extends Object{
    3. private String name;
    4. private int age;
    5. public Person() {
    6. }
    7. public Person(String name, int age) {
    8. this.name = name;
    9. this.age = age;
    10. }
    11. /*
    12. 重写父类中toString方法
    13. */
    14. @Override
    15. public String toString() {
    16. return "Person{" +
    17. "name='" + this.name + '\'' +
    18. ", age=" + this.age +
    19. '}';
    20. }
    21. }

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

              }

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

    重写toString()方法前后输出

    重写前

    重写后

    Object类_equals()

    代码展示

    1. package com.ffyc.javaapi.objectdemo;
    2. public class Person extends Object{
    3. private String name;
    4. private int age;
    5. public Person() {
    6. }
    7. public Person(String name, int age) {
    8. this.name = name;
    9. this.age = age;
    10. }
    11. /*
    12. 重写父类中equals方法
    13. */
    14. @Override
    15. public boolean equals(Object obj) {
    16. Person p = (Person)obj;
    17. return this.name.equals(p.name) && this.age == p.age;
    18. }
    19. }

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

    1. package com.ffyc.javaapi.objectdemo;
    2. import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
    3. public class TestEquals {
    4. public static void main(String[] args) {
    5. int a = 10;
    6. int b = 10;
    7. System.out.println(a==b);
    8. Person person1 = new Person("三儿",18);//凡是new出来的,内存地址肯定不同
    9. Person person2 = new Person("三儿",18);
    10. Person person3 = person2;
    11. System.out.println(person1.equals(person2));
    12. //以后如果比较两个对象的地址是否相等时,直接使用==比较即可
    13. System.out.println(person1==person2);
    14. System.out.println(person3==person2);
    15. //所以其他的类为了比较两个对象中包含的内容是否相等,都对Object中的equals(),进行了重写,改为判断内容是否相等
    16. System.out.println(person1.equals(person2));
    17. //equals()用来比较对象中的内容是否相等
    18. String s1 = new String("aaa");
    19. String s2 = new String("aaa");
    20. System.out.println(s1==s2);//false
    21. System.out.println(s1.equals(s2));//true
    22. }
    23. }

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

    重写前

    重写后

    Arrays类

    equals()方法

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

    1. package com.ffyc.javaapi.arraysdemo;
    2. import java.util.Arrays;
    3. public class ArraysEquals {
    4. public static void main(String[] args) {
    5. int[] a = {1,2,3,4,5,6};//数组也是对象,也是继承Object
    6. int[] b = {1,2,3,4,5,6};
    7. System.out.println(a==b);//false 比较的是两个数组对象的地址
    8. System.out.println(a.equals(b));//false 数组也是对象,也继承了Object类,数组名.equals() 调用的是Object类中的equals
    9. System.out.println(Arrays.equals(a,b)); //true比较的两个数组中的内容是否相等
    10. }
    11. }

    Binary Search(二分查找

    1. package com.ffyc.javaapi.arraysdemo;
    2. import java.util.Arrays;
    3. public class ArraysBinarySearch {
    4. public static void main(String[] args) {
    5. int [] a = {1,2,3,4,5,6,7};
    6. //二分查找算法, 需要数组是有序,如果数组中不包含要找的key,返回负数,找到了返回元素所在的索引位置
    7. int index = Arrays.binarySearch(a,8);
    8. System.out.println(index);
    9. //指定区间的查找 包含开始索引,到结束索引-1.
    10. int index1 = Arrays.binarySearch(a,0,4,5);
    11. System.out.println(index1);
    12. }
    13. }

    copyOf()方法

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

    1. package com.ffyc.javaapi.arraysdemo;
    2. import java.util.Arrays;
    3. public class ArraysCopyof {
    4. public static void main(String[] args) {
    5. int [] a = {1,2,3,4,5};
    6. int[] b = Arrays.copyOf(a,10);
    7. System.out.println(Arrays.toString(b));
    8. }
    9. }

    sort()方法

    了解sort()方法

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

    1. package com.ffyc.javaapi.arraysdemo;
    2. import java.util.Arrays;
    3. public class ArraysSort {
    4. public static void main(String[] args) {
    5. //基本数据类型
    6. int [] a = {5,2,3,4,1,6};
    7. Arrays.sort(a);//对整个数组默认进行升序排序
    8. Arrays.sort(a,0,4);//对指定区间进行升序排序,包含开始位置,不包含结束位置(显示结束位置的上一位)
    9. System.out.println(Arrays.toString(a));
    10. //引用数据类型
    11. String[] s = {"b","a","c","d"};
    12. Arrays.sort(s);
    13. System.out.println(Arrays.toString(s));
    14. }
    15. }

    进阶

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

    1. package com.ffyc.javaapi.arraysdemo;
    2. public class Student implements Comparable{
    3. private int num;
    4. private String name;
    5. public Student(int num, String name) {
    6. this.num = num;
    7. this.name = name;
    8. }
    9. @Override
    10. public String toString() {
    11. return "Student{" +
    12. "num=" + num +
    13. ", name='" + name + '\'' +
    14. '}';
    15. }
    16. /*
    17. 此方法用来制定和排序规则
    18. 此方法会在sort()进行调用
    19. */
    20. @Override
    21. public int compareTo(Student o) {
    22. return this.num - o.num;//小于0 等于0 大于0(通过num排序)
    23. //return this.name.compareTo(o.name);(通过name排序)
    24. }
    25. }
    1. package com.ffyc.javaapi.arraysdemo;
    2. import java.util.Arrays;
    3. public class ArraysSort {
    4. public static void main(String[] args) {
    5. Student s1 = new Student(001,"三儿");
    6. Student s2 = new Student(002,"十三");
    7. Student s3 = new Student(003,"洛雪");
    8. Student s4 = new Student(004,"一心");
    9. Student[] students = new Student[4];
    10. students[0] = s2;
    11. students[1] = s1;
    12. students[2] = s4;
    13. students[3] = s3;
    14. Arrays.sort(students);
    15. System.out.println(Arrays.toString(students));
    16. //System.out.println("a".compareTo("b"));字符串比较大小,返回一个int值
    17. }
    18. }

    基本数据类型包装类

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

    例一

    1. package com.ffyc.javaapi.datatype;
    2. public class MyInt {
    3. int value;
    4. public MyInt(int value) {
    5. this.value = value;
    6. }
    7. public int maxint(){
    8. return Integer.MAX_VALUE;
    9. }
    10. public int minint(){
    11. return Integer.MIN_VALUE;
    12. }
    13. public static void main(String[] args) {
    14. int a = 10;
    15. MyInt b = new MyInt(10);
    16. System.out.println(b.maxint());
    17. System.out.println(b.minint());
    18. System.out.println(Integer.toBinaryString(3));
    19. }
    20. }

    例二

    1. package com.ffyc.javaapi.datatype;
    2. public class IntegerDemo1 {
    3. public static void main(String[] args) {
    4. int x = 10;
    5. Integer a = new Integer(x);
    6. System.out.println(Integer.MAX_VALUE);
    7. System.out.println(Integer.MIN_VALUE);
    8. System.out.println(Integer.SIZE);
    9. System.out.println(Integer.BYTES);
    10. System.out.println(Integer.toBinaryString(333));
    11. }
    12. }

  • 相关阅读:
    数据结构笔记——树和图(王道408)(持续更新)
    上传文件到七牛云并限制并发数量
    PV、EV、AC、BAC、EAC、ETC等计算公式含义
    HTML (总结黑马的)
    浅谈百思捷国产MES(MOM)产品感悟
    Ajax解析
    WPF DataGrid详细列表手动显示与隐藏
    c++ 栈和栈的应用(图解)
    Leetcode(605)——种花问题
    java.sql.SQLException: com.mysql.cj.jdbc.Driver
  • 原文地址:https://blog.csdn.net/2303_77543831/article/details/136205000