#知识点总结第四篇 1.Java中导致程序中断运行的错误称为异常 2.Exception异常分为可查异常和不可查异常两种,且不可察异常一般为RuntimeException和它的子类异常,其他都是可查异常 3.并不是所有的异常我们都要捕获,我们只用关心有关程序运行还有程序的逻辑性的异常 3.一个try语句可以有多个catch与之对应,换句话说可以捕获多个异常eg:
try {
//可能会发生异常的代码
}
catch (异常类型1 e) {
//捕获并抛出try产生的异常类型为1的程序代码
}
catch (异常类型2 e) {
//同上
}
catch (异常类型3 e) {
}
finally {
//对try语句做最后的处理,无论是否抛出异常都要执行
}
注意:有catch的时候finally可要可不要,但是如果没有catch的时候,finally必须有! 4.异常也是一个类,我们也可以写自己定义的异常,只需要继承Throwable类或者Exception类,重写父类的构造方法和getMessage方法。 eg:
class myException extends Exception {
String news;
public myException(String news) {
this.news = news;
}
@Override
public String getMessage() {//重写父类的getMessage方法
return news;
}
}
5.throw和throws的区别在于 1.throws是向上抛出,一般用于方法内当前方法发现异常不做处理,而是抛给上一级方法; 2.throw则是在当前方法或者域内对返现的异常进行抛出处理。 6.Throwable和Exception的区别 1.Throwable是父类,Exception是子类 2.throwable用来定义所有可以作为异常抛出的类,而Exception专指程序本身可以处理的异常,一般性的异常 7.程序在运行的时候会自动抛出系统定义的异常,异常的抛出顺序和catch的顺序有关 8.Java常用的类包: 1.java.lang 2.java.io 3.java.util 9.String字符串创建的字符串是常量(不可以被修改),创建后不能改变;但是Stringbuffer创建的是缓冲区,字符串可以改变 10.String对象使用了concat等方法后其本身并未改变,只不过方法返回了一个新的字符串 11.由于String创建的是字符串常量,也就是说同样的字符串内容相当于创建了一个字符串对象 12.字符串常用的方法 1.charAt(int index) 返回指定索引的char值 2.compareTo(String str) 返回第一个不相等字符的ASCII差值,也就是说两字符串相等返回0,第一个字符串的字典序大于第二个返回正数,否则返回负数 3.concat(String str) 将字符串str链接到当前字符串的末尾,但是当前字符串并未改变,而是创建了一个新的字符串返回 4.equals(Object obj) 相同返回true,否则返回false 5.indexof(String str) 返回当前串第一次出现的str的索引 6.split(String str) 按照正则表达式拆分字符串 7.append(String str) 在当前字符串末尾添加str(Stringbuffer的方法),并且当前字符串内容改变 13.Stringbuffer是线程安全的,Stringbuilder是线程不安全的,Stringbuffer的速率慢于Stringbuilder 14.next读入的是一个字符串但是遇到空格或者回车就会停止读入,想要以回车最为分隔符可以使用nextLine方法 15.数学类常用的方法有 1.random() 产生随机数的 2.pow() 乘幂 3.sqrt()平方根 4.abs()取绝对值 5.max()、min() 求最大最小值 16.日期类Date,内置的常用方法 1.boolean after(Date d)
测试此日期是否在指定日期之后 2.boolean before(Date d)
测试此日期是否在指定日期之前 3.int cmpareTo(Date d)
比较两个时间的顺序 4.long getTime()
返回自GMT1970年1月1日00:00:00以来,到此对象的毫秒数 17.包装类弥补了基础数据类型没有对象特征的不足,当我们在使用后面的一些集合的时候就不能使用基础数据类型,而是用与之对应的包装类进行 18.八大包装类 Integer(int) 、Long(long)、Short(short)、Byte(byte)、Character(char)、Double(double)、Float(float)、Boolean(boolean)、BigInteger、BigDecmail 其中BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数,BigDecimal支持任意精度带小数点的运算。