0.061

五煦查题

快速找到你需要的那道考题与答案

中国大学Java程序设计_15期末答案(慕课2023课后作业答案)

96 min read

中国大学Java程序设计_15期末答案(慕课2023课后作业答案)

第1次 绪论:计算与Java简介

1.2 变量与计算随堂测验

1、中国作业选出如下表达式错误的大学答案答案
A、boolean flag = 1;
B、程序byte b = 0x175;
C、设计char c = 100;
D、期末int x = 0x35f;

2、慕课请选出以下答案中x,课后y的中国作业值相等的答案
A、int x = 97; char y = 'a';
B、大学答案答案int x = 0; int y = '0';
C、程序int x = 0x100; char y = 100;
D、设计int a = 3+'5'; char b = '8';

3、期末选出如下表达式错误的慕课
A、int 零 = '零';
B、课后float y = 12.345E2;
C、中国作业double a = 12;
D、int d = 5234567890;

测验 01 绪论

1、编译Java源代码的命令是
A、java.exe
B、javadoc.exe
C、javac.exe
D、jar.exe

2、使用Java HelloWorld将什么文件载入内存
A、HelloWorld.java
B、HelloWorld.class
C、HelloWorld
D、HelloWorld.exe

3、如果在Main.java中撰写以下的程序代码,结果为 public class Main { public static main(String[] args) { System.out.println("Hello World"); } }
A、执行时显示Hello World
B、执行时出现NoClassDefFoundError
C、执行时出现找不到主要方法的错误
D、编译失败

4、以下说法正确的是
A、Java是不区分大小写的,源文件名与程序类名不允许相同。
B、Java语言以函数为程序的基本单位
C、以//符号开始的为多行注释语句
D、一个Java源文件可能编译出多个字节码文件

5、在Java中,负责对字节代码解释执行的是
A、应用服务器
B、虚拟机
C、垃圾回收器
D、编译器

6、编译Java源程序文件后将产生相应的可执行字节码文件,这些文件的扩展名为
A、exe
B、class
C、java
D、html

7、一个合法的Java源程序中定义了4个类,其中属性为public的类可能有( )个
A、1
B、2
C、3
D、4

8、下列说法正确的是
A、字节码文件可以直接在操作系统上运行
B、每个平台都有不同的JVM
C、需将java源程序文件在不同平台进行编译,才能实现跨平台运行
D、程序跨平台的关键是JVM

9、"语句 System.out.println(4+8+"Hello,world!"); 的输出结果是: 48Hello,world!"

10、“一个Java源文件中可以有多个类,但只能有一个类是public的。”是否正确

编程 01 绪论

1、温度转换

2、Scanner、Math、String类的使用。

第2次 上 判断

2.x 第2周小测验上随堂测验

1、写出以下代码段的执行结果: int num=34, max=30; if ( num >= max*2 ) System.out.println("zhang"); System.out.println("huang"); System.out.println("zhu");

2、写出以下代码段的执行结果: int limit = 100; int num1 = 15; int num2 = 40; if ( limit <= limit) { if ( num1 == num2 ) System.out.println("lemon"); System.out.println("lime"); } System.out.println("grape");

编程 02上 判断

1、时间换算

2、信号报告

第2次 下 循环

3.x 第2周小测验下随堂测验

1、以下哪种运算能从变量x中取得它的个位数?
A、x/10
B、x%10
C、x*10
D、x=10

2、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了

3、以下代码片段执行结束后,变量i的值是多少? int i = 1; do { i = i+5; } while (i<17);

编程 02下 循环

1、奇偶个数

2、数字特征值

第3次 上 循环控制

编程 03上 循环控制

1、素数和

2、念整数

第3次 下 数组

5.x 第5周小测验随堂测验

1、若有定义: int a[2][3]; 则以下选项中不越界的正确的访问有:
A、a[2][0]
B、a[2][3]
C、a[0][0]
D、a[0][3]

2、以下程序片段的输出结果是:int[][] m = { { 1,4,7},{ 2,5,8},{ 3,6,9},}; int i,j,k=2; for ( i=0; i<3; i++ ) { System.out.print(m[k][i]); }
A、369
B、不能编译
C、123
D、运行时下标越界

编程 03下 数组

1、多项式加法

2、输入一组半径值(均为整数)存入数组,然后对其正序输出、逆序输出,并计算平均半径与总面积。

第4次 上 引用数据类型

编程 04上 字符串

1、单词长度

2、寻找包含密码的字符串

第4次 下 方法(函数)

测验 04 Java基础语法

1、以下( )是合法标识符
A、double
B、3c
C、sum
D、hello world

2、以下哪个表达式不可以作为循环条件?
A、i < 4
B、i = 6
C、str.equals(“hello”)
D、count == 10

3、以下代码的输出结果是 public static void main(String[] args){ for(int i=1;i<=10;i++){ if(i%2==0 || i%5==0){ continue; } System.out.print(i+"\t"); } }
A、1
B、1 3 4
C、1 3 5 7 9
D、1 3 7 9

4、分析下面的代码,输出结果正确的是 double d = 84.54; d++; int c=d/2;
A、42
B、编译错误。应更改为int c=(int) d/2;
C、43
D、编译错误。应更改为int c=int(d)/2;

5、下面代码的运行结果是 public class Test{ public static void main(String[] args){ int[] a=new int[3]; int[] b= new int[]{ 1,2,3,4,5}; a=b; for(int i=0; i<b.length; i++){ System.out.print(a[i]+" "); } } }
A、程序报错
B、1 2 3
C、1 2 3 4 5
D、0 0 0

6、定义一个数组String[] cities={ “北京”,”上海”,”广州”,”厦门”,”郑州”,”武汉”,”西安”},数组中的cities[6]指的是
A、西安
B、厦门
C、武汉
D、数组越界

7、以下代码的输出结果是 int a=0; while(a<5){ switch(a){ case 0: case 3: a=a+2; case 1: case 2: a=a+3; } } System.out.println(a);
A、0
B、5
C、10
D、其他

8、为一个boolean类型变量赋值时,可以使用
A、boolean a = 1 ;
B、boolean a = "真";
C、boolean a = (9 >= 10);
D、boolean a == false;

9、表达式 (11+3*8) / 4 % 3 的值是
A、31
B、0
C、1
D、2

10、假定x和y为整数,其值分别为16和5,则x/y和(double)x/y的值分别为_________和_______
A、3
B、2
C、1
D、3.2

编程 04下 方法

1、分解质因数

2、完数

第5、6次 面向对象:基础

测验 05 面向对象基础

1、以下说法哪项不是构造方法的特点?
A、构造方法名必须和类名相同
B、构造方法不具有任何返回类型
C、任何一个类都有构造方法
D、构造方法修饰词只能是public

2、final关键字不可以用来修饰
A、类
B、接口
C、成员变量
D、成员方法

3、某类的成员方法只能被自己调用,修饰该方法的是
A、public
B、protected
C、private
D、无修饰符

4、下列代码在编译时会产生错误,下面哪种修改可以更正错误? class Test{ private int m; public static void fun(){ System.out.println(m); } }
A、将private int m 改为protected int m
B、将private int m 改为public int m
C、将private int m 改为static int m
D、将private int m 改为int m

5、下列String类的( )方法返回指定字符串的一部分。
A、extractstring()
B、substring()
C、subString()
D、Middlestring()

6、下述哪条关于构造方法的说法,不符合Java语法的规定
A、每个类至少有一个构造方法
B、构造方法必须与类同名
C、构造方法无返回值
D、构造方法必须是public的

7、以下代码的输出结果为 public class Pass{ static int j = 20; public void amethod(int x){ x = x*2; j = j*2; } public static void main(String args[]){ int i = 10; Pass p = new Pass(); p.amethod(i); System.out.println(i+" and "+j); } }
A、10 and 40
B、错误:方法参数与变量不匹配
C、20 and 40
D、10 and 20

8、关于垃圾收集的哪些叙述是对的
A、垃圾收集将检查并释放不再使用的内存
B、垃圾收集能够在期望的时间释放被java对象使用的内存
C、垃圾收集允许程序开发者明确指定并立即释放该内存
D、程序开发者必须自己创建一个线程进行内存释放的工作

9、在类中定义一个类型为int,名为MAX_LENGTH的常量,并且希望可被其他类直接访问,以下语句正确的是
A、public int MAX_LENGTH = 100
B、final int MAX_LENGTH = 100
C、public const int MAX_LENGTH=100
D、public final int MAX_LENGTH=100

10、声明成员变量时,如果不使用任何访问控制符(public, protected, private),则以下哪种类型的类不能对该成员进行直接访问
A、同一包中的非子类
B、不同包中的子类
C、同一类
D、同一包中的子类

编程 05 面向对象基本概念

1、常见类的使用:使用随机数填充ArrayList并输出。

2、简单通讯录的实现01

编程 06 static与面向对象设计

1、简单通讯录的实现02

2、简易计算器实现

第7、8周 面向对象:继承与多态

编程 07 面向对象继承与多态

1、随机生成对象,并找出其中符合要求的对象进行操作

2、Person、Student与Teacher类

3、Abstract、Person、Student与Teacher

4、Person与equals覆盖

第9周 面向对象:接口与嵌套类

测验 09 接口与嵌套类

1、接口的所有成员方法都具有( )修饰的特性
A、private, final
B、public, abstract
C、static, protected
D、static

2、已知MyInterface是一个接口,ClassA是实现该接口的一个类,ClassB是ClassA的子类,则下面说法哪个正确?
A、ClassB obj = new ClassA();
B、ClassA obj = new MyInterface();
C、MyInterface obj = new ClassB();
D、MyInterface obj = new MyInterface();

3、下列选项中,用于实现接口的关键字是 ( )
A、class
B、abstract
C、interface
D、implements

4、要新建LinkedList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( )
A、LinkedList myList=new Object();
B、List myList=new LinkedList();
C、LinkedListList myList=new List();
D、List myList=new List();

5、给定以下代码 interface I { void f(); } abstract class C implements I { } 下列哪行代码可以编译成功。
A、class A extends I { void f(); }
B、interface A extends I { void f(); }
C、class A extends C implements I { }
D、interface A implements I { void f(); }

6、对于以下代码 说法正确的是
A、输出:21018
B、编译错误
C、去掉注释可正常执行
D、去掉注释编译失败

7、接口中的方法默认都是静态的

8、一个类只能有一个父类,但一个接口可以有一个以上的父接口。

9、给出以下代码: class Base { void f(int i) { System.out.println("int");} void f(double d) { System.out.println("double");} } public class Main extends Base { void f(String s) { System.out.println("String");} void f(long i) { System.out.println(i);} public static void main(String argv[]){ Main a = new Main(); a.f(10); } } 程序运行后输出结果为:

10、请写出以下程序运行结果: public class Main { public Main() { System.out.print("main "); } public Main(String s) { this(); System.out.print("main with "+s); } public static void main(String[] args) { Main main = new Main("wow"); } }

编程 09 接口与嵌套类

1、Comparable接口与排序

2、Comparator接口与排序

3、自定义接口

第10、11周 集合框架

测验 10 集合框架

1、import java.util.*; public class TestListSet{ public static void main(String args[]){ List list = new ArrayList(); list.add("Hello"); list.add("Learn"); list.add("Hello"); list.add("Welcome"); Set set = new HashSet(); set.addAll(list); System.out.println(set.size()); } } 选择正确答案
A、编译不通过
B、编译通过,运行时异常
C、编译运行都正常,输出3
D、编译运行都正常,输出4

2、在JAVA 中,以下( )类的对象以键-值的方式存储对象
A、java.util.List
B、java.util.ArrayList
C、java.util.HashMap
D、java.util.LinkedList

3、在JAVA 中ArrayList 类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList 类的对象bookTypeList ,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( )。
A、bookTypeList.add("小说");
B、bookTypeList.get("小说");
C、bookTypeList.remove("小说");
D、bookTypeList.contains("小说");

4、已知ArrayList继承了List接口,现预构造ArrayList类的一个实例,下列哪个方法是正确的( )
A、ArrayLIst myList = new Object();
B、List myList = new ArrayList();
C、ArrayList myList = new List();
D、List myList = new List();

5、java的集合框架中重要的接口java.util.Collection定义了许多方法。选项中哪个方法不是Collection接口所定义的?( )
A、compareTo(Object obj)
B、boolean remove(Object obj)
C、boolean constainsAll(Collection c)
D、int size()

6、list 是一个ArrayList的对象,哪个选项的代码填写到//Todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?( )
A、list.remove(obj);
B、list.remove(index);
C、list.remove(it.next());
D、it.remove();

7、给定如下Java 程序代码片段,编译运行这段代码,结果是( ) java.util.HashMap map = new java.util.HashMap(); map.put("name",null); map.put("name","Jack"); System.out.println(map.get("name"));
A、null
B、Jack
C、nullJack
D、运行时出现异常

8、ArrayList类的底层数据结构是( )
A、数组
B、链表结
C、哈希表
D、哈希表

9、集合框架的顶层接口是( )
A、java.util.Map
B、java.util.Collection
C、java.util.List
D、java.util.Collections

10、关于迭代器说法错误的是( )
A、迭代器是取出集合元素的方式
B、迭代器的hasNext()方法返回值是布尔类型
C、List集合有特有迭代器
D、next()方法将返回集合中的上一个元素

编程 10 集合框架

1、使用迭代器(Iterator)删除集合对象中符合条件的元素

2、统计一篇英文文章中出现的不重复单词的个数。

3、学生选修课信息的统计

4、根据姓名以及电话号码查找联系人

第12-13周 异常处理

测验 12 异常处理

1、Java中抛出异常的关键字是( )
A、throw
B、throws
C、try
D、finally

2、( )类是所有异常类的父类
A、java.lang.Exception
B、java.lang.Error
C、java.lang.Throwable
D、java.lang.RuntimeException

3、使用catch子句捕获异常时,多个catch子句的排列应遵循什么原则( )
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个try程序块内
D、有继承关系的异常不能在同一个try程序块内

4、当某个方法中的代码可能产生异常但又不知如何处理时,下列哪种说明是正确的( )
A、捕获异常
B、嵌套异常
C、抛出异常
D、声明异常

5、一个未处理的异常将终止( )。
A、整个程序
B、仅终止抛出异常的方法
C、产生异常的try块
D、以上说法都不对

6、下列属于未受检(unchecked exception)异常的是( )。
A、java.io.FileNotFoundException
B、java.io.IOException
C、java.lang.NullPointerException
D、java.sql.SQLException

7、下面关于Java异常处理机制的说法错误的是( )。
A、一个try块可以包含多条catch语句
B、catch块不能单独使用,必须始终与try块一起使用
C、finally块可以单独使用,不必与try块配套使用
D、一个try块可以不包含catch语句

8、finally语句块中的代码( )。
A、总是被执行
B、异常发生时才被执行
C、异常没有发生时才被执行
D、当try语句块后面没有catch时,finally中的代码才会被执行

9、自定义时,可以继承的类是( )。
A、Error
B、Exception及其子类
C、JFrame
D、AssertionError

10、下面的程序段执行结果是( )。 public class None { public static void main(String[] args) { try{ return; }finally { System.out.println("finally"); } } }
A、编译通过,但运行时出现异常
B、程序正常运行,不输出任何结果
C、程序正常运行,并输出“finally”
D、因为没有catch语句,编译错误

编程 12 异常处理

1、员工信息录入

2、日期转换,考察:try...catch...finally, Date、SimpleDateformat、

3、面积计算

期中小测

期中小测(理论)

1、以下哪个不是Java语言的关键字?
A、main
B、System
C、Scanner
D、if
E、else
F、while
G、do
H、switch
I、goto
J、class

2、对于以下代码: for ( int i=0; i<10; i++) System.out.println(i); for循环结束后,i的值是多少?
A、i不再存在了
B、9
C、10
D、11
E、没有确定的值

3、以下哪个for语句是错误的?
A、for (i=0;j=0; i<10; i++ );
B、for (i=0,j=0; i<10; i++; j++ );
C、for ();
D、for (i=0; i<10, j<10; i++);
E、for (;;);
F、for ( i=0; j<10; j++ );
G、for (i=0; i<10; i--);

4、以下哪段代码可以编译:
A、int i,k; for ( i=0, k=9; i<10 && k>0; i++, k--);
B、int i; for ( i=5, int j=10; j<10; j-- ) ;
C、int i,j; for ( i=0, j=10; i<10, j>0; i++, j--)
D、int i,j; for ( i=0; j=10; i<10; i++, j--);

5、以下哪个函数是不能编译的?
A、void f(int i) { return i; }
B、int f() { }
C、void f() { }
D、int f() { return 0; }
E、int f(void) { return 0; }

6、对于以下代码段:String s1 = "a"; String s2 = "b"; String s3 = ""; 以下操作可以编译的是:
A、s3 = s1 + s2;
B、s3 = s1 - s2;
C、s3 = s1 & s2;
D、s3 = s1 . s2;
E、s3 = s1 $ s2;
F、s3 = s1 ^ s2;
G、s3 = s1 * s2;
H、s3 = s1 # s2;

7、以下代码片段编译运行的结果是:int Output=10; boolean b1 = false; if((b1==true) && ((Output+=10)==20)){ System.out.println("We are equal "+Output); } else { System.out.println("Not equal! "+Output); }
A、输出"Not equal! 10"
B、编译错误
C、输出"We are equal 10"
D、输出"Not equal! 20"

8、以下哪个是定义和创建数组的正确方式?
A、int a[] = { 1,2,3,4,5};
B、int a[5];
C、int a[] = new [5];
D、int a = new int[5];
E、int[] a = new int[5];

9、以下代码片段的输出是?boolean m = true; if ( m=false ) System.out.println("False"); else System.out.println("True");
A、True
B、False
C、编译错误
D、没有输出

10、以下代码片段之行后,temp的值是?int temp = (int)3.9; temp %= 2;
A、1
B、2
C、3
D、0

11、对 for(表达式1;;表达式3) 可理解为_______
A、for(表达式1;true;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
E、for(表达式1;false;表达式3)
F、for(表达式1;0;表达式3)

12、以下哪个不是有效的Java变量名?
A、4ever
B、double
C、Double
D、变量
E、$q
F、Int
G、link

13、表达式 ‘B’+‘8’-‘3’ 表示的字符是:
A、G
B、g
C、69
D、5

14、循环语句 while (!x&&!y) 中的循环条件表达式等价于
A、!(x || y)
B、!(x!=false||y!=false)
C、x=false && y=false
D、!(x==false || y==false)
E、!(x==false && y==false)

15、对于 int x, y; 语句 if (x < 0) y = -1; else if (!x) y = 0; else y = 1; 等价于
A、y=0; if (x!=0) if(x>0) y=1; else y=-1;
B、if (x>=0) y=0; if(x) y=1; else y=-1;
C、y=0; if (x>=0) if(x) y=1; else y=-1;
D、if (x != 0) if (x > 0) y = 1; else y = -1;

16、有以下代码片段: int m[] = { 0, 1, 2, 3, 4, 5, 6}; 以下哪项可以给出数组的单元个数?
A、m.length
B、m.length()
C、m.size()
D、m.size

17、以下哪个表达式表示“当 x 的取值在 [-10, 0] 的范围内,结果为真,否则为假”
A、x>=-10&&x<=0
B、x<=0&&x>=-10
C、!(x<-10||x>0)
D、-10 <=x<=0
E、-10 <x<0
F、x in [-10, 0]
G、x within [-10, 0]

18、假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是
A、ch=ch+32
B、ch+=32
C、ch=ch+‘a'-'A'
D、ch=ch-32
E、ch-=32
F、ch=ch-'a'-'A'

19、以下哪个是有效的Java程序入口函数?
A、public static void main(String[] args);
B、public static void main();
C、public static int main(String[] args);
D、public static void main(int argc, String[] args)

20、对于String s;,以下哪句是对的?
A、s是一个变量,它将要管理一个String的对象
B、s是一个变量,其中有一个String的对象
C、s现在的值是null
D、s是一个变量,它现在正管理着一个String的对象

21、以下哪个switch-case是错误的?
A、boolean b; switch (b) { case...}
B、int i; switch (i) { case...}
C、String s; switch (s) { case...}
D、char c; switch (c) { case...}

22、以下代码片段: String s1 = "hello"; String s2 = "hello"; System.out.println(s1 == s2); 以下哪句是正确的?
A、输出“true”
B、输出“false”
C、不能编译
D、运行时刻出现异常

23、有以下定义: double a,b,c; 则以下哪个表达式与a/b/c不等价?
A、a/(b/c)
B、a/c/b
C、a/(b*c)
D、(a/b)/c

24、以下哪句不能编译?
A、if ( a==b ) else System.out.println("no");
B、if ( a==b ); else System.out.println("no");
C、if ( a==b ){ } else System.out.println("no");
D、if ( a==b ) System.out.println("no");

25、以下哪个循环并非重复5次?
A、int i; for (i=0; i<=5; i++) { }
B、int i; for (i=0; i<5; i++) { }
C、int i; for (i=1; i<=5; i++) { }
D、int i; for (i=1; i<6; i++) { }

26、以下哪个循环能编译?
A、for (int i=10 ; i<100; i++ ) { }
B、for (int i=10 ; i<100 ) { }
C、for (int i=10 ; i++ ) { }
D、for (int i=10 , i<100, i++ ) { }

27、对于以下代码: int i,j=6; 以下哪句话是对的?
A、i不会被初始化,而j是6
B、i和j的初始值都是6
C、i被初始为0,而j是6
D、不能通过编译

28、以下代码片段编译执行的结果是: System.out.println("Zhejiang University".length);
A、编译错误
B、19
C、2
D、运行异常

29、对于以下代码: int i=6; if ( i<= 6 ) System.out.println("hello"); else System.out.println("bye-bye"); 哪句话是对的?
A、打印出“hello”
B、打印出“bye-bye"
C、不能编译
D、打印出”hello bye-bye“

30、对于以下代码: int i=6; do { System.out.println(i--); } while (false); 哪句话是对的?
A、打印出6
B、通不过编译
C、打印出5
D、打印不出东西

31、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为
A、.class
B、.exe
C、.java
D、.byte
E、.jar

32、下面的方法,当参数值为2的时候返回值是多少public int getValue(int i) { int result = 0; switch (i) { case 1: result = result + i; case 2: result = result + i * 2; case 3: result = result + i * 3; } return result; }
A、10
B、8
C、6
D、4
E、2
F、0

33、给出下面代码,关于该程序以下哪个说法是正确的public class Person{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]); } }
A、输出0
B、编译错误
C、运行时刻异常
D、输出为空

34、以下哪种运算能从变量x中取得它的个位数
A、x%10
B、x/10
C、x*10
D、x-10
E、x[10]
F、x^10

35、在代码: while ( !e ) 中,!e等价于:
A、e==false
B、!(e==true)
C、e!=true
D、e==0
E、!e=1
F、e

36、Java的字符类型采用的是ASCII编码

37、Java语言中不用区分字母的大写小写

38、Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关

39、Java中数组的下标只能是各种整数数据类型

40、使用方法length( )可以获得字符串及数组的长度

41、一个数组可以存放不同类型的数值

42、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了

43、int是比long窄的类型

44、boolean和int之间不能相互赋值

45、数组的大小必须在写程序时就确定

46、数组一旦被创建出来,就不能改变大小

期中小测(编程)

1、处理学号

2、成绩处理

中国大学Java程序设计_15

Java程序设计是计算机科学中非常重要的一门课程。随着计算机技术的不断发展,Java已经成为了一种非常流行的编程语言,特别是在企业级应用中的开发。本文将介绍中国大学Java程序设计第15章的相关内容。

15.1 异常处理

异常处理是Java语言中的一种重要机制。在Java中,异常可以是程序中的错误、非法操作或其他意外情况的信号。当代码中出现异常时,会抛出一个异常对象,并且程序会终止执行。Java中提供了try-catch-finally语句用于捕获和处理异常。

15.1.1 异常类型

Java中的异常被分为两种类型:检查异常和非检查异常。检查异常需要在代码中进行显式处理,否则编译器会报错。非检查异常则不需要显式处理,但是在程序运行时会抛出运行时异常。

15.1.2 try-catch-finally语句

try-catch-finally语句是Java中用于捕获和处理异常的机制。try块中包含了可能抛出异常的代码。如果在try块中发生了异常,程序会跳转到相应的catch块中进行处理。finally块中的代码无论如何都会执行,一般用于释放资源等操作。

15.2 文件操作

文件操作是Java程序设计中常用的一种操作。Java中提供了File类用于表示文件或目录,以及FileInputStream和FileOutputStream类用于读写文件。Java还提供了缓冲输入输出流和对象输入输出流用于提高读写效率。

15.2.1 File类

File类用于表示文件或目录,可以获取文件或目录的属性、创建或删除文件或目录、重命名文件或目录等操作。常用的方法包括:getName()、getPath()、isFile()、isDirectory()、length()、renameTo()等。

15.2.2 FileInputStream和FileOutputStream类

FileInputStream和FileOutputStream类用于读写文件。其中FileInputStream用于从文件中读取数据,FileOutputStream用于向文件中写入数据。常用的方法包括:read()、write()、close()等。

15.2.3 缓冲输入输出流

缓冲输入输出流可以提高文件读写效率,可以通过BufferedInputStream和BufferedOutputStream类实现。缓冲输入输出流会将数据缓存到内存中,当缓存达到一定大小时再一次性写入或读取,从而提高效率。

15.2.4 对象输入输出流

对象输入输出流可以用于序列化和反序列化Java对象。可以通过ObjectInputStream和ObjectOutputStream类实现。序列化可以将Java对象转换为字节序列,从而实现对象的持久化存储。反序列化则是将字节序列转换回Java对象。

总结

本文介绍了中国大学Java程序设计第15章的相关内容。其中包括异常处理、文件操作、缓冲输入输出流和对象输入输出流。熟练掌握这些知识对于Java程序设计的学习和实践都非常重要。