【API和异常(总结版)】

java中有很多常用的API,它们提供了便捷的使用方法和工具类,让我们来看一看java中常用的API吧。

1.math类:

它包含基本的数字运算方法,如对数、指数、平方根和三角函数等,一般数据类型为double(也有int型)

但是它没有构造方法,有static进行修饰(如果类的成员都是静态的则通过类名就可以直接调用。)

math类中的常用方法:

math类的常用方法
方法名说明
public static int abs(int a)返回参数的绝对值
public static double ceil(double)返回大于等于参数的最小double值相当于一个整数
public static double floor(double a)返回小于等于参数的最小double值相当于一个整数
public static int round(float a)按照四舍五入取最接近参数的int值
public static int max(int a ,int b)返回两个int值中的较大值
public static int min(int a, int b)返回两个int值中的较小值
public static double pow(double a,double b)

返回a的b次幂

public static double random()返回值为double的正值

除此之外还有不太常见但十分有用的几个方法:

方法名说明
public static double sqrt(double number)返回值是参数的double型平方根
public static double cbrt(double number)返回值是参数的double型立方根
public static double exp(double x)返回值是double的e的x次方
public static double nextUp(Type x) 返回比x大一点的double型浮点数
public static double nextDown(Type x)返回比x小一点的double型浮点数
public static double nextAfter(Type x,Type y)返回x和y间与x相邻的浮点数

2.system类:

它包含n个方法和字段,不能被实例化。

System中代表程序所在系统,提供了对应的一些系统属性信息和系统操作。

System作为系统类,在JDK的java.lang包中,可见它也是一种java的核心语言特性。System类的构造器由private修饰,不允许被实例化。因此,类中的方法也都是static修饰的静态方法。

System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)
 

常用方法如下:

system类常用方法
方法说明
public static long currentTimeMillis()返回以毫秒为单位的当前时间
public static  void exit(int status)结束当前运行的java虚拟机,非0表示异常终止

object类:它是类层次结构的根类(老祖宗),java中所有子类都会继承object中的public方法

构造方法如下:public object()构造一个新对象

常用方法:

object的常用方法

public final native Class<?> getClass();(注:还未学到)

final 方法、获取对象的运行时 class 对象,class 对象就是描述对象所属类的对象。这个方法通常是和 Java 反射机制搭配使用的

public boolean equals(Object obj)

用于比较两个对象,如果这两个对象引用指向的是同一个对象,那么返回 true,否则返回 false。一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法
public String toString()返回对象字符表现形式(代表对象的字符串),一般要重写此方法

protected native Object clone() throws CloneNotSupportedException;(注;还未学到)

该方法是保护方法,实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出 CloneNotSupportedException 异常。
默认的 clone 方法是浅拷贝。所谓浅拷贝,指的是对象内属性引用的对象只会拷贝引用地址,而不会将引用的对象重新分配内存。深拷贝则是会连引用的对象也重新创建

public final native void notify();(注:还未学到)

final 方法,主要用于唤醒在该对象上等待的某个线程

public final native void notifyAll();(注:还未学到)

final 方法,主要用于唤醒在该对象上等待的所有线程

public final void wait() throws InterruptedException { wait(0);}

以看到 wait() 方法实际上调用的是 wait(long timeout) 方法,线程调用wait(0)的话,线程会无限等待,直到有其它线程调用notify()或者notifyAll()把它唤醒

protected void finalize() throws Throwable { }(注:还未学到)

该方法是保护方法,主要用于在 GC 的时候再次被调用,如果我们实现了这个方法,对象可能在这个方法中再次复活,从而避免被 GC 回收。

3.Arrays类:

包含用于操作数组的各种方法;

构造方法用private修饰,成员方法用public修饰

常用方法如下:

arrays常用方法及调用
public static string toString(int [ ]a)返回指定数组的字符串表现形式
public static void sort(int[ ]a)按数字顺序排列指定数组

Arrays.asList

数组转list集合

Arrays.binarySearch

二分查找法:查询数组中是否包含这个元素,如果包含返回该元素的索引值,如果不包含返回一个负数(使用二分查找法时先对数组进行排序)

Arrays.copyOf(boolean[] original, int newLength)

复制数组(以布尔型数组举例),original 原数组,newLength 新数组的长度

Arrays.copyOfRange(boolean[] original, int from, int to)

指定数组索引开始和结束的范围复制数组(以布尔型数组举例),original 原数组,from 从此处索引开始, to 从此处索引结束,注意这里,包括from,不包括to

Arrays.equals(arr1,arr2);

比较两个数组是否相等

system.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

复制数组的另一种方法,同样也是索引开始和结束的范围复制数组,src 原数组名 、srcPos 起始下标、 dest 新数组名、destPos 起始下标、length 复制长度

4.日期类:就是字面意思

构造方法:Date() 分配一个Date对象并对其进行初始化以便它表示分配的时间

                  Date(long date)分配一个Date对象并将其初始化为标准的基准时间即1970年1月1日 00:00:00GMT起的制定毫秒数。

常用方法:

Date类的常用方法
方法说明
public long getTime()获取对象从基准时间到现在的毫秒值
public void setTime()设置时间,给的毫秒值

5.SimpleDateFormat类:

它是一个具体的类,用以区域设置敏感的方式格式化和解析日期,日期和时间的格式由日期和时间模式的字符串指定,在日期和时间模式字符串中,从“A”到“Z”,以及从‘a’到‘z’的引号的字母被解释为日期或者时间字符串组建的模式字母。

常用模式字母及对应关系如下:

y
m
d
h;m;s时;分;秒

格式化:(从Date到String)

①public final String format(Date date):将日期格式化成日期/时间的字符串

解析:

②public date parse(String source):从给定的字符串开始解析文本以生成日期。

例如:

 Calendar:为某一时刻和一组字段之间的转换提供了一些方法,并为其操作日历字段提供了一些方法。注:Calendar为抽象类,抽象类的特征详情请看 此篇——抽象类和接口

Calendar的用法:Calendar提功了一个类方法getinstance用于获取Calendar对象,其日历字段已使用当前日期和时间的初始化:

格式如下:

Calendar c = Calendar.getInstance();

获取日期的范例:

package API;
//获取当前日期

import java.util.Calendar;

public class Date_Example {
    public static void main(String[] args) {
        Calendar c=Calendar.getInstance();
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;//同数组一样从零开始但实际上不存在0月故+1;
        int date=c.get(Calendar.DATE);
        System.out.println(year+"年\t"+month+"月\t"+date+"日");
    }
}

Calendar常用的日期字段:

Calendar常用的日期字段
日历字段value
YEAR当前年份
        MONTH当前月份(同数组一样从零开始但实际上不存在0月故+1)
DATE一个月中的某天
WEEK_OF_YEAR当前年中的第几个星期
WEEK_OF_MONTH当前月中的第几个星期
SECOND一分钟中的第几秒
DAY_OF_YEAR一年中的第几天
DAY_OF_MONTH一个月中的第几天
DAY_OF_WEEK一个周中的第几天
DAY_OF_WEEK_IN_MONTH当前月中的第几个星期(注:当前月第1-7天是第一个星期,8-14是第二个星期,以此类推)
HOUR_OF_DAY一天中的第几小时
MINUTE一小时中的第几分钟
MILLISECOND一秒中的第几毫秒

Calendar的常用方法:

在创建日期对象之后:以Calendar c = Calendar.getInstance();为例

Calendar的常用方法
方法说明

c.set(year,month,date,……);

也可以单个字段进行设置:

例如:c.set(Calendar.YEAR ,2022);

设置时间(set():单纯的设定日期,如果设定的日期不存在的话,他会向下移动。)
c.add(Calendar.SECOND,1);

计算时间(但add 时间时,会将不存在的日期归为当月日历的最后一天,此外,与 set() 不同,add() 强迫日历系统立即重新计算日历的毫秒数和所有字段。正值加设定时间,负值倒推)

 

异常:

异常是指出现了不正常的情况,大致分为两种,一种是Exception:称为异常类,他表示程序本身可以处理的问题:分为RuntimeException和非RuntimeException

其中RuntimeException:在编译期间是不检查的回来修改代码

非RuntimeException:编译期间必须处理,否则无法通过编译。

一种是Error:严重问题,程序本身无法处理的问题。

异常处理必要性:

减少用户的损失、同时也减少给用户带来的不必要的麻烦;也可以利用异常处理给与用户一些提示
JVM的默认处理方法:

如果程序出了问题但程序员没做任何处理,

①JVM会把异常的名称、位置、原因等信息输出在控制台;

②程序停止执行。
处理异常的方法:

处理异常一般有try……catch和throws两种方法,两种方法所针对的情况有所不同:

try……catch:格式如下:

try{可能出现异常代码;

}catch(异常类名 变量名)

{异常的处理代码;}

执行流程:程序从try里面的代码开始,如果出现异常,该异常对象将被提交给java运行时系统,当java运行时系统接收到异常对象时,会在catch中去匹配异常类,处理完毕后继续往下执行程序。

throws:

格式:方法括号后 +throws 异常类名

例如:public static void method() throws 异常类名

特点:仅仅是抛出异常(运行时的异常)
常见的异常类名:
常见的异常 异常类名    说明
ArithmeticExecption    算数异常类
NullPointerException    空指针异常
ClassCastException    类型强制转换异常
NegativeArrayException    数组负下标异常
ArrayIndexOutOfBoundsException    数组下标越界异常
SecturityException    违背安全原则异常
EOFException    文件已结束异常
FileNotFoundException    文件未找到异常
NumberFormatException    字符串转换数字异常
SQLException    操作数据库异常
IOException    输入输出异常
NoSuchMethodException    方法未找到异常
ava.lang.AbstractMethodError    抽象方法错误异常
throwable:所有错误的根类
成员方法    说明
……Sting getMessage();    返回throwable的详细信息字符串
……String toString();    返回可抛出的简短描述
……void printStackTrace();    把异常的错误信息输出在控制台

编译时异常:必须显示处理,否则无法通过编译;

运行时异常:无需显示处理,也可以和编译时异常一样处理。
自定义异常:

public class 异常类名 extends Exception{

无参构造or带参构造}

例子:

    public clas ScoreException extends EXception{
        public ScoreException(){};
        public ScoreException(String message){
        super(message);}
    }


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值