《计算概论》课程 第十九讲 C 程序设计语言应用

Size: px
Start display at page:

Download "《计算概论》课程 第十九讲 C 程序设计语言应用"

Transcription

1 Java 高级技术 课程 Java 语言的高级特性 李戈 北京大学信息科学技术学院软件研究所 2010 年 4 月 3 日

2 异常与错误 错误 (Error) 程序中存在的不能满足预定义的需求 ( 语法需求 语义需求 ) 的成分 ; 错误是静态概念, 通常可以通过静态分析分离出来 ; 异常 (Exception) 异常就是指在程序运行过程中所发生的某些事件, 它中断了指令的正常执行流程 异常通常是指程序运行期间很少会发生的事件, 在程序运行期间才会产生 ;

3 异常处理机制 异常处理 (Exception Handling) 机制 用于管理程序运行期间所产生的异常的一种方法, 其目的是保证程序的控制不会由于异常的产生而随意跳转 异常处理机制通常包括异常的检测 报告与处理 在异常处理模式中, 重点考虑两个基本问题 : 必须确定由哪一个方法处理报告出来的异常 ; 引发异常的方法是否仍可在异常处理之后继续执行

4 异常处理模式 1 异常只能由调用者先处理 ; 当方法 R 中引发了异常时, 它仅能报告给方法 Q, 由 Q 处理 R 引发的异常 ; 处理过程中方法 Q 本身又可能引发某个异常并向方法 P 报告 ; 方法 P 处理完异常后可能唤醒方法 Q, 然后由方法 Q 再唤醒方法 R 异常处理模式

5 异常处理模式 2 异常处理模式 引发异常的方法 R 可以选择将异常报告给方法 P 又能够报告给 Q, 可由 P 或 Q 中的任一个处理异常并唤醒 R 第一种处理模式 程序更为结构化, 但处理效率可能比较低, 因为最适合处理该异常的程序可能处在调用链的最高层 第二种处理模式 程序结构变得复杂, 但可能处理效率比较高, 因为引发异常的方法可以直接选择最适合处理该异常的方法进行报告

6 Java 的异常处理机制 Java 异常处理机制 Java 语言只支持异常的逐层报告, 不支持异常的越级报告, 也不支持在处理异常之后重新唤醒被异常中断执行的方法 Java 语言将异常看作一种特殊的对象, 可以象其他对象一样被创建 创建异常对象是指创建标识发生了某种异常的对象, 以方便报告 捕获与处理 ; 创建异常对象不等于产生异常 ;

7 Java 异常的分类 (1) Java 语言的异常以类的层次结构组织, 类 Throwable 是所有异常类的祖先类, 它是根类 Object 的子类 类 Throwable 有两个子类 Exception 和 Error 类 Exception 及其后代类标识上述意义上的 异常, 即很少发生的一些特殊事件, Java 语言定义了类 Exception 的一个子类 RuntimeException, 用于标识 Java 程序在运行时可能会发生的一些常见的异常, 例如被 0 除 数组下标越界等 类 Error 及其后代类标识一些导致程序完全无法执行下去的 错误, 例如 : 耗尽内存资源,JVM 内部发生错误等, 这些错误当然也是一些很少会发生的事件, 但与异常不同, 被认为是 Java 程序完全无法恢复和处理的事件

8 自定义异常类 Java 异常的分类 (2) 程序员可以自定义异常类, 以标识在特定的应用程序环境下可能发生的异常 ; 对于自定义异常类, 程序员通常不将其定义为类 Throwable 的子类, 而将其作为类 Exception 的子类 public class OutOfMoney extends Exception { public OutOfMoney() { super("your account have not enough money!"); public OutOfMoney(String msg) { super(msg); public static void main(string[] args) { OutOfMoney obj = new OutOfMoney(); obj.printstacktrace();

9 Java 异常的分类 (2) 需要检查的异常 (checked exception) 指当一个方法体的语句会抛出该类型的异常时, 要么在这个方法中捕获该异常, 要么在方法体之前用如下形式的 throws 语句声明要抛出该类型异常, 否则会产生编译错误 : 返回类型方法名 (< 参数列表 >) throws < 异常类列表 > {... // 方法体 其中异常列表中给出该方法要抛出的异常类的名字, 抛出多个异常类时, 用逗号分隔

10 Java 异常的分类 (2) 无需检查的异常 (unchecked exception) 当一个方法体的语句会抛出该类型异常时, 不管该方法是否捕获该异常都不需要在方法体之前使用 throws 声明要抛出该类型的异常 类 Error 和 RuntimeException, 以及它们的后代类都是无需检查的异常, 其它异常类, 包括 Java API 定义的和用户自定义的 ( 非 Error 和 RuntimeException 的后代类的 ) 异常都是要检查的异常

11 Java 异常的分类 (2)

12 类 Error 的几个重要子类 VirtualMachineError: Java 定义的标准异常 JVM 内部出现的错误, 如 : 耗尽内存资源 调用栈溢出等 ; LinkageError: JVM 在装载字节码文件时出现的错误, 通常是因为字节码文件在生成后遭到非法破坏, 如 : 字节码格式错误等 ; AWTError: 图形用户界面控件发生严重错误, 这个类定义在程序包 java.awt, 且没有预定义的子类 ; ThreadDeath: 线程意外死机, 这个类没有预定义子类 ;

13 Java 定义的标准异常 类 RuntimeException 的常见子类 : ArithmeticException: 算术运算异常, 最常见的异常是被 0 除 ; ClassCastException: 程序在运行时欲进行不正确的强制类型转换 ; IllegalArgumentException: 方法被传递了不合法的参数 ; IndexOutOfBoundsException: 数组或字符串下标访问越界 ; NullPointerException: 程序使用了空引用 ; UnsupportedOperationException: 程序调用了不支持的方法

14 抛出异常的主体有三种 : Java 虚拟机 Java 异常的分类 (3) 通常这种异常是 Error 或 RuntimeException 的子类 ; 例如 NullPointException; 虽然在程序中无需显式地处理这类异常, 但应避免此类异常的产生 ; Java API 提供的方法 阅读有关 Java API 的文档规范, 了解所使用方法的接口, 以做出相应的处理 ; 程序中的 throw 语句 以显式形式抛出的某种异常, 是一个方法向它的调用者报告异常的基本形式

15 异常的捕获与处理 将可能抛出异常的语句放在由保留字 try 引导的块, 其后使用保留字 catch 引导的块捕获这些语句所抛出的第一个异常并进行处理, 其基本形式如下 : try {... // 可能抛出异常的语句 ; catch ( 异常类型 1 异常对象 1) {... // 对该类型的异常进行处理的语句 ; catch ( 异常类型 2 异常对象 2) {... // 对该类型的异常进行处理的语句 ;... // 可以有多个 catch 块 catch ( 异常类型 n 异常对象 n) {... // 对该类型的异常进行处理的语句 ;

16 class Account { private double balance = 1000; public void transfer(double amount) throws OutOfMoney { if (balance < amount) throw new OutOfMoney("Balance< Amount"); balance = balance - amount; public class AccountDemo { public static void main(string[ ] args) throws OutOfMoney{ Account obj = new Account(); double amount = 800; for (int count = 0; count < 3; count++) { try { obj.transfer(amount); System.out.println("balance:"+ obj.getbalance()); catch (OutOfMoney exc) { throw exc; //exc.printstacktrace(); 说出它的执行过程 amount = amount - 300;

17 一个 try 语句块可有多个 catch 语句块 异常的匹配 当 try 语句块抛出某种类型的异常时, 程序将根据 catch 语句块书写的顺序逐个进行匹配 ; 当发现某个保留字 catch 后声明的异常类是 try 语句块抛出的异常类的祖先类时, 就表示找到了匹配的 catch 语句块, 程序将执行该语句块中的语句 class SuperException extends Exception { public SuperException(String msg) { super(msg); class SubException extends SuperException { public SubException(String msg) { super(msg);

18 public class DemoMatch { public static void main(string[] args) { try { throw new SubException("SubException"); catch (SubException exc) { System.out.println("Catch SubException!"); catch (SuperException exc) { System.out.println("Catch SuperException!"); catch (Exception exc) { System.out.println("Catch Exception!"); try { throw new SuperException("SuperException"); catch (SubException exc) { System.out.println("Catch SubException!"); catch (SuperException exc) { System.out.println("Catch SuperException!"); catch (Exception exc) { System.out.println("Catch Exception!"); try { throw new SubException("SubException"); catch (SuperException exc) { System.out.println("Catch SuperException!"); catch (SubException exc) { System.out.println("Catch SubException!"); 说出它的执行过程

19 异常处理与收尾 finally 语句块 try {... // 可能抛出异常的语句 ; catch ( 异常类型 1 异常对象 1) {... // 对该类型的异常进行处理的语句 ; catch ( 异常类型 2 异常对象 2) {... // 对该类型的异常进行处理的语句 ;... // 可以有多个 catch 块 catch ( 异常类型 n 异常对象 n) {... // 对该类型的异常进行处理的语句 ; finally {... // 执行异常处理后收尾工作的语句

20 public class DemoFinally { public static void main(string[] args) { String[ ] members = new String[4]; for (int count = 0; count < 3; count++) { try { int x; if (count == 0) x = 1 / 0; if (count == 1) members[4] = "George Martin"; if (count == 2) return; catch (ArrayIndexOutOfBoundsException exc) { System.out.println(" 发生数组下标越界异常!"); catch (ArithmeticException exc) { System.out.println(" 发生被零除异常!"); continue; finally { System.out.println("finally 语句块!"); 说出它的执行过程

21 异常处理与收尾 finally 语句块 不管 try 语句块的语句是否抛出异常, 也不管 catch 语句块是否捕获到异常,finally 语句块的语句总会执行 甚至在执行到 try 语句块或 catch 语句块的 return break 或 continue 语句时, 也会在程序控制跳出语句 try...catch... finally... 之前执行 finally 语句块的语句

22 语句 try...catch... finally... 的控制流

23 逐层转发 异常的转发 调用者在捕获异常后, 如果还没有足够信息进行处理可以再转发给调用者的调用者, 逐层报告, 直到最适合处理该异常的方法 public void somemethod(...){... // 其它语句 try {... // 可能引发各种异常的语句 catch (CanHandleException exc) {... // 处理能够处理的异常 catch (CannotHandleException exc) { throw exc; // 转发不能处理的异常... // 其它语句

24 逐层转发 异常的转发 在将控制转向捕获该异常的方法之前仍将执行 finally 语句块 ; public class DemoClass { public static void main(string[] args) { try { int x = 1 / 0; catch (ArithmeticException exc) { throw exc; finally { System.out.println(" 本语句总是会执行!");

25 当 异常声明 某方法用 throw 语句显式抛出需检查的异常 ; 或 时 某方法调用的方法会抛出异常, 而该方法又没有使用 catch 语句块对异常进行处理 ; 需要在方法体之前使用 throws 语句声明要抛出该异常类或该异常类的祖先类 ;

26 异常声明 异常的声明 public void somemethod(...) throws ExceptionOne, ExceptionTwo {... // 方法体 方法重载 如果有以下的方法声明 : public void somemethod(int x) throws ExceptionOne {... public void somemethod(int x) throws ExceptionOne, ExceptionTwo {...

27 异常声明与继承机制 关于 子类重定义方法的异常声明 Java 语言规定 : 子类重定义方法声明抛出的每个异常类都必须是超类方法声明的某一个异常类本身或其后代类 ; 但不是超类方法声明的每个异常类都必须在子类方法声明抛出

28 关于子类重定义方法的异常声明 定义如下的异常类 class SuperOneException extends Exception { class SubOneException extends SuperOneException { class SubSubException extends SubOneException { class SubTwoException extends SuperOneException { class SuperTwoException extends Exception { class SubThreeException extends SuperTwoException {

29 关于子类重定义方法的异常声明 class SuperClassOne { public void methodone() throws SuperOneException { public void methodtwo() throws SubOneException, SuperTwoException { public void methodthree() throws SuperOneException, SuperTwoException { public void methodfour() throws SuperTwoException { public void methodone() throws SubSubException, SubTwoException { public void methodtwo() throws SubSubException { public void methodthree() throws SubSubException, SubThreeException { public void methodfour() throws SuperTwoException { 子类 SubClassOne 继承超类 SuperClassOne

30 关于子类重定义方法的异常声明 class SuperClassOne { public void methodone() throws SuperOneException { public void methodtwo() throws SubOneException, SuperTwoException { public void methodthree() throws SuperOneException, SuperTwoException { public void methodfour() throws SuperTwoException { 对于如下的声明 : public void methodone() throws SubThreeException { public void methodtwo() throws SubTwoException { 子类 SubClassOne 继承超类 SuperClassOne

31 class SuperClassOne { public void methodone() throws SuperOneException { public void methodtwo() throws SubOneException, SuperTwoException { public void methodthree() throws SuperOneException, SuperTwoException { public void methodfour() throws SuperTwoException { public void callmethodone() throws SubSubException, SubTwoException { SubClassOne obj = new SubClassOne(); obj.methodone(); public void callmethodone() throws SuperOneException { SubClassOne obj = new SubClassOne(); obj.methodone(); public void callmethodone() { SubClassOne obj = new SubClassOne(); try { obj.methodone(); catch (Exception exc) { public void callmethodone() throws SuperException { SuperClassOne obj = new SubClassOne(); obj.methodone(); 子类 SubClassOne 继承超类 SuperClassOne

32 如果 则 关于子类重定义方法的异常声明 子类重定义方法同时实现了某些接口的方法 子类方法声明抛出的每个异常类必须是 : 超类方法所声明的异常类及其后代类 组成的异常类 集合和 所有 接口方法声明的异常类及其后代类 组成的异常类集合 的交集中的某一个异常类

33 class SuperClassOne { public void methodone() throws SuperOneException { public void methodtwo() throws SubOneException, SuperTwoException { public void methodthree() throws SuperOneException, SuperTwoException { public void methodfour() throws SuperTwoException { interface InterfaceOne { public void methodone( ) throws SubOneException; public void methodtwo( ) throws SuperOneException; public void methodthree() throws SuperOneException; public void methodfour( ) throws SubOneException; interface InterfaceTwo { public void methodone( ) throws SubSubException; public void methodtwo( ) throws SuperTwoException; public void methodthree( ) throws SuperOneException; class SubClassTwo extends SuperClassOne implements InterfaceOne, InterfaceTwo { public void methodone() throws SubSubException { public void methodtwo() { public void methodthree() throws SubSubException, SubTwoException {

34 class SuperClassOne { public void methodone() throws SuperOneException { public void methodtwo() throws SubOneException, SuperTwoException { public void methodthree() throws SuperOneException, SuperTwoException { public void methodfour() throws SuperTwoException { interface InterfaceOne { public void methodone( ) throws SubOneException; public void methodtwo( ) throws SuperOneException; public void methodthree() throws SuperOneException; public void methodfour( ) throws SubOneException; interface InterfaceTwo { public void methodone( ) throws SubSubException; public void methodtwo( ) throws SuperTwoException; public void methodthree( ) throws SuperOneException; class SubClassTwo extends SuperClassOne implements InterfaceOne, InterfaceTwo { public void methodone() throws SubSubException { public void methodtwo() { public void methodthree() throws SubSubException, SubTwoException { public void methodfour()

35 class SuperClassOne { public void methodone() throws SuperOneException { public void methodtwo() throws SubOneException, SuperTwoException { public void methodthree() throws SuperOneException, SuperTwoException { public void methodfour() throws SuperTwoException { interface InterfaceOne { public void methodone( ) throws SubOneException; public void methodtwo( ) throws SuperOneException; public void methodthree() throws SuperOneException; public void methodfour( ) throws SubOneException; interface InterfaceTwo { public void methodone( ) throws SubSubException; public void methodtwo( ) throws SuperTwoException; public void methodthree( ) throws SuperOneException; class SubClassTwo extends SuperClassOne implements InterfaceOne, InterfaceTwo { public void methodone() throws SubSubException { public void methodtwo() { public void methodthree() throws SubSubException, SubTwoException { //public void methodfour()

36 关于子类重定义构造方法的异常声明 由于 子类构造方法的第一条语句必须是调用超类的构造方法 ; 因此 无法将调用超类构造方法的语句放入 try 语句块中以捕获超类构造方法抛出的异常 ; 所以 超类构造方法声明抛出的异常类必须在子类构造方法中也声明抛出 ; 除此之外 子类构造方法也可声明抛出其它异常类 ;

37 关于子类重定义构造方法的异常声明 // 超类 class SuperClassTwo { public SuperClassTwo() throws SubOneException { public SuperClassTwo(int x) throws SuperTwoException { // 子类 class SubClassThree extends SuperClassTwo { public SubClassThree() throws SuperOneException { public SubClassThree(int x) throws SuperTwoException, SubOneException { super(x);

38 规则总结 关于调用方法 重定义方法的异常声明 Java 编译器对异常声明检查的规则可表述为 : 子类中重定义的方法如果要声明抛出异常类类型 T, 则必须对超类以及它实现的接口中相应的每个方法, 都要能找到该方法声明抛出的某个异常类类型 S, 使得 T 是 S 的子类型 如果方法 A 调用方法 B, 则对方法 B 所声明抛出每个异常类类型 T, 方法 A 都要捕获或者声明抛出某个异常类类型 S, 使得 T 是 S 的子类型

39 程序断言 程序断言机制 在程序中加入的用于描述需求的表达式 ; 断言的作用 : 保证程序的正确性与健壮性 帮助程序员精确陈述程序各个组成部分的性质 ; 断言可用于形成程序的文档 可以利用一些软件工具从带有断言的程序中抽取出需求说明 ; 支持程序的动态调试 程序断言在运行过程中可以动态地检测 ; 构成异常处理的基础 当检测某一程序断言不成立时, 程序将引发一个异常 ;

40 Java 中的断言机制 Java 语言并没有提供完善的程序断言机制 ; 仅在 Java 2 SDK 1.4 版本以上, 开始支持实现部分检测断言 ; 基本形式如下 : assert ConditionExpression assert 是新增的保留字 ; ConditionExpression 是布尔表达式, 用来表达所要检测的条件 ; Java 语言新增了一个错误类 AssertionError, 它是类 Error 的子类, 用来标识程序不满足断言中的布尔表达式而抛出的异常

41 Java 中的断言机制 断言 :assert ConditionExpression 等价于 if (! ConditionExpression) { throw new AssertionError() 断言 :assert ConditionExpression : InitialExpression 等价于 if (! ConditionExpression) { throw new AssertionError(InitialExpression)

42 public class SquareRoot { // 功能 : 返回 x 的平方根, 要求精度为 epsilon 说出它的执行过程 // 要求 : x >= 0 and epsilon >= // 保证 : sqrt * sqrt - x <= epsilon public static double sqrt(double x, double epsilon) { // 前置条件 assert (x >= 0) : " 参数为负数 "; assert (epsilon >= ) : " 精度要求过高 "; // 用牛顿法求平方根 double root = 1; while (Math.abs(root * root - x) > epsilon) { root = (x / root + root) / 2; // 后置条件 assert Math.abs(root * root - x) <= epsilon : " 精度不足 "; return root; public static void main(string[] args) { System.out.println("sqrt(5, 0.01)=" + sqrt(5, 0.01));

43 在 Java 2 SDK 1.4 版本下使用如下命令编译 : > javac source 1.4 SquareRoot.java > java ea SquareRoot 运行上述程序将产生如下输出 : sqrt(5, 0.01)=

44 public class SquareRoot { // 功能 : 返回 x 的平方根, 要求精度为 epsilon 说出它的执行过程 // 要求 : x >= 0 and epsilon >= // 保证 : sqrt * sqrt - x <= epsilon public static double sqrt(double x, double epsilon) { // 前置条件 assert (x >= 0) : " 参数为负数 "; assert (epsilon >= ) : " 精度要求过高 "; // 用牛顿法求平方根 double root = 1; while (Math.abs(root * root - x) > epsilon) { root = (x / root + root) / 2; // 后置条件 assert Math.abs(root * root - x) <= epsilon : " 精度不足 "; return root; public static void main(string[] args) { System.out.println("sqrt(5, 0)=" + sqrt(5, 0));

45 Exception in thread "main" java.lang.assertionerror: 精度要求过高 at SquareRoot.sqrt(SquareRoot.java:8) at SquareRoot.main(SquareRoot.java:20)

46 public class SquareRoot { // 功能 : 返回 x 的平方根, 要求精度为 epsilon 说出它的执行过程 // 要求 : x >= 0 and epsilon >= // 保证 : sqrt * sqrt - x <= epsilon public static double sqrt(double x, double epsilon) { // 前置条件 assert (x >= 0) : " 参数为负数 "; assert (epsilon >= ) : " 精度要求过高 "; // 用牛顿法求平方根 double root = 1; while (Math.abs(root * root - x) > epsilon) { root = (x / root + root) / 2; // 后置条件 assert Math.abs(root * root - x) <= epsilon : " 精度不足 "; return root; public static void main(string[] args) { System.out.println("sqrt(-7, 0.1)=" + sqrt(-7, 0.1));

47 Exception in thread "main" java.lang.assertionerror: 参数为负数 at SquareRoot.sqrt(SquareRoot.java:7) at SquareRoot.main(SquareRoot.java:21)

48 Project List 1 某领域的垂直搜索引擎; 2 研究生辅助管理系统; 3 Google Code Search Eclipse 插件 ; 4 局域网文件同步器;

49 说明 : Project 说明 (1) 以上每个项目均可设立多个独立的开发小组 ; (2) 每位同学最好只参与一个项目的开发小组 ; (3) 选择以上项目的同学, 可以不提交本课程的 Project 作业, 但仍需提交其他作业 ; (4) 关于所有项目的最终成果将在开源软件平台上发布 ( 可以自行创建也可以用国际上的现有平台 ); (5) 所有已发布资源将默认遵循 GNU General Public License(GPL) 协议,;

50 GNU General Public License (GPL) 协议 GPL 承认软件作品作者的著作权 ( 所有权 ), 同时也要求作者必须允许任何人 ( 或用户, 或 你 ) 享有对其作品使用 复制 修改 衍生 发行的自由权利 ; 作为一个限制条件,GPL 还要求用户不能改变软件的授权协议 ( 即要将 GPL 向各级用户传递下去 ), 要求用户在对该软件作品作出的修改或制作衍生作品并进行再发行时, 都要一贯遵守 GPL 规则 ; 如果执行 GPL 协议的原创软件是自由软件, 则该自由软件经过修改或衍生后的软件也应是自由软件 ; 自由软件在作二进制整体运行时, 不允许一部分软件的源码是开源的, 另一部分的源码是闭源的, 即不允许出现混合源码的现象 GPL 协议还规定, 不得使用其它许可证进行再发布

51 好好想想, 有没有问题? 谢谢!

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally 6.5 throw 语句与 throws 子句 6.6 自定义异常类 6.7 异常处理代码块嵌套 6.8 错误与断言 6.9 本章小结 6.10 实训 6: 除法运算程序

内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally 6.5 throw 语句与 throws 子句 6.6 自定义异常类 6.7 异常处理代码块嵌套 6.8 错误与断言 6.9 本章小结 6.10 实训 6: 除法运算程序 第 6 章除法运算 异常处理 能力目标 : 学会使用 try-catch-finally 代码块处理异常 学会使用 throw 语句主动抛出异常, 使用 throws 子句从方法声明中抛出异常 理解自定义异常类, 了解断言语句 能运用异常处理机制编写整数 实数除法运算程序 内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

Java程序设计

Java程序设计 第 6 章异常处理 第 6 章异常处理 本章介绍 Java 语言中的异常处理 6.1 异常处理 6.2 自定义异常 6.3 断言及程序的测试 6.4 程序的调试 2 异常处理 3 异常 异常 (exception ) 又称为例外 差错 违例 对应着 Java 运行错误处理机制 基本写法 try{ 语句组 }catch(exception ex){ 异常处理语句组 ; } 示例 : ExceptionForNum.java

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

Microsoft Word - 封面

Microsoft Word - 封面 176 Java 程序设计基础教程 8.1 异常概述 8.1.1 异常的概念 在进行程序设计时, 错误的产生是不可避免的 程序中的错误可分为三类 : 编译错误 逻辑错误和运行时错误 编译错误是由于没有遵循 Java 语言的语法规则而产生的, 这种错误要在编译阶段排除, 否则程序不可能运行 逻辑错误是指程序编译正常, 也能运行, 但结果不是人们所期待的 运行时错误是指程序在运行过程中出现了一个不可能执行的操作,

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat 本章学习目标 小风 Java 实战系列教程 AOP 思想概述 AOP 底层技术实现 AOP 术语介绍 SpringAOP 的 XML 方式 HelloWorld SpringAOP 的 XML 方式配置细节 SpringAOP 的注解方式 SpringAOP 的零配置方式 1. AOP 思想概述 1.1. AOP 思想简介 1.2. AOP 的作用 2. AOP 底层技术实现 小风 Java 实战系列教程

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

untitled

untitled 1 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object 參 類 都 object 參 object Boxing 參 boxing

More information

<4D F736F F F696E74202D20B5DA35D5C220D2ECB3A3BACDB6E0CFDFB3CC2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20B5DA35D5C220D2ECB3A3BACDB6E0CFDFB3CC2E BBCE6C8DDC4A3CABD5D> 第 5 章 异常和多线程 5.1 Java 异常处理 5.2 Java 中的多线程 5.1 Java 异常处理 5.1.1 Java 的异常类和异常处理 \ 1. 异常的产生 异常是指在程序运行过程中, 打断程序正常执行的事件 Java 语言通过异常类 (Exception) 和异常子类, 来处理程序运行过程中产生的异常 一个异常事件由一个异常类的对象来代表并作出处理 确保不对系统造成破坏, 保证程序运行的安全性和强健性

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

untitled

untitled 1 Outline ArrayList 類 列類 串類 類 類 例 理 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 1Z0-854 Title : Java Standard Edition 5 Programmer Certified Professional Upgrade Exam Version : Demo 1 / 12 1.Given: 20. public class CreditCard

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

JBuilder Weblogic

JBuilder Weblogic JUnit ( bliu76@yeah.net) < >6 JUnit Java Erich Gamma Kent Beck JUnit JUnit 1 JUnit 1.1 JUnit JUnit java XUnit JUnit 1.2 JUnit JUnit Erich Gamma Kent Beck Erich Gamma Kent Beck XP Extreme Programming CRC

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

附录J:Eclipse教程

附录J:Eclipse教程 附 录 J:Eclipse 教 程 By Y.Daniel Liang 该 帮 助 文 档 包 括 以 下 内 容 : Eclipse 入 门 选 择 透 视 图 创 建 项 目 创 建 Java 程 序 编 译 和 运 行 Java 程 序 从 命 令 行 运 行 Java Application 在 Eclipse 中 调 试 提 示 : 在 学 习 完 第 一 章 后 使 用 本 教 程 第

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

使用MapReduce读取XML文件

使用MapReduce读取XML文件 使用 MapReduce 读取 XML 文件 XML( 可扩展标记语言, 英语 :extensible Markup Language, 简称 : XML) 是一种标记语言, 也是行业标准数据交换交换格式, 它很适合在系统之间进行数据存储和交换 ( 话说 Hadoop H ive 等的配置文件就是 XML 格式的 ) 本文将介绍如何使用 MapReduce 来读取 XML 文件 但是 Had oop

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

IoC容器和Dependency Injection模式.doc

IoC容器和Dependency Injection模式.doc IoC Dependency Injection /Martin Fowler / Java Inversion of Control IoC Dependency Injection Service Locator Java J2EE open source J2EE J2EE web PicoContainer Spring Java Java OO.NET service component

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

Microsoft Word - 投影片ch13

Microsoft Word - 投影片ch13 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十三章例外處理 本章學習目標了解什麼是例外處理認識例外類別的繼承架構認識例外處理的機制學習如何撰寫例外類別 例外處理 13-2 13.1 例外的基本觀念 在執行程式時, 經常發生一些不尋常的狀況 例如 : (1) 要開啟的檔案不存在 (2) 陣列的索引值超過了陣列容許的範圍 (3) 使用者輸入錯誤 Java 把這類不尋常的狀況稱為

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

Java ¿ª·¢ 2.0: Óà Hadoop MapReduce ½øÐдóÊý¾Ý·ÖÎö

Java ¿ª·¢ 2.0: Óà Hadoop MapReduce ½øÐдóÊý¾Ý·ÖÎö 中 文 登 录 ( 或 注 册 ) 技 术 主 题 软 件 下 载 社 区 技 术 讲 座 搜 索 developerworks developerworks 技 术 主 题 Java technology 文 档 库 Java 开 发 2.0: 用 Hadoop MapReduce 进 行 大 数 据 分 析 成 堆 的 数 据 如 何 变 成 信 息 金 矿 Andrew Glover, 作 家

More information

(Microsoft Word - \272\364\263q\245|\244A_49636107_\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

(Microsoft Word - \272\364\263q\245|\244A_49636107_\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc) SCJP (Oracle Certified Professional, Java SE5/6 Programmer) 學 制 / 班 級 : 四 年 制 / 網 通 四 乙 指 導 老 師 : 方 信 普 老 師 學 生 學 號 / 姓 名 : 49636107 蘇 建 瑋 繳 交 年 份 : 100 年 6 月 一 SCJP 介 紹 SCJP 是 Sun Certified Java Programmer

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

<4D F736F F D C3E6CFF2B6D4CFF35FB5DACEE5D5C D6D0B5C4D2ECB3A3B4A6C0ED5F2E646F63>

<4D F736F F D C3E6CFF2B6D4CFF35FB5DACEE5D5C D6D0B5C4D2ECB3A3B4A6C0ED5F2E646F63> 第五章 PHP5 异常处理 1 目录 5.1 PHP 中的错误信息...3 5.1.1 php.ini 中配置错误消息...3 5.1.2 php 中错误消息处理...4 5.1.3 php 代码中调整错误级别...5 5.1.4 自定义错误处理...6 5.2 PHP5 中的 SPL 模块...7 5.2.1 什么是 SPL...7 5.2.2 spl.php 中的异常处理类...8 5.2.3

More information

RxJava

RxJava RxJava By 侦跃 & @hi 头 hi RxJava 扩展的观察者模式 处 观察者模式 Observable 发出事件 Subscriber 订阅事件 bus.post(new AnswerEvent(42)); @Subscribe public void onanswer(answerevent event) {! }! Observable observable = Observable.create(new

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23 Java 程 序 设 计 实 验 指 导 书 商 丘 学 院 计 算 机 科 学 与 技 术 学 院 张 艳 晓 目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23 实 验

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt 2004 Marty Hall 服务器响应的生成 : HTTP 状态代码 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

java2d-4.PDF

java2d-4.PDF 75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

Microsoft PowerPoint - 09Future

Microsoft PowerPoint - 09Future Web 应用基础 Apache Struts http://jakarta.apache.org/struts Spring http://www.springframework.org/ HelloWorld public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!");

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

電機工程系認可證照清單 2011/7/1

電機工程系認可證照清單                  2011/7/1 南 台 科 技 大 學 電 機 工 程 系 專 業 證 照 課 程 實 施 要 點 96 年 10 月 05 日 系 務 會 議 通 過 100 年 06 月 30 日 系 務 會 議 修 正 通 過 101 年 06 月 21 日 系 務 會 議 修 正 通 過 一 本 系 為 提 升 學 生 的 專 業 技 能, 特 訂 定 本 辦 法 二 實 施 對 象 : 本 系 日 間 部 96 學 年

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 4 月 19 日晚 9 点 复习 Upcasting 同一基类的不同子类可以被视为同一类型 ( 基类 ) 放宽类型一致性 简化接口 class A{ class B{ A a = new A(); B b = new B(); // A a = new B(); compile

More information

回 页 首 相 关 的 类 和 接 口 要 了 解 Java 动 态 代 理 的 机 制, 首 先 需 要 了 解 以 下 相 关 的 类 或 接 口 : java.lang.reflect.proxy: 这 是 Java 动 态 代 理 机 制 的 主 类, 它 提 供 了 一 组 静 态 方 法

回 页 首 相 关 的 类 和 接 口 要 了 解 Java 动 态 代 理 的 机 制, 首 先 需 要 了 解 以 下 相 关 的 类 或 接 口 : java.lang.reflect.proxy: 这 是 Java 动 态 代 理 机 制 的 主 类, 它 提 供 了 一 组 静 态 方 法 Java 动 态 代 理 机 制 分 析 及 扩 展, 第 1 部 分 引 言 Java 动 态 代 理 机 制 的 出 现, 使 得 Java 开 发 人 员 不 用 手 工 编 写 代 理 类, 只 要 简 单 地 指 定 一 组 接 口 及 委 托 类 对 象, 便 能 动 态 地 获 得 代 理 类 代 理 类 会 负 责 将 所 有 的 方 法 调 用 分 派 到 委 托 对 象 上 反

More information

模板

模板 制作人 : 张刚 目录 类和对象 面向对象程序设计基本特征 类的声明 构造方法 成员变量和方法 封装 继承 多态 包 访问控制 final static 抽象类和接口 内部类 沈阳工业大学软件学院 Java 课程教研组 Page 2 核心知识点 类 对象 三个基本特征 类的基本结构 成员变量 构造方法 成员方法 类实例 对象创建和操作 沈阳工业大学软件学院 Java 课程教研组 Page 3 1.

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

试卷代号 : 座位号 中央广播电视大学 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共

试卷代号 : 座位号 中央广播电视大学 学年度第一学期  开放本科  期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 试卷代号 : 1 2 9 7 座位号 中央广播电视大学 2 0 1 0 2011 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 2 0 分 } 1. Java 是一门 ( ) 语言 A. 机器 B. 汇编 C. 面向过程的高级 D.

More information

Java第一天 2007年4月23日

Java第一天      2007年4月23日 Java 第 一 天 2007 年 4 月 23 日 1 Java 之 父 Golsling 1995 年 5 月 23 日 Java 诞 生 1998 年 12 月 1.2 版 本 Java2 J2SE J2EE J2ME 2004 年 12 月 1.5 版 本 (5.0) Java JavaSE JavaEE JavaME 2 Java SE --- Java 标 准 平 台 Java EE ---

More information

Microsoft PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

More information

Microsoft Word - PHP7Ch01.docx

Microsoft Word - PHP7Ch01.docx PHP 01 1-6 PHP PHP HTML HTML PHP CSSJavaScript PHP PHP 1-6-1 PHP HTML PHP HTML 1. Notepad++ \ch01\hello.php 01: 02: 03: 04: 05: PHP 06:

More information

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject("exception", writer.tostring()); mv.setviewname("error"); return

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject(exception, writer.tostring()); mv.setviewname(error); return 本章学习目标 小风 Java 实战系列教程 SpringMVC 异常处理 SpringMVC 文件上传 SpringMVC 处理 JSON 格式数据 SpringMVC 拦截器 SpringMVC 对 restful 风格的支持 1. SpringMVC 异常处理 1.1. @ExceptionHandler 注解处理异常 @ExceptionHandler 该注解使用在异常处理方法上面 1.1.1.

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 Java 高级技术 课程第二讲 Java 语言的面向对象特性 (3) 李戈 北京大学信息科学技术学院软件研究所 2010 年 3 月 21 日 进入一个新的主题 抽象类 vs. 接口 抽象类的引出 抽象类 现实世界中一些没有具体对象的纯粹抽象概念, 例如, 鸟 鱼 灯 树 动物 ; 抽象类用于建模现实世界中的纯粹抽象概念 ; 定义方法 : 使用保留字 abstract public abstract

More information

<4D F736F F D20B5DA3130D5C220B4A6C0EDD2ECB3A3BACDB4EDCEF32E646F63>

<4D F736F F D20B5DA3130D5C220B4A6C0EDD2ECB3A3BACDB4EDCEF32E646F63> 142 第 7 章处理异常和错误 异常是指应用程序运行时遇到的错误或程序意外的行为 如, 在运算中除以 0 的操作, 调用代码或程序代码中有错误, 操作系统资源不可用等等 异常处理则是在应用程序发生异常情况时, 采取什么样的操作, 是继续程序的执行, 还是中断用户的操作 为了捕捉和处理异常,C# 提供了 3 个关键字 : catch 和 finally 后面紧跟需要执行的代码块, 这称为一个 块 catch

More information

Microsoft Word - 981192001.htm

Microsoft Word - 981192001.htm 098 年 度 11901 電 腦 軟 體 設 計 (JAVA) 乙 級 技 術 士 技 能 檢 定 學 科 測 試 試 題 本 試 卷 有 選 擇 題 80 題, 每 題 1.25 分, 皆 為 單 選 選 擇 題, 測 試 時 間 為 100 分 鐘, 請 在 答 案 卡 上 作 答, 答 錯 不 倒 扣 ; 未 作 答 者, 不 予 計 分 准 考 證 號 碼 : 姓 名 : 單 選 題 :

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

在 ongodb 中实现强事务

在 ongodb 中实现强事务 在 ongodb 中实现强事务 600+ employees 2,000+ customers 13 offices worldwide 15,000,000+ Downloads RANK DBMS MODEL SCORE GROWTH (20 MO) 1. Oracle Rela+onal DBMS 1,442-5% 2. MySQL Rela+onal DBMS 1,294 2% 3.

More information

Hive:用Java代码通过JDBC连接Hiveserver

Hive:用Java代码通过JDBC连接Hiveserver Hive: 用 Java 代码通过 JDBC 连接 Hiveserver 我们可以通过 CLI Client Web UI 等 Hive 提供的用户接口来和 Hive 通信, 但这三种方式最常用的是 CLI;Client 是 Hive 的客户端, 用户连接至 Hive Server 在启动 Client 模式的时候, 需要指出 Hive Server 所在节点, 并且在该节点启动 Hive Server

More information

return gethexstr messagedigest.digest) ) int len = in.length; int i; StringBuilder out = new StringBuilder len * 2 for i = 0; i < len; i++ ) catch Exc

return gethexstr messagedigest.digest) ) int len = in.length; int i; StringBuilder out = new StringBuilder len * 2 for i = 0; i < len; i++ ) catch Exc Javassist 在逆向工程中的应用 安全研究部陈庆 关键词 :Java Javassist class 调试逆向工程摘要 :Javassist 是一种面向程序员的 Java Class 修改工具, 以库的形式封装了诸多 API 供程序员使用, 使得可以在 Java 源码级别直接修改 Java Class, 而不必直接面对 Java Bytecode 和 JVM 在 Java 逆向工程 无源码 Java

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information