智慧树知到《Java语言程序设计》章节测试答案
第一章单元测试
1、Java属于以下哪种语言?
A.机器语言
B.汇编语言
C.高级语言
D.其余选项都不对
正确答案:高级语言
2、下面哪种类型的文件可以在Java虚拟机中运行?()
A..java
B..jre
C..exe
D..class
正确答案:.class
3、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?()
A.Java文档制作工具
B.Java解释器
C.Java编译器
D.Java启动器
正确答案:Java解释器
4、如果JDK的安装路径为d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?()
A.d:\jdk
B.d:\jdk\bin
C.d:\jre\bin
D.d:\jre
正确答案:d:\jdk\bin
5、以下选项中,哪些属于JDK工具?()
A.Java编译器
B.Java运行工具
C.Java文档生成工具
D.Java打包工具
正确答案:Java编译器;Java运行工具;Java文档生成工具;Java打包工具
6、通过Java虚拟机可以在不同的操作系统上运行Java程序,从而实现跨平台特性。
A.正确
B.错误
正确答案:正确
7、JRE中包含了Java基础类库、JVM和Java工发工具。
A.正确
B.错误
正确答案:错误
8、Java中的包是专门用来存放类的,通常功能相近的类存放在相同的包中。
A.正确
B.错误
正确答案:正确
9、java.util包含Java中大量工具类、集合类等,例如:Arrays、List、Set等。
A.正确
B.错误
正确答案:正确
10、Java语言和C语言一样,是面向过程的语言。
A.正确
B.错误
正确答案:错误
第二章单元测试
1、java.lang包的Character类的isJavaIdentifierStart方法的功能是用来判断某个字符是否为Java标识符的首字符。
A.正确
B.错误
正确答案:正确
2、java.lang包的Character类的isJavaIdentifierPart方法的功能是用来判断某个字符是否为Java标识符的中间字符(非首字符)。
A.正确
B.错误
正确答案:正确
3、以下关于局部变量的说法错误的是:()。
A.局部变量名必须是一个有效的标识符
B.局部变量在定义时可以没有初始值
C.局部变量一旦被定义,在程序中的任何位置都可以被访问
D.在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明
正确答案:局部变量一旦被定义,在程序中的任何位置都可以被访问
4、假如;int x=2;则三元表达式:x>;0?x+1:5 的运行结果是以下哪一个?()
A.0
B.2
C.3
D.5
正确答案:3
5、以下哪个选项可以正确创建一个长度为3的二维数组?()
A.new int[2][3]
B.new int[3][]
C.new int[][3]
D.其余选项都不对
正确答案:new int[3][]
6、若int a[3][2]={{123,345,334},{1,2},{3,4}};则;a[2][1]=()。
A.1
B.3
C.2
D.4
正确答案:4
7、以下选项中,哪些属于合法的标识符?()
A.Hello()World
B.class
C.123username
D.username123
正确答案:Hello()World;username123
8、Java中的数据类型可以分为两大类,分别是:()和()。
A.基本数据类型
B.整数类型
C.浮点类型
D.引用型数据类型
正确答案:基本数据类型;引用型数据类型
9、Java语言标识符名称不区分大小写。
A.正确
B.错误
正确答案:错误
10、0xC5表示的是一个十六进制数。
A.正确
B.错误
正确答案:正确
11、continue; 语句只用于循环语句中,它的作用是跳出循环。
A.正确
B.错误
正确答案:错误
12、-5%3的运算结果是2。
A.正确
B.错误
正确答案:错误
第三章单元测试
1、在非静态成员方法中,可以使用关键字()访问类的其他非静态成员。
A.this
B.super
C.static
D.public
正确答案:this
2、下面关于类的定义,哪一个是正确的?()
A.public void HH{
;//…
}
B.public class MOVE(){
// …
}
C.;public class void number{
//…
}
D.public class Car{
//…
}
正确答案:public class Car{
//…
}
3、在Java中,针对类和成员提供了4种访问级别,以下控制级别由小到大的顺序是:()。
A.private<; 默认 <; protected <; public
B.默认 <; private<; protected <; public
C.protected <; 默认 <; private <; public
D.protected <; private<; 默认 ;<; public
正确答案:private<; 默认 <; protected <; public
4、Test类的定义如下:public class Test {public Test() {System.out.println(";构造方法一被调用了。";);}public Test(int x) {System.out.println(";构造方法二被调用了。";);}public Test(boolean b) {System.out.println(";构造方法三被调用了。";);}public static void main(String[] args) {Test test=new Test(true);}}上面程序的运行结果为下列哪一项?()
A.构造方法一被调用了。
B.构造方法二被调用了。
C.构造方法三被调用了。
D.其余三个选项之和
正确答案:构造方法三被调用了。
5、以下关于static关键字的说法正确的是:()。
A.static关键字可以修饰类
B.static关键字可以修饰成员变量和成员方法
C.static关键字可以修饰所有的变量
D.static关键字可以修饰代码块
正确答案:static关键字可以修饰成员变量和成员方法;static关键字可以修饰代码块
6、有如下TestA类的定义:public class TestA {static int a=10;}用该类创建2个对象:testA1和testA2,现将类变量(静态变量)a的数值变为100,则正确的方式是:()。
A.TestA.a=100
B.testA1.a=100
C.testA2.a=100
D.其余选项都不对
正确答案:TestA.a=100;testA1.a=100;testA2.a=100
7、下面对于构造方法的描述,正确的有哪些?()
A.方法名必须和类名相同
B.方法名的前面有返回值类型的声明
C.在方法中不能return语句返回一个值
D.当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在
正确答案:方法名必须和类名相同;在方法中不能return语句返回一个值
8、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。
A.正确
B.错误
正确答案:正确
9、Java中的每个类都至少有一个构造方法,一个类如果没有显式地定义构造方法,系统会自动为这个类创建一个默认的无参的构造方法。
A.正确
B.错误
正确答案:正确
10、声明构造方法时,不能用private关键字修饰。
A.正确
B.错误
正确答案:错误
11、类中static修饰的变量或方法,可以使用类名或对象来引用该成员进行访问。
A.正确
B.错误
正确答案:正确
12、静态代码块会随着类对象的创建而执行。
A.正确
B.错误
正确答案:错误
第四章单元测试
1、定义一个Java类时,如果前面使用关键字()修饰,那么该类不可以被继承。
A.private
B.final
C.static
D.public
正确答案:final
2、在类的继承关系中,需要遵循以下哪个继承原则:()。
A.多重
B.单一
C.双重
D.不能继承
正确答案:单一
3、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?()。
A.pubic
B.protected
C.private
D.默认
正确答案:private
4、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?()
A.inherits
B.implements
C.extends
D.modifies
正确答案:extends
5、已知类的继承关系如下:class Employee{}class Manager extends Employee{}class Director extends Employee{}则下列语句通过编译的有哪些?()
A.Employee e=new Manager()
B.Director d= new Manager()
C.Director d= new Employee()
D.Manager m=new Director()
正确答案:Employee e=new Manager()
6、关于super关键字,以下说法哪些是正确的?()
A.super关键字可以调用父类的构造方法
B.super关键字可以调用父类的普通方法
C.super关键字与this不能同时存在于同一个构造方法中
D.super关键字与this可以同时存在于同一个构造方法中
正确答案:super关键字可以调用父类的构造方法;super关键字可以调用父类的普通方法;super关键字与this不能同时存在于同一个构造方法中
7、一个类如果实现一个接口,那么它就需要实现接口中定义的全部方法,否则该类必须定义成抽象类。
A.正确
B.错误
正确答案:正确
8、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。
A.正确
B.错误
正确答案:错误
9、Java中被final关键字修饰的变量,不能被重新赋值。
A.正确
B.错误
正确答案:正确
10、不存在继承关系的情况下,也可以实现方法重写。
A.正确
B.错误
正确答案:错误
第五章单元测试
1、关于try语句对应的多个catch子句中,若捕获的异常类型有父子类关系时,它们的排列下列哪种是正确的?()
A.异常父类在先,异常子类在后
B.异常子类在先,异常父类在后
C.有继承关系的异常不能同时出现在同一个try程序段之后
D.其余说法都不对
正确答案:异常子类在先,异常父类在后
2、在异常处理中,如释放资源、关闭文件、关闭数据库等由()来完成。
A.try子句
B.catch子句
C.finally子句
D.throw子句
正确答案:finally子句
3、Java中用来抛出异常的关键字是:()。
A.try
B.catch
C.throw;和;throws
D.finally
正确答案:throw;和;throws
4、程序员将可能发生异常的代码放在()语句块中,后面紧跟着一个或多个()语句块,还可以再跟零个或一个()语句块。
A.catch、try;、finally
B.try、catch;、finally
C.try、finally、exception
D.exception、try、finally
正确答案:try、catch;、finally
5、程序代码中包含产生受检异常(非运行时异常)的语句时,()。
A.如果程序错误,就使用;try-catch语句处理异常;否则,不必处理
B.必须进行处理,或使用try-catch语句处理异常,或在调用方法上使用throws将其抛出
C.只能使用try-catch语句处理
D.可以置之不理
正确答案:必须进行处理,或使用try-catch语句处理异常,或在调用方法上使用throws将其抛出
6、下列程序的执行,说法错误的是:()。public class MultiCatch{;public static void main(String args[]);{;try;{;int a=args.length;int b=42/a;int c[]={1};c[42]=99;//第10行;System.out.println(“b=”+b);};catch(ArithmeticException e);{;System.out.println(“除0异常:”+e);//第15行;};catch(ArrayIndexOutOfBoundsException e) {;System.out.println(“数组超越边界异常:”+e);//第18行;};}}
A.程序将输出第15行的异常信息
B.程序第10行出错
C.程序将输出;b=42
D.程序将输出第15和18行的异常信息
正确答案:程序将输出;b=42;程序将输出第15和18行的异常信息
7、finally语句块在下面哪些情况下执行?()
A.try语句块中运行正常,无异常发生
B.try语句块有异常发生,catch子句已捕获
C.try语句块有异常发生,catch子句未捕获
D.其余都不对
正确答案:try语句块中运行正常,无异常发生;try语句块有异常发生,catch子句已捕获;try语句块有异常发生,catch子句未捕获
8、关于finally子句的说法正确的是:()。
A.try子句无异常发生,finally子句会执行。
B.try子句有异常发生被catch子句捕获,finally子句会执行。
C.try子句有异常发生未被catch子句捕获,finally子句会执行。
D.try子句有异常发生未被catch子句捕获,finally子句执行后,程序终止。
正确答案:try子句无异常发生,finally子句会执行。try子句有异常发生被catch子句捕获,finally子句会执行。try子句有异常发生未被catch子句捕获,finally子句会执行。try子句有异常发生未被catch子句捕获,finally子句执行后,程序终止。
9、若异常发生时,它没有捕获,后续的程序不受任何影响,依然能正常执行。
A.正确
B.错误
正确答案:错误
10、一个异常处理中;finally语句块可以不出现,也可以出现一次。
A.正确
B.错误
正确答案:正确
第六章单元测试
1、已知sbuf为StringBuffer的一个实例,且sbuf.toString()的值为:“abcde”,则执行 sbuf.reverse()后,sb.toString() 的值为:()。
A.abcde
B.edcba
C.abcd
D.edcb
正确答案:edcba
2、已知:String s=”abcdedcba”; 则s.substring(3,4)返回的字段串是哪个?()
A.cd
B.de
C.d
D.e
正确答案:d
3、下面的程序段执行后,输出的结果是以下哪个选项?()StringBuffer buf=new StringBuffer(";Beijing2008";);buf.insert(7, ";@";);System.out.println(buf.toString())。
A.Beijing@2008
B.Beijing2008@
C.@Beijing2008
D.Beijing#2008
正确答案:Beijing@2008
4、阅读下面的程序段:String str1=new String(";java";);String str2=new String(";java";);StringBuffer str3=new StringBuffer(";java";);对于上述定义的变量,以下表达式的值为true的是哪个?()
A.str1==str2
B.str1.equals(str2)
C.str1==str3
D.其余都不对
正确答案:str1.equals(str2)
5、String对象和StringBuffer对象都是字符串类型,创建后的对象都可以修改。
A.正确
B.错误
正确答案:错误
6、用运算符==比较字符串对象时,如果两个字符串的字符序列相同,结果为true。
A.正确
B.错误
正确答案:错误
7、用System类中的currentTimeMills()方法返回一个long类型的值。
A.正确
B.错误
正确答案:正确
第七章单元测试
1、利用FileInputStream和FileOutputStream读写文件,哪个方法不抛出IOException?()
A.两个类的构造方法
B.read
C.write
D.close
正确答案:两个类的构造方法
2、File类中以字符串形式返回文件绝对路径的方法是哪一项?()
A.getParent()
B.getName()
C.getAbsolutePath()
D.getPath()
正确答案:getAbsolutePath()
3、以下选项中,哪个流使用了缓冲技术?()
A.BufferedOutputStream
B.FileInputStream
C.DataOutputStream
D.FileReader
正确答案:BufferedOutputStream
4、在输入流的read方法返回哪个值的时候表示读取结束?
A.0
B.1
C.-1
D.null
正确答案:-1
5、为了从文本文件中逐行读取内容,应该使用哪个处理流对象?()
A.BufferedReader
B.BufferedWriter
C.BufferedInputStream
D.BufferedOutputStream
正确答案:BufferedReader
6、下面选项中,哪些是标准输入输出流?()。
A.System.in
B.System.out
C.InputStream
D.OutputStream
正确答案:System.in;System.out
7、以下关于File类的叙述,哪些是正确的?
A.File类位于java.io包中
B.创建一个File类的实例将导致打开指定文件进行读写
C.File实例不能用于封装目录
D.File实例封装了指定文件的信息
正确答案:File类位于java.io包中;File实例封装了指定文件的信息
8、如果一个File表示的目录对象下有文件或者子目录,调用delete()方法也可以将它们删除。
A.正确
B.错误
正确答案:错误
9、对象序列化是指将一个Java对象转换成一个I/O流中的字节序列的过程。
A.正确
B.错误
正确答案:正确
10、InputStream类中的close()方法是用于关闭流并且释放流所占的系统资源。
A.正确
B.错误
正确答案:正确
11、BufferedInputStream和BufferedOutputStream不是字节缓冲流。
A.正确
B.错误
正确答案:错误
第八章单元测试
1、JDBC是一套用于执行什么的Java API?()
A.SQL语句
B.数据库连接
C.数据库操作
D.数据库驱动
正确答案:SQL语句
2、当应用程序使用JDBC访问特定的数据库时,只需要通过不同的()与其对应的数据库进行连接,连接后即可对该数据库进行相应的操作。
A.Java API
B.JDBC API
C.数据库驱动
D.JDBC驱动
正确答案:数据库驱动
3、JDBC API主要位于()包中,该包中定义了一系列访问数据库的接口和类。
A.java.sql
B.java.util
C.java.jdbc
D.java.lang
正确答案:java.sql
4、在编写JDBC程序时,必须要把所使用的数据库驱动程序或类库加载到项目的()位置。
A.根目录下
B.JDBC程序所在目录下
C.任意目录下
D.classpath
正确答案:classpath
5、在ResultSet接口内部有一个指向表格数据行的游标(或指针),ResultSet对象初始化时,游标在表格的第一行之前,调用()方法可将游标移动到下一行。
A.before()
B.after()
C.next()
D.last()
正确答案:next()
6、下面是Statement接口中常用的执行SQL语句的方法,哪些说明是正确的?()
A.execute(String sql)用于执行各种SQL语句,该方法返回一个boolean类型的值
B.executeUpdate(String sql) 用于执行SQL中的query、insert、update和delete语句
C.executeQuery(String sql) 用于执行SQL中的query语句
D.executeUpdate(String sql) 用于执行各种SQL并返回 int类型结果
正确答案:execute(String sql)用于执行各种SQL语句,该方法返回一个boolean类型的值;executeQuery(String sql) 用于执行SQL中的query语句
7、JDBC(Java Database Connectivity,Java数据库连接),它是一套用于执行SQL语句的Java API。
A.正确
B.错误
正确答案:正确
8、Statement是Java执行数据库操作的一个重要接口,它用于执行动态的SQL语句,并返顺一个结果对象。
A.正确
B.错误
正确答案:错误
9、PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。
A.正确
B.错误
正确答案:正确
10、PreparedStatement接口的setDate()方法可以设置日期内容,但参数Date的类型必须是java.util.Date。
A.正确
B.错误
正确答案:错误
11、ResultSet接口既可以通过字段的名称来获取指定数据,也可以通过字段的索引来获取指定的数据,字段的索引是从0开始编号的。
A.正确
B.错误
正确答案:错误
第九章单元测试
1、实现多线程的方式有:通过继承()类,通过实现()接口。
A.java.lang.Thread ;java.lang.Runnable
B.java.lang.Runnable ;java.lang.Thread
C.java.thread.Thread ;java.thread.Runnable
D.java.thread.Runnable ;java.thread.Thread
正确答案:java.lang.Thread ;java.lang.Runnable
2、Thread类的()方法用于启动线程;当新线程启动后,系统会自动调用调用()方法。
A.start ;sleep
B.run ;sleep
C.run ;start
D.start ;run
正确答案:start ;run
3、在Java语言中,同步方法需要用到关键字()。对于同步方法而言,无须指定同步锁,它的同步锁是方法所在的对象,也就是关键字()。
A.synchronized ;this
B.locked ;this
C.synchronized ;lock
D.locked ;lock
正确答案:synchronized ;this
4、关于线程的创建过程,下面说法正确的有哪些?()
A.定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start() 方法。
B.定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run() 方法。
C.定义一个实现Runnable接口的类,并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start() 方法。
D.定义一个实现Runnable接口的类,并实现run()方法,创建该类实例对象,调用对象的run() 方法。
正确答案:定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start() 方法。定义一个实现Runnable接口的类,并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start() 方法。
5、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。
A.正确
B.错误
正确答案:错误
6、如果前台线程全部死亡,后台线程也会自动死亡。
A.正确
B.错误
正确答案:正确
7、同步代码块中的锁对象可以是任意类型的对象。
A.正确
B.错误
正确答案:正确
8、静态方法不能使用synchronized关键字来修饰。
A.正确
B.错误
正确答案:错误
9、Java提供的线程池来创建多线程,进一步优化线程管理。
A.正确
B.错误
正确答案:正确
10、

A.sleep是线程类(Thread)的方法,wait是Object类的方法
B.sleep不释放对象锁,wait放弃对象锁
C.sleep暂停线程、但监控状态仍然保持,结束后会自动恢复
D.wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。
正确答案:wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。
第十章单元测试
1、在计算机中,端口号是用()字节,也就是()位的二进制数表示,它的取值范围是()。
A.1 ;8 ;0 ~ 255
B.1 ;8 ;-128 ~ 127
C.2 ;16 ;-32768 ~ 32767
D.2 ;16 ;0 ~ 65535
正确答案:2 ;16 ;0 ~ 65535
2、使用TCP协议开发网络程序时,需要使用2个类,分别是:()和()。
A.DatagramSocket ;DatagramPacket
B.SocketServer ;Socket
C.DatagramSocket ;SocketServer
D.DatagramPacket ;SocketServer
正确答案:SocketServer ;Socket
3、使用UDP协议开发网络程序时,需要使用2个类,分别是:()和()。
A.DatagramSocket ;DatagramPacket
B.SocketServer ;Socket
C.DatagramSocket ;SocketServer
D.DatagramPacket ;SocketServer
正确答案:DatagramSocket ;DatagramPacket
4、使用UDP协议通信时,需要使用哪个类把要发送的数据打包?()
A.Socket
B.DatagramSocket
C.DatagramPacket
D.ServerSocket
正确答案:DatagramPacket
5、进行UDP通信时,在接收端若要获得发送端的IP地址,可以使用DatagramPacket的()方法。
A.getAddress()
B.getPort()
C.getName()
D.getData()
正确答案:getAddress()
6、在程序运行时,DatagramSocket的哪个方法会发生阻塞?()
A.send()
B.receive()
C.close()
D.connect()
正确答案:receive()
7、关于TCP协议和UDP协议,以下说法哪些是正确的?()
A.TCP连接中必须要明确客户端与服务器端
B.TCP协议是面向连接的通信协议,它提供了两台计算机之间可靠无差错的数据传输
C.UDP协议是面向无连接的协议,可以保证数据的完整性
D.UDP协议水消耗资源小、通信效率高,通常被用于音频、视频和普通数据的传输
正确答案:TCP连接中必须要明确客户端与服务器端;TCP协议是面向连接的通信协议,它提供了两台计算机之间可靠无差错的数据传输;UDP协议水消耗资源小、通信效率高,通常被用于音频、视频和普通数据的传输
8、TCP协议的特点是面向连接,即在传输数据前先在服务器端和客户端建立逻辑连接。
A.正确
B.错误
正确答案:正确
9、由于UDP是面向无连接的协议,可以保证数据的完整性,因此在传输重要数据时建议使用UDP协议。
A.正确
B.错误
正确答案:错误
10、在网络通信中,对数据传输格式、传输速率、传输步骤等作了统一规定,只有通信双方共同遵守这个规定才能完成数据的交互,这种规定称为网络传输协议。
A.正确
B.错误
正确答案:正确
11、IPv4的IP地址用4个字节来表示,IPv6版本的IP地址使用8个字节来表示。
A.正确
B.错误
正确答案:错误
12、使用TCP协议通信时,通信的两端以I/O流的方式进行数据的交互。
A.正确
B.错误
正确答案:正确