0.065

五煦查题

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

超星Java面向对象程序设计_3期末答案(学习通2023题目答案)

85 min read

超星Java面向对象程序设计_3期末答案(学习通2023题目答案)

第1讲 概述

第1讲概述测验

1、超星程序运行Java程序的面向目答命令是:
A、javadoc
B、对象答案javac
C、设计java
D、期末exe

2、学习编译Java源程序的通题命令是:
A、javadoc
B、超星程序javac
C、面向目答java
D、对象答案exe

3、设计Java程序编译后产生的期末字节码文件的扩展名为:
A、java
B、学习class
C、通题html
D、超星程序exe

4、main方法是Java Application程序执行的入口点,下面main方法的方法头哪项是合法的:
A、public static void main( )
B、public static int main (String[] arg)
C、public static void main (String args[ ])
D、public void main (String args[])

5、Java开发工具包的缩写是
A、JDK
B、JRE
C、JVM
D、Java

6、以下哪一个不是Java语言的保留字(关键字)?
A、main
B、int
C、long
D、float

7、通过Java程序中的文档注释产生Java文档的命令是 ( )
A、java.exe
B、javac.exe
C、jar.exe
D、javadoc.exe

8、以下哪一条语句不是正确的Java注释语句?
A、// 正确的注释信息
B、/* 正确的注释信息
C、/* 正确的注释信息 */
D、/** 正确的注释信息 */

9、main 方法的返回类型是 ( )
A、public
B、static
C、void
D、String

10、目前Java语言属于以下哪一个公司/组织所有?
A、SUN公司
B、Microsoft公司
C、Google公司
D、Oracle公司

11、Java是从( )语言改进重新设计。
A、Ada
B、C++
C、Pascal
D、Basic

12、Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?
A、安全性?
B、多线程
C、跨平台
D、可移植

13、面向对象程序的三个基本特性是:
A、抽象
B、封装
C、继承
D、多态

14、面向对象语言有哪些:
A、C++
B、C
C、Java
D、Python

15、Java语言的特点有:
A、跨平台性
B、简单
C、面向对象
D、网络编程

16、以下变量初始化语句中,正确的有 ( )
A、boolean flag = true;
B、int i = 32;
C、float r = 10.0;
D、double pi = 3.1415926;
E、int value = 32.0;

17、关于面向对象程序设计以下描述正确的有:
A、面向对象程序设计的本质是以建立模型体现出来的抽象思维过程和面向对象的方法。
B、类描述了一类对象的行为和状态,是一组具有相同特性(属性)与行为(方法)的事物集合。
C、对象是一个个性的产物,是一个个体的特征,是类的一个实例。
D、面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。

第2讲 Java 编程基础

第2讲Java编程基础测验

1、以下关于变量的说法错误的是?
A、变量名必须是一个有效的标识符
B、变量在定义时可以没有初始值
C、变量一旦被定义,在程序中的任何位置都可以被访问
D、在程序中,可以将一个byte类型赋值给一个int类型的变量,不需要特殊声明

2、表达式25 / 4的结果是
A、6.25
B、6
C、6.0
D、以上都不对

3、double类型的数据占用( )字节
A、1
B、2
C、4
D、8

4、下列哪项不属于Java语言的基本数据类型?
A、String
B、int
C、double
D、boolean

5、下列关于基本数据类型的说法中,不正确的一项是
A、boolean类型变量的值只能取真或假
B、float是带符号的32位浮点数
C、double是带符号的64位浮点数
D、char是8位Unicode字符

6、假设a是int类型的变量,并初始化为1,则下列( )是合法的条件语句?
A、if ( a ) { }
B、if ( a << = 3) { }
C、if ( a = 2) { }
D、if ( true ){ }

7、设a、b为long型变量,x、y为float型变量,ch为char类型变量,且它们均已赋值,则下列语句中正确的是:
A、switch ( x+y ) { }
B、switch ( ch+1 ) { }
C、switch ( a ) { }
D、switch ( a+b ) ; { }

8、byte 类型变量的取值范围是 ( )
A、0 ~ 256
B、-256 ~ 255
C、0 ~ 256
D、-128 ~ 127

9、以下 switch 语句使用正确的是 ( )
A、public void testSwitch(char ch) { switch (ch) { } }
B、public void testSwitch(float f) { switch (f) { } }
C、public void testSwitch(long lng) { switch (lng) { } }
D、public void testSwitch(double d) { switch (d) { } }

10、Java 语言中的 do/while 结构属于以下哪一种结构?( )
A、顺序结构
B、分支结构
C、循环结构
D、方法结构

11、整型数据类型中,需要内存空间最少的是 ( )
A、byte
B、short
C、int
D、long

12、下列不可以作为Java语言标识符的是( )
A、a1
B、$1
C、11
D、_1

13、以下标识符的定义是否合法:2018order

14、以下标识符的定义是否合法:getName

15、以下标识符的定义是否合法:get status

16、以下标识符的定义是否合法:class

17、以下标识符的定义是否合法:student+num

18、以下标识符的定义是否合法:SUBJECT

19、Java语言使用的是Unicode字符集,每个字符在内存中占8位。

20、如果a的值为4,b的值为3,则在执行了a=b;b的值仍为3。

第3讲 字符串与数组

第3讲 字符串与数组测验

1、定义了一维int型数组a[10]后,下面错误的引用是( )
A、a[0]=1;
B、a[10]=2;
C、a[0]=5*2;
D、a[1]=a[2] + a[0];

2、引用数组元素时,数组下标可以是( )
A、整型常量
B、整型变量
C、整型表达式
D、以上均可

3、1. 下面程序的运行结果是( ) main() { int a[ ][ ] = { { 1, 2, 3 } , { 4 , 5 , 6 } } ; System.out.printf( "%d" , a[1][1] ) ; }
A、3
B、4
C、5
D、6

4、1. 下面程序的运行结果是( ) public static void main( String[ ] args ) { int x = 30; int [ ] numbers = new int[x]; x = 60; System.out.println( numbers.length ) ; }
A、20
B、30
C、50
D、60

5、下面创建数组的语句不正确的是( )
A、float f[ ][ ] = new float[6][6];
B、float f[ ] = new float[6];
C、float f[ ][ ] = new float[ ][6];
D、float [ ][ ] f = new float[6][ ];

6、数组a的第三个元素表示为 ( )
A、a(3)
B、a[3]
C、a(2)
D、a[2]

7、执行完代码" int [ ] x = new int[25] ; "后,下面选项哪个是正确的( )
A、x[24]为0
B、x[24]未定义
C、x[25]为0
D、x[0]为空

8、Java采用的字符集是()
A、ASCII
B、Unicode
C、ISO8859
D、GB2312

9、下列叙述哪些是正确的?
A、String类是final类,不可以有子类
B、String类在java.util包中
C、”abc”.equals(“abc”)的值是false
D、String类可以创建可变字符串

10、一个数组可以存放许多不同类型的数值。

11、声明数组时,要指定数组长度,以便为数组分配内存。

12、声明一个数组int arr[] = new int[5]; 代表这个数组长度为5,数组元素下标的使用范围是0-4。

13、数组创建后其大小可以改变。

14、数组下标访问超出索引范围时抛出数组越界异常。

15、Java中,用来获取字符串长度的函数是length()

16、Java中,用来取字符串子串的函数是substring()。

17、System.out.println("student".substring(1, 3)); 输出结果为:tud

18、String str = “oop.163.com”; String temp[ ] = str.split("."); 执行完该语句,temp的内容为:temp[0]=oop temp[1]=163 temp[2]=com

19、String类的charAt(int index) 方法, 返回指定索引处的 char 值。

20、String类的compareTo(String anotherString) ,是按字典顺序比较两个字符串。

第4讲 方法

第4讲 方法测验

1、下列是方法定义的形参表,定义形式正确的是( )。
A、int num1,num2
B、num1,int num2
C、int num1,int num2
D、int num1, int num1

2、若有以下调用语句,则正确的fun()方法头部是( )。 public static void main(String args[]) { float x; int a; ……. fun( a, x ); }
A、void fun(int m, float n)
B、void fun(float a, int x)
C、void fun(int m, float x[])
D、void fun(int[] x,float a)

3、关于方法的参数以下说法正确的是( )。
A、Java中每个方法都必须有参数。
B、方法的参数要么是一个,要么是多个。
C、有返回值的方法必须有参数。
D、形参变量是int型的方法,调用语句中所给的实参数据也必须是int型。

4、属于main()方法的返回类型是( )
A、public
B、static
C、void
D、main

5、若有方法定义: staitc int fun(int num){ return 2 * num ; } 以下调用语句正确的是( )。
A、System.out.println(fun(“A”));
B、int a = fun(2.3);
C、fun(2 , 3);
D、if(fun(4) == 8 ) System.out.println(“正确”);

6、关于方法的参数描述正确的是:
A、方法参数在声明时,不需要说明数据类型。
B、方法的参数个数可以是0个到多个。
C、方法的参数有多个时,声明时用分号区分。
D、方法参数没有时,方法名后面的括号可以省略。

7、关于方法调用下面描述不正确的是:
A、通过方法名来调用方法。
B、调用方法时,参数的数量必须与方法定义一致。
C、调用方法时,参数的顺序必须与方法定义一致。
D、调用方法时,参数的数量和顺序可以不一致。

8、Java语言规定,应用程序开始执行点是main()方法。

9、方法体内,有返回数值时需要使用return 语句。

10、方法体内,如果没有return语句,应该将方法头声明为null。

11、方法内部定义的变量是局部变量。

12、方法内的局部变量不需要赋初始值就可以使用,系统会自动赋默认的初始值。

13、调用方法时,实参要与定义的形参类型、个数和顺序一致。

14、方法是完成某个功能的一组语句,通常将常用的功能写成一个方法。

15、返回值类型是用来说明该方法运算结果的类型。

16、方法名是调用时引用方法的标识。

17、方法的参数个数可以是1个到多个,每个参数前面要声明参数的数据类型

18、方法参数有多个时,每个参数要用分号分开。

19、形式参数,在方法被调用时用于接受外部传入的变量。

20、返回值是方法在执行完毕后返回给调用它的程序的数据。

第5讲 类和对象

第5讲 类和对象测验

1、以下对于构造方法说法正确的是 ( )
A、构造方法的名字可以与类名不一致
B、构造方法不能被重载
C、一个类必须包含至少一个构造方法
D、构造方法可以有返回值

2、以下关于构造方法表述错误的是( )
A、构造方法的名字和类名相同
B、构造方法不能被重载
C、构造方法的作用主要是在创建对象时执行一些初始化操作
D、构造方法没有返回值

3、以下关于Java中的方法重载说法错误的是( )
A、重载的方法其方法名必须相同
B、重载的方法其参数个数或参数类型不同
C、构造方法可以被重载
D、成员方法不可以被重载

4、static修饰符的作用表述错误的是( )
A、用static关键字修饰的成员变量或方法称为静态成员或类成员
B、静态成员依赖于特定对象
C、系统只在实例化类的第一个对象时,为静态成员分配内存
D、不同对象的静态成员将共享同一内存空间

5、阅读以下程序,下列选项错误的是( ) public class xClass { private int u; private double w; public xClass(){ } public xClass(int a, double b){ } private void func(){ } public void print(){ } }
A、xClass类有3个私有成员
B、xClass类有两个构造方法
C、func()方法不可以访问u和w变量
D、print()方法可以访问u和w变量

6、关于局部变量和成员变量,以下说法错误的是:
A、类的成员包括成员变量和成员方法。
B、成员变量可以不明确初始化,系统会赋默认值。
C、局部变量可以不明确初始化,系统会赋默认值。
D、局部变量和成员变量的作用范围不同。

7、关于类的定义,下面说法错误的是:
A、定义类的关键字是:class。
B、类名必须是合法的标识符,一般每个单词的首字母大写。
C、类中定义成员变量和成员方法。
D、方法可以写在类的定义外。

8、类是对象的抽象。( )

9、对象是类的抽象。( )

10、对象是类的实例。( )

11、一个类可以创建多个对象。( )

12、一个对象可以创建多个类。( )

13、this可以调用构造方法。

14、静态方法可以调用非静态方法。

15、非静态方法可以调用静态方法。

16、类及其属性、方法可以同时有一个以上的修饰符来修饰。

17、类中定义的方法可以定义在类体外。

18、class是定义类的唯一关键字。

19、局部变量在使用前必须明确赋值,否则编译时会出错。

20、类变量在使用前可以不用赋值,它们都有默认的值。

第6讲 封装

第6讲 封装测验

1、下列哪种类成员修饰符修饰的变量只能在本类中被访问?
A、public
B、protected
C、default
D、private

2、在Java语言中,哪一个包中的类是自动导入的?
A、java.lang
B、java.awt
C、java.io
D、java.util

3、下列有关类声明的代码片段,哪一项是正确的?
A、package libray; import java.sql.*; class Book { }
B、import java.sql.*; package libray; class Book( )
C、package libray; class Book{ } import java.sql.*;
D、package libray; import java.sql.*; private String ISBN; class Book { }

4、对成员的访问控制保护最强的是:
A、public
B、private
C、default
D、protected

5、关于实现封装的方法,下面描述错误的是:
A、把成员变量用private修饰,提供对应的getXxx()和setXxx()方法。
B、对方法修饰合适的访问控制权限。
C、对类修饰合适的访问控制权限。
D、对包修饰合适的访问控制权限。

6、下面哪个选项不是封装的优点:
A、信息隐藏
B、模块化
C、提高执行效率
D、具有安全性

7、关于包,下面描述错误的选项是:
A、为了更好地组织类,Java提供了包机制。
B、包是类的容器,用于分隔类名空间。
C、一个类如果没有指定包名,都属于一个默认的无名包。
D、可以在任何位置写入package语句。

8、关于包,下面描述错误的选项是:
A、包的名字有层次关系,各层之间以点分隔。
B、程序中如果有package语句,该语句一定是源文件中的第一条可执行语句。
C、import语句将其他包中的类引入当前名字空间中。
D、包是管理类的方法,跟封装无关。

9、封装是隐藏对象的属性和实现细节,仅对外提供公有的方法。

10、只有private修饰成员变量才是类的封装体现。

11、一个文件中最多只能有一条package语句。

12、包是一种特殊的类。

13、包使用package语句创建。

14、方法,类,包,都是实现封装的手段。

15、类是一种数据类型,类决定对象的属性和方法。

16、封装的缺点有:会影响执行效率。

17、程序中如果有package语句,该语句一定是源文件中的第一条可执行语句。

18、包的名字有层次关系,各层之间以点分隔。

19、包层次必须与Java开发系统的文件系统结构相同。

20、通常包名中全部用小写字母。

第7讲 继承

第7讲 继承测验

1、Java语言的类间的继承关系是( )。
A、多重的
B、单重的
C、线程的
D、不能继承

2、现有两个类A、B,以下描述中表示B继承自A的是( )
A、class A extends B
B、class B implements A
C、class A implements B
D、class B extends A

3、Java语言的类间的继承的关键字是( )。
A、implements
B、extends
C、class
D、public

4、下列选项中,定义抽象类的关键字是( )。
A、interface
B、implements
C、abstract
D、class

5、下列选项中,定义最终类的关键字是( )
A、interface
B、implements
C、abstract
D、final

6、下列选项中,哪个是java语言所有类的父类( )
A、String
B、Vector
C、Object
D、KeyEvent

7、下列选项中,表示终极方法的修饰符是 ( )
A、interface
B、final
C、abstract
D、implements

8、方法定义时,返回类型前面的 static 保留字的含义是( )
A、方法体为空
B、该方法没有形式参数
C、该方法的返回值不能参与运算
D、该方法属于类的方法

9、在 Java 程序的抽象类中,()
A、必须有抽象方法
B、可以有抽象方法,也可以没有抽象方法
C、不能有抽象方法
D、以上答案都不对

10、在 Java 程序中,( ) 是程序的基本单元。
A、对象
B、方法
C、类
D、函数

11、以下关于 Java 语言中继承的说法,正确的是 ( )
A、一个类可以有多个直接父类
B、抽象类不能有子类
C、通过实现多个接口,可以达到多重继承的效果
D、final 类可以作为其它类的父类

12、以下关于 Java 语言中继承的说法,错误的是( )
A、一个类可以有多个直接父类
B、抽象类可以有子类
C、通过实现多个接口,可以达到多重继承的效果
D、final 类不能作为其它类的父类

13、如果子类中的方法 myMethod() 要重写父类中的同名方法,假设父类中该方法的头部定义如下: void myMethod(int a) 则子类方法的定义中,不合法的是 ( )
A、public void myMethod(int a)
B、protected void myMethod(int a)
C、private void myMethod(int a)
D、void myMethod(int a)

14、下列选项中,表示成员变量或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以访问的修饰符是 ( )
A、public
B、protected
C、private
D、以上答案都不对

15、在 Java 程序中有两个类 First 和 Second,以下表示类 Second 从 First 类来继承的是( )
A、class First extends Second
B、class First implements Second
C、class Second extends First
D、class Second implements First

16、以下关于 Java 程序里构造方法的说法中,正确的是 ( )
A、一个类的构造方法可以有多个
B、构造方法在类定义时被调用
C、构造方法可以和类名相同,也可以不相同
D、构造方法智能由对象中的其它方法调用

17、若在某一个类中定义有如下的方法: public final String getName() 则该方法属于 ( )
A、本地方法
B、最终方法
C、静态方法
D、抽象方法

18、以下哪一个方法与下列方法不是重载关系? public int max(int x, int y)
A、public double max(double x, double y)
B、public int max(int a, int b)
C、public int max(int a, int b, int c)
D、public double max(double m, double n)

19、关于 Java 中子类构造方法的说明,不正确的是 ()
A、子类无条件地继承父类的无参数构造方法
B、子类可以在自己的构造方法中使用 super 保留字来调用父类的有参数构造方法,但是这个调用必须是子类构造方法的第一个可执行语句
C、在创建子类的对象时,将先执行继承自父类的无参数构造方法,然后再执行子类自己的构造方法
D、子类不但可以自动调用父类的无参数构造方法,也可以自动调用父类的有参数构造方法

20、在 Java 中,表示成员变量或方法只能被定义它的类访问的访问权限修饰符是 ( )
A、private
B、public
C、protected
D、默认的

第8讲 多态

第8讲 多态测验

1、一个类实现接口的情况是( )。
A、一次可以实现多个接口
B、一次只能实现多个接口
C、一次只能实现一个接口
D、不能实现接口

2、下面说法不正确的是( )。
A、抽象类既可以做父类,也可以做子类
B、abstract和final可以同时修饰一个类
C、抽象类中可以没有抽象方法
D、有抽象方法的类一定是抽象类或接口

3、下面说法正确的是( )。
A、可以创建抽象类的对象。
B、可以创建接口的对象
C、声明为final类型的方法不能在其子类中重新定义
D、抽象类中必须有抽象方法

4、什么样的方法不能被重写( )。
A、public方法
B、最终方法(final方法)
C、受保护的方法
D、都不对

5、关于重载和重写的叙述正确的是( )。
A、重载是多态的一种,而重写不是
B、重载是子类中定义的方法和父类中某个方法相同
C、重写是一个类中多个同名的方法,并且方法的参数不同
D、重写方法时不允许降低方法的访问权限

6、选择以下代码的输出结果: class A { public String s = "A"; public void setS(String s) { this.s = s; } public String getS() { return this.s; } } public class B extends A { public String s = "B"; public void setS(String s) { this.s = s; } public String getS(){ return this.s; } public static void main(String[] args) { A a = new A(); B b = new B(); a.setS("[AA]"); b.setS("[BB]"); a = b; System.out.print(a.s); System.out.print(b.s); System.out.print(a.getS()); System.out.print(b.getS()); } }
A、AB[AA][BB]
B、[AA][BB][AA][BB]
C、A[BB][BB][BB]
D、A[BB]][AA][BB]

7、设 Derived 类为 Base 类的子类,则如下对象的创建语句中哪个是错误的?
A、Base object = new Derived();
B、Base object = new Base();
C、Derived object = new Derived();
D、Derived object = new Base();

8、在 Java 的一个类中,可以定义许多名称相同的方法,这些方法的形式参数的个数、顺序或者类型不相同。这种特性称为 ( )
A、封装
B、方法重写
C、方法重载
D、Java 不支持此特性

9、Java 程序中需要判断某个对象是否是某个类/接口的对象,一般使用( )保留字。
A、synchronized
B、instanceof
C、volatile
D、isinstance

10、下列关于 Java 语言中多态性的说法,正确的是 ( )
A、一个类中,不能有名称完全相同的方法
B、子类中不能有与父类中名称相同的方法
C、子类中可以有和父类中名称相同、形式参数也相同的方法
D、多态性就是方法的名称可以相同,但返回类型必须不同

11、在 Java 语言中,以下关于类的继承和接口的实现,正确的是( )
A、一个类最多能同时继承多个类、实现多个接口
B、一个类最多能同时继承一个类、实现多个接口
C、一个类最多能同时继承一个类、实现一个接口
D、一个类最多能同时继承多个类、实现一个接口

12、在 Java 语言中,关于子类和父类,以下说法正确的是( )
A、一个子类可以有多个直接父类,一个父类也可以有多个直接子类。
B、一个子类可以有多个直接父类,但是一个父类只能有一个直接子类。
C、一个子类只能有一个直接父类,但一个父类可以有多个直接子类。
D、上述说法都不对

13、在使用 interface 保留字声明一个接口时,只可以使用 ( )保留字来修饰该接口。
A、private
B、protected
C、public protected
D、public

14、父类的引用指向自己子类的对象是多态的一种体现形式。

15、抽象类中的方法只能定义成抽象的方法。

16、Object类的构造方法第一行是super()语句。

17、抽象方法是一种只有说明而无具体实现的方法。

18、调用this 或super构造方法的语句必须放在第一条语句。

19、一个接口不可以继承另一个接口。

20、Java 语言不允许同时继承一个类并实现一个接口。

21、动态绑定是在程序运行过程中,根据具体的实例对象确定是哪个方法。

第9讲 异常处理

第9讲 异常处理测验

1、下面哪一种异常是数组越界访问时产生的异常?
A、RuntimeException
B、NullPointerException
C、IndexOutOfBoundsException
D、ArrayIndexOutOfBoundsException

2、下面哪一种异常是空指针对象访问时产生的异常?
A、RuntimeException
B、NullPointerException
C、IndexOutOfBoundsException
D、ArrayIndexOutOfBoundsException

3、哪一个关键字用于手动抛出异常?
A、try
B、catch
C、throw
D、throws

4、如果try中的代码产生了异常,将会被那个块所捕获?
A、try
B、catch
C、throw
D、finally

5、以下哪一个关键字用于在方法头部中形式参数列表之后、方法体之前声明可能抛出的异常?
A、try
B、catch
C、throw
D、throws

6、如果try中的代码运行时产生了异常,那么,该行产生异常的代码执行之后程序的流程将如何执行?
A、继续执行try中的下一行代码
B、根据异常类型来匹配,运行对应的catch块中的代码
C、运行finally中的代码
D、运行try-catch-finally之后的代码

7、以下哪一个类及其子类是编程中不强制捕获和处理的?
A、StackOverflowError
B、OutOfMemoryError
C、RuntimeException
D、Throwable

8、在异常处理中,如释放资源、关闭文件、关闭数据库等由 ( ) 来完成
A、try子句
B、catch子句
C、finally子句
D、throw 子句

9、使用JDBC访问关系数据库,需要处理的异常类型为 ( )
A、IOException
B、SQLException
C、RuntimeException
D、DBException

10、给出一段程序,试判断哪个是正确的编写/运行结果?( ) public class MyProgram { public static void main (String args[]){ try { System.out.println(“Hello world ”); } finally { System.out.println(“Finally executing”); } } }
A、无法编译,因为没有指定异常
B、无法编译,因为程序中不包含 catch 子句
C、运行结果: Hello world
D、运行结果: Hello world Finally executing

11、对于try{ ……}catch子句的排列方式,下列正确的一项是( )
A、父类异常在前,子类异常在后
B、子类异常在前,父类异常在后
C、只能有子类异常
D、父类异常与子类异常不能同时出现

12、使用 catch(Exception e) 的好处是( )
A、只会捕获个别类型的异常
B、忽略一些异常
C、捕获try语句块中产生的所有类型的异常
D、执行一些程序

13、请问所有的异常类皆继承哪一个类?( )
A、java.lang.Throwable
B、java.lang.Exception
C、java.lang.Error
D、java.io.Exception

14、自定义异常类时,可以继承的类是( )
A、Error
B、Applet
C、Exception及其子类
D、AssertionError

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

16、在 Java 程序中,当某个方法中产生了异常,又不知道如何处理时,下列哪种说法是正确的? ( )
A、捕获异常
B、抛出异常
C、声明异常
D、嵌套异常

17、以下哪种语言没有提供异常处理机制?( )
A、C
B、C++
C、Java
D、Python

18、下列哪种情况不是异常?
A、数组下标越界
B、死循环,程序无法退出
C、文件不能打开
D、不能打开指定的网址

19、关于异常的定义,下列描述中最正确的说法是 ( )
A、程序编译错误
B、程序语法错误
C、程序自定义的异常事件
D、程序运行中发生的可预料或不可预料的异常事件,会引起程序的中断,影响程序的正常运行

20、下列描述中,哪一项不属于 finally 语句应该完成的功能?
A、释放资源
B、关闭文件
C、关闭数据库
D、分配资源

第10讲 集合类

第10讲 集合类测验

1、在List、Set、Map中,哪几个接口从Collection接口继承,以下说法正确的是()
A、List Map
B、Set Map
C、List Set
D、List Map Set

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

3、关于迭代器(Iterator),以下说法中错误的是 ( )
A、迭代器是从集合中取出元素、用来遍历的方式
B、迭代器的 hasNext() 方法的返回值是 boolean 类型
C、List 集合有特有迭代器
D、next() 方法将返回集合中的上一个元素

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

5、用于存储键值对信息的接口是( )
A、Set
B、Map
C、List
D、Collection

6、LinkedList 类的特点是 ( )
A、查询快
B、增删快
C、元素不重复
D、元素自然排序

7、Java 中的集合类包括 ArrayList 、LinkedList、HashMap 等,下列关于集合类描述正确的是?( )
A、ArrayList 和 LinkedList 均实现了 List 接口
B、ArrayList 访问速度比 LinkedList 快
C、随机添加和删除元素时,ArrayList 的表现更加快速
D、HashMap 实现了 Map 接口,它允许任何类型的键和值对象,并允许将 null 用作键或值

8、实现下列哪个接口,可以启用比较功能? ( )
A、Runnable接口
B、Iterator接口
C、Serializable接口
D、Comparator接口

9、对于HashMap集合,以下说法正确的是 ( )
A、底层是数组结构
B、底层是链表结构
C、可以存储 null 值和 null 键
D、不可以存储 null 值和 null 键

10、下面类或者接口中,不属于Java集合体系的是 ( )
A、java.util.Collections
B、java.util.Map
C、java.util.Vector
D、java.util.Hashtable

11、在Java中,( )类可用于创建链表数据结构的对象。
A、LinkedList
B、ArrayList
C、Collection
D、HashMap

12、使用TreeSet的无参构造创建集合对象存储元素时,该元素必须 ( )
A、实现Comparable接口
B、有main方法
C、有get和set方法
D、实现Serializable接口

13、下列( )选项中的方法是LinkedList类有而ArrayList类没有的。
A、add(Object o)
B、add(int indexObject o)
C、remove(Object o)
D、removeLast()

14、下面关于Collection 和 Collections的区别,正确的是 ( )
A、Collections 是集合顶层接口
B、Collection 是针对 Collections 集合操作的工具类
C、List、Set、Map都继承自Collection接口
D、Collections 是针对 Collection 集合操作的工具类

15、以下哪种编程方式,不是 List 集合的正确遍历方式? ( )
A、Iterator迭代器实现
B、增强for循环实现
C、get()和size()方法结合实现
D、get()和length()方法结合实现

16、以下结构中,( )具有同步功能,是线程安全的?
A、HashMap
B、ConcurrentHashMap
C、WeakHashMap
D、TreeMap

17、以下结构中,插入性能最高的是( )?
A、ArrayList
B、Linkedlist
C、Exception
D、Collection

18、下列集合框架类中,是线程安全的类是 ( )
A、ArrayList
B、Vector
C、HashMap
D、LinkedList

19、Java 集合类中,Vector 类的特点是 ( )
A、底层是链表结构
B、增删快
C、线程安全
D、线程不安全

20、下面代码运行的结果是 ( ) ArrayList<String> al = newArrayList<String>(); al.add(true); al.add(123); al.add(“abc”); System.out.println(al);
A、编译失败
B、[true,123]
C、[true,123,abc]
D、[abc]

第11讲 输入输出处理

第11讲 输入输出处理测验

1、对纯文本文件操作用什么I/O流的类?
A、FileReader
B、FileInputStream
C、RandomAccessFile
D、FileOutputStream

2、在Java的IO操作中,( ) 方法可以用来刷新流的缓冲。
A、void release()
B、void close()
C、void remove()
D、void flush()

3、使用Java IO流实现对文本文件的读写过程中,需要处理下列( )异常。
A、ClassNotFoundException
B、IOException
C、SQLException
D、RemoteException

4、把 FileReader 类的对象和 BufferedReader 类的对象结合起来使用,可以从纯文本文件中按行来读取内容,这种设计模式是( )。
A、工厂模式
B、装饰模式
C、适配器模式
D、代理模式

5、凡是从内存流向外部设备的数据流称为( )。
A、文件流
B、字符流
C、输入流
D、输出流

6、下列不属于FileInputStream输入流的 read() 方法的是( )
A、int read();
B、int read(byte b[]);
C、int read(byte b[],int offset,int len);
D、int read(int line);

7、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( )
A、FileInputStream
B、FileOutputStream
C、DataOutputStream
D、FileWriter

8、下列属于文件输入输出类的是( )
A、FileInputStream和FileOutputStream
B、BufferInputStream和BufferOutputStream
C、PipedInputStream和PipedOutputStream
D、以上都是

9、当要将一文本文件当作一个数据库访问,读完一个纪录后,跳到另一个纪录,它们在文件的不同地方时,一般使用( )类编程访问。
A、FileOutputStream
B、RandomAccessFile
C、PipedOutputStream
D、BufferedOutputStream

10、以下选项中,哪个是FileInputStream的直接父类?( )
A、File
B、FileOutputStream
C、OutputStream
D、InputStream

11、下列选项中,哪一个不是 InputStream 的直接子类?( )
A、ByteArrayInputStream
B、FileInputStream
C、BufferedInputStream
D、PipedInputStream

12、在Java中,下列关于读写文件的描述错误的是( )。
A、Reader类的read()方法用来从源中读取一个字符的数据
B、Reader类的read(int n )方法用来从源中读取一个字符的数据
C、Writer类的write(int n)方法用来向输出流写入单个字符
D、Writer类的write(String str)方法用来向输出流写入一个字符串

13、InputStreamReader是转换流,可以将字节流转换成字符流,是字符流与字节流之间的桥梁。它的实现使用的设计模式是( )。
A、工厂模式
B、装饰模式
C、适配器模式
D、代理模式

14、以下类/接口中,定义了 readLine() 方法的类/接口是 ( )
A、FileInputStream
B、InputStreamReader
C、FileReader
D、BufferedReader

15、字节输出流的抽象基类是 ( )
A、OutputStream类
B、InputStream类
C、Writer类
D、Reader类

16、以下哪一项不是 File 类的功能?
A、创建文件
B、创建目录
C、删除文件
D、拷贝文件

17、下面哪个不是 InputStream 类中的方法?
A、int read(byte [])
B、void flush()
C、void close()
D、int available()

18、构造 BufferedReader 类的对象,以下属于正确参数类型的是 ( )?
A、BufferedReader
B、BufferedWriter
C、FileReader
D、FileWriter

19、BufferedReader 类的直接父类是 ( )
A、Reader
B、FileReader
C、FilterReader
D、InputStreamReader

20、在程序中想创建 BufferedReader 类的对象,而已有 FileInputStream 类的一个对象,请问使用下列( )类可以作为中间桥梁,把 FileInputStream 类的对象转换之后作为参数可以调用 BufferedReader 类的构造方法?
A、FileReader
B、Reader
C、InputStreamReader
D、OutputStreamWriter

第12讲 多线程

第12讲 多线程测验

1、Java 系统提供了一个自动回收动态分配的内存的线程,它就是( )
A、异步线程
B、消费者线程
C、垃圾收集线程
D、守护线程

2、线程通过( )方法可以休眠一段时间,然后恢复运行。
A、run
B、setPrority
C、yield
D、sleep

3、编写线程类,要继承的父类是 ( )
A、Object
B、Runnable
C、Thread
D、Serializable
E、Exception

4、以下哪个最准确地描述了 synchronized 关键字?
A、允许两线程并行运行,而且互相通信;
B、保证在某时刻只有一个线程可访问方法或对象;
C、保证允许两个或更多处理同时开始和结束;
D、保证两个或更多线程同时开始和结束。

5、下列说法中错误的一项是( )
A、一个线程是一个Thread类的实例
B、线程从传递给它的Runnable实例的run()方法开始执行
C、线程操作的数据来自Runnable实例
D、新建的线程调用start()方法就能立即进入运行状态

6、下面的哪一个关键字通常用来对对象的加锁,从而使得对对象的访问是排他的?
A、serializable
B、transient
C、synchronized
D、static

7、在Java多线程中,请用下面哪种方式不会使线程进入阻塞状态?
A、sleep()
B、suspend()
C、wait()
D、yield()

8、关于ArrayList 和 Vector 的区别,以下说法正确的是 ( )
A、ArrayList是线程安全的,Vector是线程不安全的
B、ArrayList是线程不安全的,Vector是线程安全的
C、ArrayList底层是数组结构,Vector底层是链表结构
D、ArrayList底层是链表结构,Vector底层是数组结构

9、当( )方法终止时,能使线程进入死亡状态。
A、run
B、setPrority
C、yield
D、sleep

10、以下( )方法可以用来暂时停止当前线程的运行。
A、stop( )
B、sleep( )
C、wait( )
D、suspend( )

11、有以下代码: public class TestMultiThread { public static void main(String[] args) { Thread t = new Thread() { public void run(){ pong(); } }; t.run(); System.out.println("ping"); } static void pong(){ System.out.println("pong"); } } 请问程序的运行结果是( )?
A、pong ping
B、ping ping
C、ping 和 pong 的输出顺序不确定,取决于线程的执行顺序
D、都不输出

12、以下锁机机制中,不能保证线程安全的是( )
A、lock
B、synchronized
C、volatile
D、以上都不正确

13、一个线程通过 ( ) 方法将 CPU 让给另一个优先级相同的线程?
A、wait
B、yield
C、sleep
D、stop

14、若要启动一个线程,必须调用 ( ) 方法。
A、start
B、run
C、resume
D、new

15、下列哪一种情况不会终止当前线程的运行?
A、抛出一个异常时
B、当该线程调用 sleep 方法时
C、当创建一个新线程时
D、当一个优先级更高的线程进入就绪状态时

16、以下关于内存回收的说法,正确的是( )
A、程序员必须创建一个线程,用来释放内存
B、内存回收线程负责释放无用内存
C、内存回收线程允许程序员直接释放内存
D、内存回收线程可以在指定的时间释放内存

17、Java 中线程的状态包括 ( )
A、新建、暂停
B、运行、撤消
C、运行、阻塞
D、就绪、启动

18、方法 resume( ) 负责重新开始哪个线程的执行?( )
A、被 stop( ) 方法停止的线程
B、被 sleep( ) 方法停止的线程
C、被 wait( ) 方法停止
D、被 suspend( ) 方法停止

19、下面所述步骤中,创建进程做必须的步骤包括( )
A、由调度程序为进程分配 CPU
B、建立一个进程控制块
C、为进程分配内存
D、为进程分配文件描述符

20、以下( ) 方法可以用来暂时停止当前线程的运行。
A、stop()
B、sleep()
C、wait()
D、suspend()

2020秋季期末考试

Java面向对象程序设计期末试卷

1、Java程序默认引用的包是( )
A、java.awt包
B、java.lang包
C、java.util包
D、java.text包

2、下面哪个语句(初始化数组)是不正确的:( )
A、int x[3] = { 1,2,3};
B、int x[] = { 1,2,3};
C、int[] x = { 1,2,3};
D、int x[] = new int[]{ 1,2,3};

3、语句int(Math.random() * 6)+ 1的作用是( )
A、产生1 — 6之间的随机数
B、产生10 — 60之间的随机数
C、产生100 — 600之间的随机数
D、产生1000— 6000之间的随机数

4、构造方法何时被调用( )
A、类定义时
B、创建对象时
C、调用对象方法时
D、使用对象的变量时

5、关于方法重载,下面的表述错误的是( )
A、方法重载是方法名和方法的返回类型相同,但参数不一样
B、参数不同可以是参数类型不同
C、参数不同可以是参数个数不同
D、参数不同可以是参数名称不同

6、关于继承,下面表述错误的是( )
A、继承是两个类或多个类之间存在特殊和一般的关系
B、继承是代码复用的一种方法
C、子类继承父类,可以使用父类中定义的所有成员
D、父类句柄可以指向子类对象

7、下面哪一种异常是空指针对象访问时产生的异常?( )
A、RuntimeException
B、NullPointerException
C、IndexOutOfBoundsException
D、ArrayIndexOutOfBoundsException

8、以下哪一个类及其子类是编程中不强制捕获和处理的?( )
A、StackOverflowError
B、OutOfMemoryError
C、RuntimeException
D、Throwable

9、在List、Set、Map中,哪几个接口从Collection接口继承,以下说法正确的是( )
A、ArrayList 和 LinkedList 均实现了 List 接口
B、ArrayList 访问速度比 LinkedList 快
C、随机添加和删除元素时,ArrayList 的表现更加快速
D、HashMap 实现了 Map 接口,它允许任何类型的键和值对象,并允许将 null 用作键或值

10、对纯文本文件操用以下哪个I/O流类更好?( )
A、FileReader
B、FileInputStream
C、RandomAccessFile
D、FileOutputStream

11、使用Java IO流实现对文本文件的读写过程中,需要处理下列( )异常。
A、ClassNotFoundException
B、IOException
C、SQLException
D、RemoteException

12、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( )
A、FileInputStream
B、FileOutputStream
C、DataOutputStream
D、FileWriter

13、编写线程类,要继承的父类是( )
A、Object
B、Runnable
C、Thread
D、Exception

14、下面的哪一个关键字通常用来对对象的加锁,从而使得对对象的访问是排他的?( )
A、serializable
B、transient
C、synchronized
D、static

15、在 Java 程序的抽象类中,以下说法正确的是:
A、必须有抽象方法
B、可以有抽象方法,也可以没有抽象方法
C、不能有抽象方法
D、以上答案都不对

16、以下哪一个方法与下列方法不是重载关系? public int sort (int x, int y)
A、public double sort (int x, double y)
B、public double sort (double x, double y)
C、public double sort (int x, int y, int z)
D、public double sort (int m, int n)

17、设 Apple 类为 Base 类的子类,则如下对象的创建语句中哪个是错误的?
A、Apple object = new Base();
B、Base object = new Apple();
C、Base object = new Base();
D、Apple object = new Apple();

18、Book类有一个无形式参数无返回值的方法getTitle。该方法使用类名Book 作为前缀就可以调用,该方法头的形式为( )。
A、static void getTitle( )
B、public void getTitle( )
C、final void getTitle( )
D、abstract void getTitle( )

19、下列哪个是合法的Java 标识符?
A、2020
B、Tree&Glasses
C、FirstJava
D、class

20、设a、b为long型变量,x、y为float型变量,ch为char类型变量且它们均已被赋值,则下列语句中正确的是
A、switch(x+y) { }
B、switch(ch+1) { }
C、switch x { }
D、switch(a+b); { }

21、不使用static 修饰符限定的方法称为对象(或实例)方法,使用static修饰的方法称为静态(或类)方法。 下列哪一个说法是正确的?
A、静态方法可以调用对象方法。
B、静态方法不能调用对象方法。
C、对象方法可以调用其他对象方法。
D、静态方法可以调用其他静态方法。

22、定义一个公有double型常量PI为3.14,下列正确的是:
A、public double PI=3.14;
B、public final static double PI=3.14;
C、public final static double PI;
D、public final double PI=3.14;

23、下面关于接口的说法中正确的是:
A、接口中所有的方法都是抽象的
B、接口中所有的方法都是public访问权限
C、子接口继承父接口所用的关键字是implements
D、接口包含常量和抽象方法

24、一个类实现接口,下列说法正确的是:
A、一次可以实现一个接口
B、一次可以实现多个接口
C、不能实现接口
D、一次只能实现一个接口

25、下面关于类的说法,正确的是:
A、类是同种对象的集合和抽象
B、类属于Java语言中的复合数据类型
C、类就是对象
D、类可以创建对象

26、Java文件名必须与类名一致。

27、方法体内,执行到return语句时,将立即退出。

28、方法的形参和实参,名称必须相同。

29、String字符串在创建后可以修改。

30、构造方法名与类名相同,返回类型为void。

31、如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类。

32、所有异常都必须捕获。

33、抽象类,可以创建该类的对象。

34、可以使用protected修饰符来防止方法和数据被不同包的非子类访问。

35、InputStream类和OutputStream类是所有二进制I/O的根类。

36、类及其属性、方法可以同时有一个以上的修饰符来修饰。

37、Java语言中数据类型占内存字节数与平台无关。

38、final类不能派生子类,final方法不能被覆盖。

39、一个Java类可以有多个父类。

40、Java程序中创建新的对象用关键字new,回收无用的对象使用关键字delete。

41、程序中如果有package语句,该语句一定是源文件中的第一条可执行语句。

42、一个接口不可以继承另一个接口。

学习通Java面向对象程序设计_3

Java是一种面向对象的编程语言,因此,掌握面向对象程序设计是学习Java的关键。在学习过程中,我们需要了解Java中的类、对象、继承、多态等概念和相关应用。

类和对象

在Java中,类是一种用于描述对象特性的模板。一个类包括属性和方法,属性用于描述对象的特征,方法用于描述对象的行为。而对象则是类的一个实例,具有该类所描述的特征和行为。

定义类的语法如下:

class 类名 {     属性1;    属性2;    ...    方法1() {         ...    }    方法2() {         ...    }    ...}

可以看出,类由属性和方法组成,用于描述对象的特征和行为。

定义对象的语法如下:

类名 对象名 = new 类名();

可以看出,对象是通过类实例化得到的,具有该类所描述的特征和行为。

继承

继承是一种面向对象的重要机制,它允许我们定义一个类从另一个类继承属性和方法。被继承的类称为父类,继承的类称为子类。

继承的语法如下:

class 子类名 extends 父类名 {     ...}

继承允许子类继承父类的属性和方法,并且可以在子类中添加新的属性和方法。这样就可以减少代码的重复性,提高代码的可维护性。

多态

多态是一种面向对象的重要特性,它允许不同的对象对同一消息做出不同的响应。

多态的实现方式有两种:

  • 方法重载
  • 方法覆盖

方法重载指在同一个类中定义多个方法,它们有相同的名称但是参数不同。当调用方法时,编译器会根据参数的不同自动选择相应的方法。

方法覆盖指子类重写了父类的方法,在调用该方法时,会自动调用子类的方法而不是父类的方法。

总结

通过学习本课程,我们了解了Java面向对象程序设计中的类、对象、继承、多态等概念和相关应用。掌握这些内容能够帮助我们更好地理解Java程序的运行原理,并且能够更高效地编写代码。