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