API概述

API

一、定义

**API:**应用程序编程接口

**简单理解:**API就是别人已经写好的东西,我们不需要自己编写,直接使用即可。

例如随机数:

public static void main(String[] args)
{
	Random r = new Random();
	int number = r.nextInt(100);
}

**Java API:**指的就是JDK中提供的各种功能的Java类

这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

二、object类

object类介绍

  • 所有的类,都直接或间接的继承object类(祖宗类)
  • Object类的方法是一切子类都可以直接使用的,所以我们要学习Object类的方法
1.toString方法
public String toString()//返回该对象的字符串表示

	public String toString(){
		return getClass().getName() + "@" + Integer.toHexString(hasCode());
	}

getClass().getName():全类名(包名+类名)

Integer.toHexString():转十六进制

hasCode():返回的是对象内存地址,哈希算法,算出来的整数(哈希值)

细节:使用打印语句,打印对象名的时候,println方法,源码层面,会自动调用该对象的toString方法、

public static String valueOf(object obj){
	return(obj == null) ? "null" : obj.toString();
}

Object的toString方法:

方法名说明
public String toString()默认是返回当前对象在堆内存中的地址信息:类的全类名@十六进制哈希值
  • 开发中直接输出对象,默认输出对象的地址其实是毫无意义的。
  • 开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是对象的地址信息

toString存在的意义

  • 父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息!!!
2.equals方法

Object类中的equals方法:

public boolean equals(Object obj)//对象之间进行比较,返回true,或者是false
    
    public boolean equals(Object obj)
	{
    	return (this == obj);
	}

结论:Object类中的equals方法,默认比较的是对象内存地址

​ -通常会重写equals方法,让对象之间,比较内容

重写equals方法

public boolean equals(Object obj){
	if(obj instanceof Student){
		//向下转型的目的,是为了调用子类特有的成员
		Student stu = (Student) obg;
		return this.age == stu.age && this.name.equals(stu.name);
	}else{
		return false;
	}
}

Object的equals方法:

方法名说明
public boolean equals (Object o)默认是比较当前对象与另一个对象的地址值是否相同,相同返回true,不同返回false

equals存在的意义

  • 父类equals方法存在的意义就是为了被子类重写,以便子类自己来定制比较规则。
快捷键重写equals方法解读
public boolean equals(Object o){
	//this:stu1
    //o:stu2
	if(this == o){
        //两个对象做地址值比较,如果地址相同,里面的内容肯定相同,直接返回true.
        return true;
    }
    
    //代码要是能走到这,代表地址肯定不相同
    if(o == null || this.getClass() != o.getClass()){
        //代表stu1肯定不是null
    	//stu1不是null,stu2是null,就直接返回false
        //this.getClass() != o.getClass():两个对象的字节码是否相同
        //如果字节码不相同,就意味着类型不相同,直接返回false
        return false;
    }
    //代码要是能够走到这,代表字节码相同,类型肯定相同
    //向下转型
    Student student = (Student) o;
    //比较
    return this.age == student.age && Object.equals(this.name,student.name);
}
3.Objects概述

Objects类与Object还是继承关系,Objects类是从JDK1.7开始之后才有的。

Objects的常见方法

方法名说明
public static boolean equals (Object a , Object b);比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常。再进行equals比较
public static boolean isNull(Object obj)判断变量是否为null
  • Object.equals方法,内部依赖于我们自己所编写的equals
  • Object.equals方法,内部带有非null判断

拓展:

||:左边为true,右边不执行

&&:左边为false,右边不执行

三、Math类

  • 包含执行基本数字运算的方法

Math类的常用方法

**注:**都是静态方法,直接用类名调用即可

四、System类概述

  • System的功能是静态的,都是直接用类名调用即可

常用方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-theFsynd-1680936792585)(…/…/AppData/Roaming/Typora/typora-user-images/image-20230407160841350.png)]

  • 第二个方法可以查看代码运行了多久
  • 返回1970年1月1日 0时0分0秒(C语言生日),到现在所经历过的毫秒值
  • 因为时差原因,各个地返回值不同

五、BigDecimal类概述

  • 用于解决小数运算中,出现的不精确问题

BigDecimal类使用

  • 创建对象

第一个不推荐使用,无法保证小数运算的精确

  • 常用方法


用于解决小数运算中,出现的不精确问题

BigDecimal类使用

  • 创建对象
    -在这里插入图片描述

第一个不推荐使用,无法保证小数运算的精确

  • 常用方法

在这里插入图片描述

[外链图片转存中...(img-DxTQKFAa-1680936792586)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值