本文内容可能已过时或不再适用,请结合实际情况谨慎参考。

一、实验内容

1.判断下面的说法是否正确。如果错误,请说明原因

①一个数组中可以存放多个不同类型的值

错误原因:Java 数组必须存放相同数据类型的元素,创建数组时就确定了类型,只能存该类型或其子类对象,不能随意存放不同类型的值。

②数组下标通常是 float 型的

错误原因:数组下标只能是整数类型(byte、short、int、long),不能是浮点型,浮点型无法作为数组索引。

③二维数组其实质是一维数组的一维数组

正确原因:Java 二维数组本质是每个元素都是一维数组的一维数组,属于数组嵌套形式。

2.什么是异常?举出程序中常见的异常的种类?

异常(Exception) 是程序在运行过程中出现的非正常事件(如错误输入、文件找不到、空指针等),它会中断程序正常的指令流,导致程序崩溃终止。

简单理解:程序原本按步骤正常执行,遇到异常就会 “卡住报错”,如果不处理,程序会直接停止运行。
Java 中所有异常都继承自 Throwable 类,分为错误(Error)和异常(Exception) 两大类,我们日常说的异常主要指 Exception。

  1. 运行时异常(非受检异常,RuntimeException):程序编译正常,运行时才会触发,无需强制捕获处理,是最常遇到的异常。
  • NullPointerException(空指针异常):调用了 null 对象的方法 / 属性,最常见的异常。示例:String str = null; str.length();
  • ArrayIndexOutOfBoundsException(数组下标越界异常):访问数组时,下标超出数组的长度范围。示例:int[] arr = {1,2}; arr[5];
  • ArithmeticException(算术异常):数学运算错误,最典型的是除零运算。示例:int a = 10 / 0;
  • ClassCastException(类型转换异常):强制类型转换时,对象的实际类型不匹配。示例:把 String 强转为 Integer
  • IllegalArgumentException(非法参数异常):调用方法时传入了不合法 / 错误的参数。
  • IndexOutOfBoundsException(索引越界异常):集合、字符串等访问索引超出范围(数组越界是其子类)。
  1. 编译时异常(受检异常,Exception):编译阶段就会报错,Java 强制要求必须捕获 / 抛出处理。
  • IOException(输入输出异常):文件操作、网络传输等 IO 相关错误,是一大类异常的父类。
  • FileNotFoundException(文件未找到异常):打开 / 读取不存在的文件时触发(IOException 子类)。
  • ClassNotFoundException(类未找到异常):程序运行时找不到指定的类文件。
  • SQLException(数据库异常):操作数据库(连接、增删改查)时出现的错误。
  • ParseException(解析异常):字符串转日期、数字等格式解析失败。

3. 运行例 6-1 到例 6-10。

例 6-1:编写一个应用程序,求 Fibonacci 数列的前 10 个数。

Fibonacci 数列的定义为:F1 = F2 = 1;当 n ≥ 3 时,Fn = Fn+1 + Fn+2

JAVA

运行结果:

JAVA

例 6-2:编写一个应用程序,在屏幕上输出整型数组的各元素。

JAVA

运行结果:

JAVA

例题 6-3:使用对象数组示例。

JAVA

运行结果:

JAVA

例题 6-4:编写应用程序,进行数组名之间的复制。

JAVA

运行结果:

JAVA

例题 6-5:二维数组引用示例。

JAVA

运行结果:

JAVA

例题 6-6:使用多种构造方法创建一个字符串并输出字符串。

JAVA

运行结果:

JAVA

例题 6-7:改变字符串的内容。

JAVA

运行结果:

JAVA

例题 6-8:枚举类型的使用示例。

JAVA

运行结果:

JAVA

例题 6-9:从键盘上输入圆的半径,求圆的面积。

JAVA

运行结果:

JAVA

例题 6-10:SimpleDateFormat 类使用示例。

JAVA

运行结果:

JAVA

4. Java中异常处理有什么优点?

5.在 Java 中,throw 与 throws 有什么区别?它们各自用在什么地方?

6. try-catch-finally 语句的执行顺序是怎样的?

7.运行例题 6-11 到例题 6-14。

例题 6-11:捕获异常使用示例。

JAVA

运行结果:

JAVA

例题 6-12:显示抛出异常使用示例。

JAVA

运行结果:

JAVA

例题 6-13:转移异常使用示例。

JAVA

运行结果:

JAVA

例题 6-14:自定义异常使用示例。

JAVA

运行结果:

JAVA

8. 看程序写结果。

(1)下面是一个排序的程序:

JAVA
import java.io.;

public class Test56_Sort{

public static void main(String args[ ]){

    int[] a={42,99,5,63,95,36,2,69,200,96};

    System.out.println("排序前的数据序列:");

    ShowArray(a);

    Sort(a);

    System.out.println("排序后的数据序列:");

    ShowArray(a);

}

public static void Sort(int[] x){

    int w;

    for(int i=1; i<x.length; i++){

        for(int j=0; j<x.length-1; j++)

            if(x[j]>x[j+1]){

w=x[j]; x[j]=x[j+1]; x[j+1]=w;

}

/ if(i==1||i==2) ShowArray(x);

if(i==2) break; /

}

}

public static void ShowArray(int b[]){

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

    System.out.print(" "+b[i]);

    System.out.println(" ");

}

}

问题: 如果将方法Sort( )中的一对注释符(/ */)去掉,程序输出的结果是什么?

(2)写出以下程序的功能

JAVA
public  class  ABC{

    public  static  void   main(String  args[ ]){

        int   i , j ;

        int  a[ ] = { 9,7,5,1,3};

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

            int  k = i;

            for  ( j = i ; j < a.length ;  j++ )

                if  ( a[j]>a[k] )  k = j;

            int  temp =a[i];

            a[i] = a[k];

            a[k] = temp;       

}

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

            System.out.print(a[i]+"  ");

       System.out.println( );

    }

}

(3)仔细阅读下面的程序,写出程序的执行顺序(写出编号):

JAVA
public class UsingExceptions {

   public static void main( String args[] ) {

        try{       

         method1();                            // 1

       }catch(Exception e){

          System.err.println(e.getMessage());    // 2

       }

       finally{

          System.out.println("Program is end!");  // 3

       }

   }

   public static void method1() throws Exception {

      method2();                              //4

   }

   public static void method2() throws Exception {

      method3();                           //5

   }

   public static void method3() throws Exception {

      throw new Exception( "Exception thrown in method3" ); //6

   }

}

9. 写程序。

(1)将一个数组中的值按逆序重新存放。假定原来的顺序为 4,1,3,5,9,2,1。要求改为 1,2,9,5,3,1,4。
(2)写出比较 2 个字符串是否相同的方法,并加以说明。

二、课后习题

第六章:数组、Java 类库、异常

一、填空题
二、选择题
三、输出结果题
四、问答题
五、编程题

评论