Java练习题
1.事件对象的方法: getSource ()返回的是: BA) ComponentB) ObjectC) JComponentD) Container解析:getSource()方法是在所有的事件类中都有的,用于返回事件源,即触发该事件的对象。因此,getSource()方法返回的应该是触发事件的对象本身。选项A描述不准确,Component是JComponent类的父类,但是并不是所有的事件对象的getSource()方法返回的都是Component类型的对象。选项C描述也不准确,JComponent是Swing组件的基类,但是并不是所有的事件对象都与Swing组件有关。
选项D描述更加错误,Container是一个容器类,与事件对象没有直接的联系。综上所述,最符合描述的答案应该是B,即getSource()方法返回的是Object类型的对象,这个对象就是触发当前事件的对象本身。
2.关于 Runnable 接口,不正确的说法是: AA) 实现了 Runnable 接口就可以用 start 方法启动B) Runable 接口提供了通过线程执行程序的最基本的接口C) Thread 类实现了 Runnable 接口D) Runnable 只定义了一个 run 方法解析:选项A的说法是错误的,创建后,还需要初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例后,利用Thread类或者Thread子类的线程对象的start方法启动线程。 (选项A描述不正确。实现了Runnable接口的对象不能直接使用start方法启动,需要将其作为参数传递给Thread的构造方法中,然后调用Thread对象的start方法才能启动线程。)选项B是正确的,Runnable接口提供了通过线程执行程序的最基本的接口。(选项B描述正确。Runnable 接口提供了通过线程执行程序的最基本的接口,只定义了run方法,并没有其他复杂的继承关系和方法。 )选项C描述部分正确。Thread 类确实实现了Runnable接口,这是因为Thread类本身也是一个可以执行的线程。但是从语义上来讲,并不能说Thread类“实现”了Runnable接口,因为Thread类并非是继承自Runnable接口的子类。选项D也是正确的,Runnable只定义了一个run方法,正是通过run()方法才使得建立线程的目的得以实现。(选项D描述部分正确。Runnable 接口确实只定义了一一个run方法,该方法中封装了线程要执行的任务代码。但是需要注意的是,Runnable 接口中还有一个默认的方法signature(),虽然它是一个默认方法, 但是在实际编程中也可以被重写或调用。
因此,不正确的描述应该是A,实现了Runnable 接口不能直接使用start方法启动线程,需要将其作为参数传递给Thread的构造方法中,并通过Thread对象的start方法来启动线程。 )
3.对于 SQL 的检索操作,使用 Statement 的什么方法?A
A ) ExecuteQuery()B ) ExecuteUpdate()C ) ExecuteSelect()D ) ExecuteAlter()解析: ExecuteQuery()方法用于执行查询语句,返回ResultSet类型的结果集。该方法通常用于执行SELECT语句和其他不需要修改数据库状态的操作。
ExecuteUpdate()方法用于执行更新操作(INSERT、UPDATE或DELETE),返回更新记录的数量(表示数据库中受改SQL语句影响的记录条数)。
ExecuteSelect()和ExecuteAlter()方法并不存在于Statement类中。
4.下面哪个是存储过程调用的语句: CA ) CallStatementB ) PreparedStatementC ) CallableStatementD )以上都不是
解析: CallableStatement是一个预编译的SQL语句,可以通过它来调用存储过程。与
PreparedStatement相似,CallableStatement对象也是继承自 PreparedStatement对象的,但是CallableStatement可以调用带有输入/输出参数的存储过程。
CallStatement并不是Java中的有效语句。
PreparedStatement用于执行一条预编译的SQL语句,但是它不能直接调用存储过程。
因此,正确答案是C)CallableStatement。
5.若创建一个 java 文件其扩展名为:B
A ) javacB ) javaC ) exeD ) txt解析:java。Java 文件通常使用.java作为文件扩展名,而不是javac、 exe或 txt。
6.关于类和对象的正确说法是:D
A )类是某类事物中的一个实例B )对象是某类事物的抽象和定义C )对象是不会包含方法的D )对象是类的实例解析:选项A描述不正确,因为类是某一类事物的定义和抽象,并不是某一类事物中的实例。
选项B描述也不完全正确,因为对象并不仅仅是某一类事物的抽象和定义,还包括了具体的状态和属性信息。
选项C描述更加错误,因为子类可以继承父类的公共、受保护和默认访问权限的成员,而不仅仅是public成员。
综上所述,选项D最为准确,对象是类的实例,描述了某个具体事物的特征和行为。
7.下列对继承的说法,哪个是正确的?B
A )子类能继承父类的所有方法和状态B )子类能继承父类的非私有方法和状态C )子类只能继承父类 public 方法和状态D )子类只能继承父类的方法,而不继承状态解析:子类能继承父类的非私有方法和状态。子类可以继承父类的非私有成员变量和方法,包括公共(public)、受保护(protected)和默认访问权限(package-private)的成员变量和方法。
选项A描述不准确,因为子类无法继承父类的私有(private)成员变量和方法。
选项C描述不准确,子类可以继承父类的受保护(protected)成员变量和方法,而不仅仅是公共(public)成员变量和方法。
选项D描述不正确,子类既可以继承父类的方法,也可以继承其状态(成员变量)。因此,正确答案是B)子类能继承父类的非私有方法和状态。
如果希望所有的控件在界面上均匀排序,就使用下列哪种布局管理器? BA ) BoxLayoutB ) GridLayout 格子式C ) BorderLayout 板式布局D ) FlowLayout 流式布局
解析:FlowLayout 布局管理器会按照添加控件的顺序,在容器内水平排列控件,并根据需要自动换行到下一行。它还可以通过设置对齐方式和间距来调整控件之间的距离和位置。
相比之下,BoxLayout 布局管理器是一个更加灵活的布局管理器,可以实现垂直或水平方向上的对齐和伸缩空间分配。但是要达到均匀排列的效果需要进行较多的代码编写和计算。
GridLayout 布局管理器将控件按照表格形式进行排列,每个控件都被分配到相同大小的单元格中,如果需要均匀排序的效果,需要将表格的行数、列数和控件的大小设置为合适的值。
而 BorderLayout 布局管理器则是按照五个方位(NORTH、SOUTH、EAST、WEST、CENTER)来排列控件,通常用于将窗口分割为不同区域进行布局。
因此,最适合实现均匀排序的布局管理器是 B ) GridLayout(GridLayout布局方式可以使容器中的各组件成网状分布。容器中各组件的高度和宽度相同)
8.下面哪种注释方法能够支持 javadoc 命令:D
A ) /**...**/B ) /*...*/C ) //D ) /**...*/解析:javadoc 是一种自动文档生成工具,它可以根据特定的注释格式,从 Java 代码中提取出类、接口、方法等信息,并生成相应的 API 文档。为了让 javadoc 工具识别注释内容并生成文档,需要使用特定的注释格式。
在 Java 中,用于支持 javadoc 命令的注释格式是“/**...*/”,这种注释通常放在类、方法和成员变量之前,用来描述其功能、参数、返回值和异常等信息。与普通的多行注释不同,javadoc 注释格式包含了一系列特定的标签和格式要求,以便生成规范化的 API 文档。
其他选项如下:
A)"/**...**/" 格式与 javadoc 的格式相同,但是区别在于实际上只有第一个星号后面的文字被认为是注释内容,因此无法正确地支持 javadoc 命令。
B)"/*...*/" 是普通的多行注释格式,不包含任何特殊的标记或格式要求,也无法被 javadoc 命令识别。
C)"//" 是单行注释格式,只能注释单行语句,不能用于描述类、方法等信息,更不可能用于生成 API 文档。