码迷,mamicode.com
首页 > 其他好文 > 详细

2015-08-06 异常、常用类

时间:2015-08-06 12:45:43      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

异常:五个关键字 和 两个结构;先捕获小异常再捕获大异常

  两个结构:
    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;//总金额

}

 

 

 

 

 

 

 

 

 

 

2015-08-06 异常、常用类

标签:

原文地址:http://www.cnblogs.com/xiedz/p/4707293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!