Java API

目录

Java API概述

基本数据类型包装类

基本数据类型对象的Java包装类

包装类的主要用途

包装类常用属性方法

构造方法

比较方法

转换方法

Object类

概述


概述

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

官方定义:Java API是对java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员进行使用帮助说明.

理解: Java 对底层的代码包装成了很多类便于开发使用,比如我们经常用的 String类,Array类,Object类等等,javaAPI会对这些Java包装类进行解释说明,我们可以根据API学习该类的组成结构(成员变量,成员方法等),还有继承关系及其功能.

基本数据类型包装类

●java 是面向对象语言,但苦于我们使用的基本数据类型不是对象,这也就意味着我们无法想使用一个对象一样使用这些数据类型,在编程过程中有诸多不便,因此,就java将他们包装成类,这样我们就可以new 其对象,访问其成员变量,使用其成员方法.

int m = 10;
        /**
         * 这里定义一个int变量,但我们只能使用,不能进行相关的处理
         * 如果想要把这个int变量变成字符串我们可以使用int的包装类Integer中的toString()方法
         */
        Integer n = 10; //n的类型为Integer,所以可以使用  .  调用这个对象的toString()
        String s = n.toString();

基本数据类型对象的Java包装类

基本数据类型

基本数据类型包装类

byte

Byte

char

Character

short

Short

int

Integer

long

Long

float

Float

double

Double

boolean

Boolean

包装类的主要用途

●作为和基本数据类型对象的类存在

●包含每种数据类型的相关属性(成员变量) ,以及一些操作方法

包装类常用属性方法

● 以下方法以java.lang.Integer为例

public static final int MAX_VALUE 最大的int型数(231-1)

public static final int MIN_VALUE 最小的int型数(-231)

构造方法

Integer(int a); Integer(String a);

比较方法

static int compareTo(Integer a); boolean equals(Object); int max(int a,int b); int min(int a,int b);

Integer源码

//Integer继承了Number类,实现了Comparable接口,意味着Integer可以进行比较
public final class Integer extends Number implements Comparable<Integer> {
    @Native public static final int   MIN_VALUE = 0x80000000; //Integer最大值
    @Native public static final int   MAX_VALUE = 0x7fffffff; //Integer最小值
    //有参构造1
    public Integer(int value) {
        this.value = value;
    }
    //有参构造2
    public Integer(String s) throws NumberFormatException {
        this.value = parseInt(s, 10);
    }
    //toString()方法
    public String toString() {
        return toString(value); //此方法里是核心代码,在源码中实现的
    }
    //重写Object中的equals()
    public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }
    //compareTo()
    public int compareTo(Integer anotherInteger) {
        return compare(this.value, anotherInteger.value);//此方法在核心代码中实现
    }
    //常用的求最大值
    public static int max(int a, int b) {
        return Math.max(a, b);//调用Math类中的max()
    }
    //求最小值
    public static int min(int a, int b) {
        return Math.min(a, b);
    }
}

转换方法

static toBinaryString(int i); static String toHexString(int i); static String toOctalString(int i); int intValue(); static int parseInt(String s); String toString(); static Integer valueOf(int i) static Integer valueOf(String s)

Object类

概述

Object类是所有Java类的祖先(根基类)。每个类都使用Object作为超类(父类)。所有对象(包括数组)都实现这个类的方法。

● 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类 public class Person { ... } 等价于: public class Person extends Object { ... }

在API文档中Object类提供了11种方法,在JavaSE现阶段最常用的俩种方法toString()和equals()

toString方法

API描述


public String toString()


返回对象的字符串表示形式。一般来说, toString方法返回一个“textually代表”这个对象的字符串。结果应该是一个简明扼要的表达,容易让人阅读。建议所有子类覆盖此方法。

toString类方法Object返回一个由其中的对象是一个实例,该符号字符的类的名称的字符串@` ”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:

getClass().getName() + '@' + Integer.toHexString(hashCode())

  • 结果
    对象的字符串表示形式。

在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象类的toString()方法 可以根据需要在用户自定义类型中重写toString()方法,Java开发工具IEDA可以在类中根据需要选择类中的属性,快速生成toString().

注:如果类中不重写toString(),则在输出此类的对象时,会调用Object类中的toString(),输出的是对象地址

equals方法

API描述

public boolean equals(Object obj)

  • 指示一些其他对象是否等于此。
    equals方法在非空对象引用上实现等价关系:
  • 自反性 :对于任何非空的参考值xx.equals(x)应该返回true
  • 它是对称的 :对于任何非空引用值xyx.equals(y)应该返回true当且仅当y.equals(x)回报true
  • 传递性 :对于任何非空引用值xyz ,如果x.equals(y)回报truey.equals(z)回报true ,然后x.equals(z)应该返回true
  • 它是一致的 :对于任何非空引用值xy ,多次调用x.equals(y)始终返回true或始终返回false ,没有设置中使用的信息equals比较上的对象被修改。
  • 对于任何非空的参考值xx.equals(null)应该返回false

equals类方法Object实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空的参考值xy ,当且仅当xy引用相同的对象( x == y具有值true )时,该方法返回true

请注意,无论何时覆盖该方法,通常需要覆盖hashCode方法,以便维护hashCode方法的通用合同,该方法规定相等的对象必须具有相等的哈希码。

  • 参数
    obj - 与之比较的参考对象。
  • 结果
    true如果此对象与obj参数相同; false否则。

equals和==的区别

俩者都是用来比较的,

==可以用来比较基本数据类型和引用数据类型,比较引用类型时,是比较俩个对象地址,所以结果均为true(除非比较的是同一个对象);

equals(Object obj)只能用来比较引用数据类型,Object类中提供的equals(Object obj)还是用==实现的,这样的话只能比较对象地址,我们一般的需求是比较其值是否相同,所以要根据需要进行重写.Java中的很多类比如经常用的String类已经重写了equals(Object obj),所以我们可以直接用。

java封装调用第三方接口参数 java接口封装成api_包装类

这是Object equals方法源码,使用==实现。