JAVA _JDK5的特性

来源:互联网 发布:手机淘宝写追评句子 编辑:程序博客网 时间:2024/06/06 11:36

for-each 循环

=====================================

  * 数组遍历、集合迭代遍历

    的语法简化

  * 数组

      for(int i=0;i<a.length;i++) {

        String s = a[i];

        // 处理 s

      }

       

      for-each简化语法: 

          for(String s : a) {

            // 处理 s

          }

  * 集合

      

      for(Iterator<String> it = list.iterator(); it.hasNext();) {

        String s = it.next();

        // 处理 s

      }

      

      for-each简化语法: 

          for(String s : list) {

            // 处理 s

          }

 

可变长参数

=====================================

  * 对数组参数的语法简化

  * 本质是数组 

    void f(int[] a) {

      // 处理数组 a

    }

    

    f(new int[]{5,23,5,4,2});

    f(new int[]{});

    ----可变长参数---- 

    void f(int... a) {

      // 处理数组 a

    }

    f(2,4,1,2,5);

    f(2,5,5,3,32,2,6,7,8,4,3,345,5);

    f(2);

f();

泛型

=====================================

  * 是一种类型参数 

      class A<T> {

          T t;

          void f1(T t) {

          }

          T f2() {

          }

      }

      

      A<Date> a = new A<>();

  * 泛型不支持基本类型

 

枚举 enum

=====================================

  * 一组固定选项

  * enum 代替 class关键字 

      enum Type {

          COLD, HEAT, NUCLEAR

      }

      *) 这三个选项,

         本质是 Type 类型的对象 

            class Type {

              public static final Type COLD = new Type();

              public static final Type HEAT = new Type();

              public static final Type NUCLEAR = new Type();

            }

 

异常

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

* 封装错误信息的对象

*) 类型名称

*)提示消息

*)行号

* 继承结构

Throwable

|Error  系统即错误  java运行时环境出现的错误,如:JVM内存资源耗尽

|Exception可修复的错误,网络故障、文件损坏、输入非法等导致的错误

|— 其他Exception

|RuntimeException

|NullPointerException

|ArrayIndexOutOfBoundsException

|ArithmeticException

|NumberFormatException

|InputMismatchException

* 捕获异常

*) 目的:当异常发生时妥善的终止程序,避免灾难性后果发生

*) a具体操作:1)通知:向用户通知异常的发生

  2) 恢复:保存重要数据、关闭文件,回滚事务等

  3退出:以恰当的形式退出程序

Try{

可能抛出异常的代码

} catch (AException e){// 捕获AException类型的对象, 赋给变量e

getMessage() 得到有关异常事件的信息

printStackTrace() 跟踪异常事件发生时执行堆栈内容

在这里修复异常,使程序继续执行

} finally {

不论出不出错都执行

}

* RuntimeException

 有默认抛出管道

*) RuntimeException 及其子类型 都可以从默认管道抛出

*) 其他Exception要添加抛出管道才能抛出, 如果不添加管道,必须捕获

*  throws

*) 添加指定异常的抛出管道

*) 程序中会定义许多方法,这些方法中可能会因某些错误而引发异常,但是我们不希望直接在这个方法中处理这些异常,而希望调用这个它的方法来统一处理,这时候我们可以使用“throws”关键词来声明这个方法将会抛出异常

Void f() throws AException,BException {

}

*

* throw

  手动抛出异常对象

AException e = new AException();

throw e;

*  异常包装

捕获到一个异常对象,  然后封装在另一个异常对象中,  再抛出

 

*  自定义异常

*) 自定义异常类型,来表示业务相关的异常

ZhuanZhangException

UsernameNotFoundException

WrongPasswordException

*) 步骤:

1)  起名字  (最好能通过名字看出是什么异常)

2) 继承一个合适的父类型

3) 添加合适的构造方法

0 0
原创粉丝点击