标签:
异常:五个关键字 和 两个结构;先捕获小异常再捕获大异常
两个结构:
1. Throwable
Error 表示错误
Exception 异常
2.Exception
RuntimeException(包括其子类)
非RuntimeException(Checked异常)
五个关键字:
try、catch、finally、throws、throw
1 try{ 2 3 //存放可能出现异常代码 4 }catch(异常类 变量) 5 { 6 处理异常 7 }finally{ 8 //最后会执行的代码 9 }
异常的分类:
1. RuntimeException(包括其子类)
特点: 编译时不检查,在运行期才去检查
2. 非RuntimeException(Checked异常)
特点: 编译时就会检查,
两种处理方式:
1. 在该代码所在方法上 声明跑出异常 throws
2. 把该代码try{ // here //}catch(Exception e){}
在方法上 声明抛出异常:方法后的圆括号后面 throws 异常类A,异常类B
表明该方法不处理A,B异常,而是交给该方法的调用者去处理;
JVM默认的处理方式:
Throwable:
void printStackTrace();//获取异常信息和 异常类型 异常的位置
System.out.println(printStackTrace());//ERROR
String getMessage();//得到的异常信息
String toString(); //获取异常信息和 异常类型
throw:
throw 异常对象;
若 throw 抛出的是 runtime异常: 所在的方法上不需要声明抛出
若 throw 抛出的是 非runtime异常: 所在的方法上必须声明抛出异常;
常用类:
String: 表示不可变的类,非常常用:
判断创建了几个String对象: 1个或两个
String s = new String("OOXX");
若常量池里已经存在"OOXX",那么直创建一个String对象
若常量池里没有"OOXX",那么先在常量池创建"OOXX",再在堆里创建一个String对象;
String s = "A"+"B"+"C";
编译的时候,把"A"+"B"+"C",转成了 "ABC";
String s2 = s + "AA";在运行期的时候会创建"ABCAA"
常用方法参见API ;
StringBuffer/StringBuilder:
表示可变的字符串;
StringBuffer/StringBuilder区别:
StringBuffer:线程安全的,适合用于多线程中,但是性能低一点;
StringBuilder(java5): 线程不安全的,适合用于单线程中,性能高一点; 官方推荐使用的
append(Object o):表示在其对象的内容后面追加新的内容,适用于 拼写字符串,其性能远远高于String;
常用方法参见API ;
Math:封装了数学上的很多公式,算法那些;
常量: double e = Math.E; double pi = Math.PI;
伪随机数: Math.random();//生成[0.0,1.0)之间的一个随机数
静态导入: 导入的是一个类里面的静态成员:
import static java.lang.Math.PI;
import static java.lang.Math.*;
Random:
new Random().nextXxx(int max);//表示[0,max)之间的一个伪随机数
UUID:表示128位的唯一的字符串
UUID uuid = UUID.randomUUID();
String uid = uuid.toString();
适合用于做数据库的主键;
BigInteger:大整型。
创建对象: new BigInteger(String val);
BigInteger add(BigInteger otherVal);
BigInteger subtract(BigInteger val)
BigInteger multiply(BigInteger val)
BigInteger divide(BigInteger val)
BigDecimal: 可表示任意精度的数据.
new BigDecimal(double val);//依然不能精确表示数据
new BigDecimal(String val);//才能精确,适合用于财务金钱,精度要求高的数据
BigDecimal add(BigDecimal otherVal);
BigDecimal subtract(BigDecimal val)
BigDecimal multiply(BigDecimal val)
BigDecimal divide(BigDecimal val)
{
private BigDecaimal total;//总金额
}
标签:
原文地址:http://www.cnblogs.com/xiedz/p/4707293.html