常用API和异常

常用API和异常

工具类的设计思想

1.构造方法用private修饰 //防止外界创建对象

2.成员用public static修饰

Math

java.lang包下

Math类概述

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

没有构造方法。如何调用类中的成员?

看类的成员是否都是静态的,如果是,通过类名就可以直接调用

Math类的常用方法

public static int abs(int a);//返回参数的绝对值
public static double ceil(double a);//返回大于或等于参数的最小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的正值,[0.0,1.0)   (随机数)

System

java.lang包下

System类概述

System包含几个有用的类字段和方法,它不能被实例化

System类的常用方法

public static void exit(int Status);//终止当前运行的Java虚拟机,非零表示异常终止
public static long currentTimeMills();//返回当前时间(以毫秒为单位)

Arrays

java.util包下

Arrays类概述

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

Arrays类常用方法

public static String toString(int[] a);//返回指定数组的内容的字符串表示形式
public static void sort(int[] a);//按照数字顺序排列指定的数组

Object

objcet常用方法

public String toString();//返回对象的字符串表示形式,建议所有子类重写该方法,自动生成
public boolean equals(Object obj);//比较对象是否相等。默认比较地址,重写可以比较内容,自动生成

日期类

Date

java.util包下

Date类概述

Date代表了一个特定的时间,精确到毫秒

Date类构造方法

public Date();//分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
public Date(long date)//分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

Date类的常用方法

public long getTime();//获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值
public void setTime(long time);//设置时间,给的是毫秒值

SimpleDateFormat

java.text包下

SimpleDateFormat概述

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期

日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从 'A' 到 'Z' 以及从 'a' 到 'z' 引号的字母被解释为表示日期或时间字符串的组件的模式字母

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

y 年

M 月

d 日

H 时

m 分

s 秒

SimpleDateFormat的构造方法

public SimpleDateFormat();//构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern);构造一个SimpleDateFormat使用给定的模式和默认的日期格式

SimpleDateFormat格式化和解析日期

1.格式化(从Date到String)

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

2.解析(从String到Date)

public Date parse(String source);//从给定字符串的开始解析文本以生成日期

Calendar

在java.uitl包下(抽象类)

Calendar类概述

Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

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

//获取对象
Calendar rightNow =Calendar.getIlnstance();

Calendar的常用方法

public int get(int field);//返回给定日历字段的值
public abstract void add(int field,int amount)//根据日历的规则,将指定的时间量添加或减去给定的日历字段

异常

异常概述

异常:就是程序出现了不正常的情况

 

Error:严重问题,不需要处理

Exception:称为异常类,它表示程序本身可以处理的问题

RuntimeException:在编译期间不检查的,出现问题后,需要我们回来修改代码

非RuntimeException问题:编译期就必须处理的,否则程序不能提供编译,更不能正常运行

JVM的默认处理方案

如果程序出现了问题,我们没有做任何处理,最终JVM会做默认的处理

1.把异常的名称,异常原因和异常出现的位置等信息输出在控制台

2.程序结束运行

异常处理

如果程序出现了问题,我们需要自己来处理,有两种方案

1.try... catch ...

2.throw

异常处理之try...catch...

try{
    可能出现的异常代码;
}catch(异常类名 变量名){
    异常的处理代码;
}

执行流程

程序从try里面的代码开始执行

出现异常,会自动生成一个异常类对象,该异常对象将会被提交给Java运行时系统

当Java运行时系统接受到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理

执行完毕后,程序可以继续往下执行

异常处理之throws

不是所有的情况我们都有权限进行异常的处理,有些时候可能出现的异常是我们处理不了的

针对这种情况,Java提供了throws的处理方案

格式:

throws 异常类名;
//注意:这个格式是跟在方法的括号后面的

编译时异常必须要进行处理,两种处理方案:try..catch...或者throws,如果采用throws这种方案,将来谁调用谁处理

运行时异常可以不处理,出现问题后,需要我们回来修改代码

Throwable的成员方法

public String getMessage();//返回此throwable的详细消息字符串
public String toString();//返回此可抛出的简短描述 
public void printStackTrance();//把异常的错误信息输出在控制台

编译时异常和运行时异常的区别

Java中的异常被分为两大类:编译时异常运行时异常,也被称为受检异常非受检异常,所有的RuntimeException类及其子类被称为运行时异常,其他异常都是编译时异常

编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译

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

自定义异常

只要类继承自RuntimeException类或者Exception类,所定义类就是异常体系的一员

格式:

public class 一次类名 extends Exception{
    无参构造;
    带参构造;
}

范例

public class ScoreException extends Exception{
    public ScoreException(){}
    public ScoreException(){String message}{
        super(message);
    }
}

throws和throw的区别

throws:

用在方法声明后面,跟的是异常类名

表示抛出异常,有方法的调用者来处理

表示出现异常这是一种可能性,并不一定会发生这些异常

throw:

用在方法体内,跟的是异常对象名

表示抛出异常,由方法体内的语句处理

执行throw一定抛出了某种异常

补充

finally

finally表示无论程序是否出现异常,它都会执行,通常用于做一些清理工作,如数据库连接关闭

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值