说明:这是2007年复习SCJP期间的学习笔记(JavaSE 5.0),有部分遗失。现在整理一下发到Blog上,一方面做个备份,另一方面分享出来,希望对需要的人有用。
------------------------------
第五部分 流程控制、异常和断言
1、switch表达式结果必为char\byte\short\int,使用其它任何类型都不能编译。
Case必须是编译时常量,否则编译时错误:
fianl int a; a=10; //不是编译时常量,改为fianl int a=10;
switch(x){case a: break;} //报错
包装器和final包装器都不认为是编译时常量:
final static Integer x=1;
…… case x: break; //编译失败。
2、注意switch—case的范围:
byte g=2;
switch(g){
case 128: //编译失败,byte范围到127。
}
3、switch块中的直落:
如果case中省略break,那么将继续执行case下面的case.
default如果放在最后,那么 default执行后也将继续直落。
4、try块中一旦出现异常,则其余代码将不再执行,一旦跳转到catch,永远不能返回try内的其余代码。
finally总会执行,即使try块中有return,finally也能在遇到return之前执行。
可以只有try-finally没有catch块。
异常总是java.lang.Exception的某个子类。两个子类派生于Throwable—Exception和Error。Error不必被处理,它不是异常,不继承Exception类。RuntimeExcepion代表异常的一种特例,表示程序错误等少见且难以处理的异常。
Exception\Error\RuntimeExceptoin\Throwable都能够通过throws关键字抛出和捕获。
5、具体异常的处理需要放在一般异常的上面,否则编译失败。
6、如果方法声明了抛出检查异常,在方法内部就不需要捕捉该异常,但调用该方法的代码需要用try-catch捕捉异常或者也抛出异常。
运行时异常称为非检查异常,及从RuntimeException继承而来的异常。运行时异常无须捕获。
Error或Error子类可以抛出,但它是非检查的,无须捕获,但可以捕获到。
7、如果从catch中再重新抛出捕获的异常,则必须在方法上声明该异常。
8、常见异常:
ArrayIndexOutOfBoundsException数组越界访问异常。
ClassCastException引用变量类型转换异常。
NumberFormatException把String转换为数值时String格式异常。
AssertionException布尔测试返回false时抛出。
9、断言:assert(y>x):”y>x”; //测试为真时什么也不发生,测试为假抛出AssertionException.
合法断言:
assert true;
assert (x==1):x; //int x=1;
assert (x==1): returnOne();
assert (x==1): new ValidAssert();
不合法断言:
assert (x=1); //必须为布尔表达式
assert 1; //true != 1 ,this isn’t C
assert (x==1):
assert (x==1):returnNo(); //must return.
assert (x==1):ValidAssert va; //must a Object;
10、Java1.3版断言可以作为变量声明,但不可以作为关键字,assert true将编译失败。
Java1.4版以上断言成为关键字,但不能声明为变量名称。
11、重写方法可以声明:相同异常、更加有限的异常、不声明异常、非检查(运行时)异常。
12、void doStuff() throws Exception{
throw new Exception(); //不需要try-catch.
}
13、被重写方法声明异常,虽然重写方法不声明异常,但默认为声明和重写方法相同的异常。
14、break\continue只与循环上的标签协同工作,否则编译失败。
15、嵌套try-catch-finally使用同常规一样。
16、javac A.java //编译A.java文件
java A 1 2 //执行A程序,不是java A.java,带两个参数:1和2,A不算参数。
分享到:
相关推荐
这份"SCJP1.4考试笔记大整理"包含了丰富的学习资料,帮助考生更好地理解和准备这个认证考试。 一、Java基础知识 SCJP考试主要测试的是Java的基础知识,包括语法、类和对象、异常处理、多线程、内存管理等。考生需要...
2. **学习笔记**: "scjp_amay's notes for 1.4.doc"可能是一位名叫Amay的学习者针对Java 1.4版本的SCJP考试整理的笔记,这个版本可能包含对当时Java语言特性的详细解析,例如原始类型、字符串常量池、异常处理机制等...
根据提供的文件信息,我们可以整理出一系列关于SCJP(Sun Certified Programmer for the Java Platform)认证考试中的关键知识点。这些知识点覆盖了Java语言的基础概念、数据类型、面向对象编程原则、异常处理等多个...
首先,"notes for scjp(1.4).doc"可能是一个关于Java 1.4版本的笔记,这涵盖了Java语言的基础,包括语法、数据类型、流程控制、异常处理、类和对象、包、接口等。Java 1.4是较早的版本,但基础概念对于理解后来的...
【JAVA认证-SCJP阅读笔记】是一份详细整理的备考SCJP(SUN Certified Java Programmer)的资料,涵盖了Java编程的基础知识。以下是笔记中的主要内容: 1. 合法的程序入口点(Main)与命名规则: - 主方法(main)...
以下是我根据"scjp考试笔记"的标题和描述整理的一些关键知识点: 1. **Java语言基础**: - **数据类型**:包括基本数据类型(整型、浮点型、字符型、布尔型)和引用数据类型(类、接口、数组)。 - **变量**:...
### SCJP 笔记与疑问整理 #### 阵列初始化 1. **正确初始化:** `int[] a = {1, 2, 3};` 正确地声明并初始化了一个整型数组,其中包含了三个元素1、2和3。 2. **匿名数组:** - `int[] a = new int[]{1, 2, 3};` ...
4. **复习笔记**:复习笔记通常是考生或教师整理的重要知识点摘要,易于查阅和记忆。笔记可能包括关键术语、代码示例和重要概念的解释,对考生巩固学习非常有帮助。 5. **常见问题**:这部分可能包含了考生在备考...
首先,笔记.doc很可能是考生在学习过程中整理的精华内容,包括关键概念、语法和常犯错误的总结。这部分可能涵盖了类和对象、封装、继承、多态性、异常处理、内存管理(如垃圾回收)、IO流、线程、集合框架、反射等...
4. **重点笔记**:这些笔记可能由已经通过考试的人整理,他们将关键知识点提炼出来,便于快速复习。 5. **实战代码示例**:通过实际的代码示例,考生可以更好地理解和掌握Java编程实践,包括如何编写有效且高效的...
4. **复习笔记**:重点难点的整理,方便快速回顾。 5. **实例代码**:实践案例,加深对理论知识的理解。 6. **视频教程**:通过视频形式讲解各个主题,使学习更直观。 7. **闪卡或记忆卡片**:用于记忆关键概念和API...