1. 类和对象之间关系是( ) [单选题]
联接关系 |
包含关系 |
抽象与具体的关系(正确答案) |
类是对象的具体化 |
2. 类是具有相同( )的集合,是对对象的抽象描述 [单选题]
属性和方法(正确答案) |
变量和方法 |
变量和数据 |
对象和属性 |
3. 下列哪个类声明是正确的( ) [单选题]
public void H1{…} |
public class Move(){…}错误的,因为类声明不需要圆括号()。圆括号通常用于方法声明,以指定方法参数。 |
public class void number{…} |
public class Car{…}(正确答案) |
类声明的正确格式是使用public class关键字后跟类名,然后是花括号{}来定义类的主体
4. 定义类头时,不可能用到的关键字是( ) [单选题]
class |
void(正确答案) |
extends |
public |
class 用于声明一个新的类。
extends 用于声明一个类是另一个类的子类。
public 用于声明类的访问修饰符,表示该类可以被任何其他类访问。
而 void 是用于声明一个方法没有返回值的关键字,它不能用于类头的定义。因此,正确答案是 void。
5. 关于方法功能描述错误的是( ) [单选题]
使程序结构清晰 |
实现代码模块化重用 |
方法是类功能的封装 |
重复代码(正确答案) |
6. 关于方法形参描述正确的是( ) [单选题]
可以没有形参(正确答案) //方法可以有零个或多个形参。 |
至少有一个形参 |
必须定义多个形参 |
形参只能是基本变量类型 //以是基本数据类型,也可以是对象类型(即类的引用类型)。 |
7. 在定义方法时在最后一个形参的类型后增加“...”,相关描述错误( ) [单选题]
可变参数接受的对象是一个数组 |
“...”表示可变参数 |
“...”表示省略号(正确答案) |
“...”只能出现在参数列表的最后 |
8. 利用方法中的( )语句可为调用方法返回一个值 [单选题]
return(正确答案) |
back |
end |
以上答案都不对 |
9. 以下关于return语句使用描述错误的有( )
不能用来返回对象(正确答案) /return语句不仅可以用来返回基本数据类型(如int, double, char等),还可以用来返回对象 |
只可以返回数值(正确答案) |
方法中都必须包含return语句(正确答案) // 不是所有的方法都必须包含return语句。特别是当方法的返回类型是void时,它不需要返回任何值,因此也不需要return语句 |
一个方法可以有多个return语句 //虽然一个方法可以有多个return语句,但在任何一次方法调用中,通常只有一个return语句会被执行( |
10. void的含义描述正确的是( ) [单选题]
方法体为空 |
方法体没有意义 |
方法没有返回值(正确答案) |
定义方法时必须使用 |
11. main()方法的返回类型是( ) [单选题]
boolean |
void(正确答案) |
int |
static |
12. 下面的方法声明中,哪个是正确的( ) [单选题]
public class methodName(){…} |
public void int methodName(){…} |
public void methodName(){…}(正确答案) |
public methodName{…} |
public class methodName(){…} 是错误的,因为它试图将methodName声明为一个类,而不是方法。类的声明不应该有圆括号和返回类型。
public void int methodName(){…} 是错误的,因为方法返回类型应该放在void或数据类型关键字之前,而不是之后。此外,void表示方法没有返回值,不能与数据类型(如int)一起使用。
public void methodName(){…} 是正确的,它声明了一个公共的(public)无返回值(void)的方法methodName。
public methodName{…} 是错误的,因为它缺少了方法的返回类型(即使是无返回类型也应该写void)和圆括号。在Java中,方法声明必须包含返回类型和圆括号,即使圆括号内是空的(表示没有参数)。
13. 下列方法定义中,不正确的是( ) [单选题]
float x(int a,int b){return a-b;} |
int x(int a,int b){return a-b;} |
int x(int a,int b);{return a*b;}(正确答案) //这个定义的问题在于方法签名和方法体之间的分号 |
int x(int a,int b){return a*b;} |
14. 以下关于构造方法特点理解正确的选项有( )
构造方法主要用于对象创建时初始化对象(正确答案) |
构造方法没有返回值,也不能用void来修饰(正确答案) |
构造方法的命名必须和类名完全相同(正确答案) |
一个Java类只能有一个构造方法 |
15. 下面关于构造方法描述不正确的是( ) [单选题]
当无其他构造方法时,系统提供默认的构造方法 |
同一个类的多个构造方法的名称可以不同(正确答案) |
构造方法可以重载 |
构造方法可以设置参数 |
16.有一个类A,以下为其构造方法的声明,其中正确的是( ) [单选题]
void A(int x){…} |
public A(int x){…}(正 确答案) |
public a(int x){…} |
static A(int x){…} |
void A(int x){…}:这是错误的,因为构造方法没有返回类型,包括void也不能有。
public A(int x){…}:这是正确的,构造方法的名字必须与类名相同,并且可以有访问修饰符(如public),但不能有返回类型。
public a(int x){…}:这是错误的,因为构造方法的名字必须与类名相同(在这个例子中是A,不是a)。Java是大小写敏感的。
static A(int x){…}:这是错误的,构造方法不能是static的。static方法属于类本身,而不是类的实例,而构造方法用于创建类的实例。
17. 设i,j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( ) [单选题]
double X(double k){i=k;return i;}(正确答案) //原因是它有一个返回类型double,但构造方法不能有返回类型 |
X(){i=6;j=8;} |
X(double m,double n){i=m;j=n;} |
X(double k){i=k;} |
18. 对于任意一个类,用户所能定义的构造方法的个数至多为( ) [单选题]
0个 |
1个 |
2个 |
任意个(正确答案) |
19. 构造方法何时被调用( ) [单选题]
类定义时 |
创建对象时(正确答案) |
调用对象方法时 |
使用对象的变量时 |
20. 以下( )是专门用于创建对象的关键字 [单选题]
new(正确答案) |
double |
int |
class |
21. 在方法调用过程中,位于方法名之后圆括号的变量被称为( ) [单选题]
变元 |
参数(正确答案) |
语句 |
声明 |
22. 关于面向对象的说法正确的是( ) [单选题]
类可以让我们用程序模拟现实世界中的实体(正确答案) |
有多少个实体就要创建多少个类 |
对象的行为和属性被封装在类中,外界通过调用类的方法来获得,但是要知道类的内部是如何实现 |
现实世界中的某些实体不能用类来描述 |
23. 一条return语句将给调用程序返回( )个值
0(正确答案) |
1(正确答案) |
2 |
任意 |
题目只考虑标准的return语句,则选择1。如果考虑所有可能的情况(包括没有返回值的情况),则0和1都是可能的答案
24. 下列关于成员变量描述正确的有( )
成员变量在类中方法外面(正确答案) |
成员变量在内存的栈中 |
随着对象的创建而存在,随着对象的消失而消失(正确答案) |
对象初始化后成员变量没赋值会有默认的初始值(正确答案) |
25. 在Java中,变量可以分为全局变量和( )变量 [单选题]
静态 |
实列 |
局部(正确答案) |
普通 |
26. 下列关于局部变量描述正确的有( )
局部变量在代码块中,或者方法的声明上(正确答案) |
局部变量在内存的堆中 //栈中 |
随着方法的调用执行完代码块后局部变量会消失(正确答案) |
局部变量使用前需要赋值(正确答案) |
27. 下列关于成员变量与局部变量的说法不正确的是( ) [单选题]
局部变量的作用域仅限于定义它的方法 |
成员变量的作用域在整个类内部都是可见的 |
创建对象时Java会给成员变量一个初始值 |
创建对象时Java会给局部变量赋予初始值(正确答案) //这是不正确的。局部变量不会自动被赋予初始值。在使用局部变量之前,必须明确地给它们赋值。否则,尝试访问未初始化的局部变量会导致编译错误。 |
28. 关于this关键字描述正确的选项有( ) [单选题]
this代表类自身对象的引用(正确答案) |
this不能在构造方法中使用 |
this不能在普通方法中使用 |
以上描述都不正确 |
29. 下列选项中关于Java中super关键字的说法正确的是( ) [单选题]
super关键字是在子类对象内部指代其父类对象的引用(正确答案) |
super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 |
子类通过super关键字只能调用父类的方法,而不能调用父类的属性 |
子类通过super关键字只能调用父类的属性,而不能调用父类的方法 |
30. 下列选项中,那个不是Java的访问修饰符( ) [单选题]
private |
public |
friendly(正确答案) |
protected |
31. 在定义抽象类需要用到关键字( ) [单选题]
static |
final |
abstract(正确答案) |
interface |
32. 关于抽象类,下列说法错误的是( ) [单选题]
抽象类中可以存在普通方法和抽象方法 |
抽象类中可以存在属性 |
抽象类中可以实例化(正确答案) |
一个非抽象类继承抽象类必须实现抽象类中的所有抽象方法 |
抽象类中可以存在普通方法和抽象方法:这是正确的。抽象类可以包含普通方法(即非抽象方法)和抽象方法。
抽象类中可以存在属性:这也是正确的。抽象类可以有字段(属性),这些字段可以是私有的、保护的、默认的或公共的。
抽象类中可以实例化:这是错误的。抽象类不能被实例化,即你不能直接创建抽象类的对象。抽象类的主要目的是作为其他类的基类,并为它们提供通用的接口或实现部分方法。
一个非抽象类继承抽象类必须实现抽象类中的所有抽象方法:这是正确的。如果一个非抽象类(即“具体类”)继承了一个抽象类,并且这个抽象类中有抽象方法,那么非抽象类必须为这些抽象方法提供具体的实现,除非非抽象类本身也是抽象的。
33. 关于访问修饰符访问权限由小到大描述正确的是( ) [单选题]
private->protected->default->public |
private->protected->public->public |
private->default->protected->public(正确答案) |
default->private->protected->public |
34. 下列关于static关键字的使用描述正确的选项有( )
被static修饰的变量即为静态变量(正确答案) |
被static修饰的方法称为静态方法(正确答案) |
所有的静态变量都可以通过类名直接访问(正确答案) |
所有的静态方法都可以通过类名直接访问(正确答案) |
35. 下列关于静态代码块的描述中,正确的是( )
静态代码块指的是被static关键字修饰的代码块(正确答案) |
静态代码块随着类的加载而加载(正确答案) |
使用静态代码块可以实现类的初始化(正确答案) |
每次创建对象时,类中的静态代码块都会被执行一次 |
每次创建对象时,类中的静态代码块都会被执行一次:这是不正确的。静态代码块在类被加载时执行一次,而不是每次创建对象时都执行。这意味着,无论创建多少个类的对象,静态代码块都只会被执行一次。
36. 类的( )成员只能被该类的成员访问,而不能被非该类的成员访问 [单选题]
public |
private(正确答案) |
protected |
abstract |
37. 下列选项中关于Java中封装的说法错误的是( ) [单选题]
封装可以将属性私有化,提供公有的方法访问私有属性 |
属性的访问方法包括setter方法和getter方法 |
setter方法用于赋值、getter方法用于取值 |
类的属性必须进行封装,否则无法通过编译(正确答案) |
38. 在Java中,关于包以下描述正确的是( )
要使用Java SE API 的System 类必须import java.lang.System |
要使用Java SE API 的System 类不须要import java.lang.System(正确答案) |
要使用Java SE API 的Scanner类必须import java.util.Scanner(正确答案) |
要使用Java SE API 的Scanner类不须要import java.util.Scanner |
39. 在Java中,关于包的导入的关键字是( ) [单选题]
import(正确答案) |
class |
implements |
extends |
40. 在java中,下列关于继承的说法哪个是正确的( ) [单选题]
子类只继承父类public方法和属性 |
子类继承父类的非私有属性和方法(正确答案) |
子类只继承父类的方法,而不能继承父类的属性 |
子类将继承父类的所有的属性和方法 |
41. 在java中,下面选项中关于继承的说法错误的是( ) [单选题]
继承可以描述类与类之间的关系 |
继承实现了代码的重用 |
具有继承关系的子类和父类层次结构更加清晰 |
子类中可以重写父类中的所有方法(正确答案) |
42. Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是( ) [单选题]
C可以继承了B中的成员,同样也可以继承了A中的成员(正确答案) |
C只继承了B中的成员 |
C只继承了A中的成员 |
C不能继承A或B中的成员 |
43. 在Java 语言中,下列关于类的继承的实现描述,正确的是( ) [单选题]
一个类可以继承多个父类 |
一个类可以具有多个子类(正确答案) |
子类一定比父类有更多的成员方法 |
以上描述都不正确 |
44. 在java中,继承所使用的关键字是( ) [单选题]
implements |
import |
extends(正确答案) |
abstract |
45. 下面对Java中方法重载的描述,错误的是( )
重载的各方法必须方法名称相同 |
重载的各方法必须参数数量不同(正确答案) |
重载的各方法必须参数类型不同(正确答案) |
重载的各方法必须有相同的返回值(正确答案) |
在Java中,方法重载(Overloading)是指在同一个类中,可以有多个方法具有相同的名称,但它们的参数列表(包括参数的数量、类型或顺序)必须不同。对于返回值类型,它并不是确定方法重载的一个因素。
46. 下面对Java中方法重写的描述,错误的是( ) [单选题]
子类重写父类的方法(正确答案) |
重写方法的参数数量可以不同 |
重写方法的参数类型可以不同 |
重写方法的返回值可以不同 |
在Java中,方法重写(Overriding)是指在子类中提供一个与父类相同名称、相同参数列表(包括参数的数量、类型、顺序)的方法。现在我们来分析你给出的选项:
47. 在Java中,以下关于方法重载和方法重写描述正确的是( ) [单选题]
方法重载和方法的重写实现的功能相同 |
方法重载出现在父子关系中,方法重写是在同一类中 |
方法重载的返回值类型必须一致,参数项必须不同 |
方法重写的返回值类型必须相同(正确答案) |
48. 在java中,关于instanceof 运算符的用法描述错误的是( )d
instanceof运算符是用来在运行时指出对象是否是特定类的一个实例(正确答案) |
instanceof的返回值是一个布尔值(正确答案) |
instanceof运算符前面操作数的编译时的类型要么与后面的类相同,要么与后面的类具有父子继承关系,否则会引起编译错误//编译时并不要求前面的操作数的编译时类型与后面的类相同或具有父子继承关系。只要前面的操作数是一个对象引用(非 null),instanceof 就可以在运行时检查该对象是否是后面类的一个实例。 |
以上描述都正确 |
49. 面向对象的三大特性为( )
封装(正确答案) |
继承(正确答案) |
多态(正确答案) |
重载 |
50. 以下关于abstract的说法,正确的是( ) [单选题]
abstract只能修饰类 |
abstract只能修饰方法 |
抽象类中必须有abstract方法 //抽象类中可以没有抽象方法,但通常包含一个或多个抽象方法是为了强制子类去实现某些行为。 |
abstract方法所在的类一定是抽象类(正确答案) |
51. 下面关于抽象类与抽象方法描述正确的选项有( )
抽象类不能被实例化(正确答案) |
抽象类不能被继承 |
抽象方法不能与final、private和static复合使用(正确答案) |
抽象方法可以与public、protected复合使用(正确答案) |
52. 以下关于final关键字的使用描述错误的是( ) [单选题]
final关键字可以用于修饰类 |
final关键字可以用于修饰变量 |
final关键字可以用于修饰方法 |
被final修饰的类可以被继承(正确答案) |
53. 以下关于被final修饰的对象,说法错误的是( ) [单选题]
final修饰的成员变量一旦赋初始值就不能被改变 |
final修饰的类不能被继承 |
final修饰的方法可以被继承 |
final修饰的方法可以被重写(正确答案) |
54. 在java中,定义接口的关键字是( ) [单选题]
class |
interface(正确答案) |
method |
object |
55. 以下关于接口对象的说法中正确的是( )
接口对象只能等于实现该接口的类的对象(正确答案) |
接口只能被类实现,不能用来声明对象(正确答案) // 接口在Java等语言中是一种引用类型,但它本身不能实例化,即不能用来声明对象。接口只能被类实现(或称为“实现接口”),而实现该接口的类可以创建对象。 |
接口对象可以通过当前接口用关键词new创建 //接口本身不能被实例化,因此不能使用new关键字来创建接口对象。 |
接口对象可以等于任何类的对象 |
56. 下列关于接口的说法不正确的是( ) [单选题]
接口中只能定义公有的、静态的常量 |
接口中的方法只能是公有的抽象方法 |
用于定义接口的关键字是implements(正确答案) |
接口只能继承多个接口,接口不能继承类,也不能实现其他接口 |
接口中只能定义公有的、静态的常量:这是正确的。在Java等语言中,接口中的变量默认是public static final的,即它们是公有的、静态的、不可变的(常量)。
接口中的方法只能是公有的抽象方法:这也是正确的。在Java中,接口中的方法默认是public abstract的,即它们是公有的抽象方法。
用于定义接口的关键字是implements:这是不正确的。implements是用于类实现接口的关键字,而不是用于定义接口的关键字。用于定义接口的关键字是interface。
接口只能继承多个接口,接口不能继承类,也不能实现其他接口:接口也不能实现其他接口,因为实现是类与接口之间的关系,而不是接口与接口之间的关系。
57. 在java中,实现接口的关键字是( ) [单选题]
extends |
interface |
implements(正确答案) |
import |
58. 不能用来修饰interface的有( )
private(正确答案) |
public |
protected(正确答案) |
static(正确答案) |
59. 以下关于抽象类与接口描述正确的选项有( )
抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口(正确答案) |
在抽象类中可以没有抽象方法(正确答案) |
接口中只能包含抽象方法,而抽象类则可以包含普通方法(正确答案) |
接口中定义的变量默认是public static final型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值(正确答案) |
60. 以下关于抽象类与接口描述正确的选项有( )
抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口(正确答案) |
在抽象类中可以没有抽象方法(正确答案) |
接口中只能包含抽象方法,而抽象类则可以包含普通方法(正确答案) |
接口中定义的变量默认是public static final型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值(正确答案) |
61. 在JAVA中,对于抽象类和接口的使用下面说法错误的是( ) [单选题]
抽象类不能被实例化 |
实现接口的关键字implements |
如果一个类实现了接口的所有方法,则该类一定是抽像类(正确答案) |
接口不可以实例化对象 |
“抽象类不能被实例化” - 这是正确的。抽象类是一种特殊的类,不能被直接实例化。它们主要用于被其他类继承,并在继承的子类中提供具体实现。
“实现接口的关键字implements” - 这是正确的。在Java中,一个类要实现某个接口,必须使用implements关键字。
“如果一个类实现了接口的所有方法,则该类一定是抽像类” - 这是错误的。一个类即使实现了接口的所有方法,也不必是抽象类。它可以是一个普通的、具体的类。只要该类提供了接口中所有方法的实现,就可以被实例化。
“接口不可以实例化对象” - 这是正确的。接口是一种完全抽象的类,它只包含抽象方法(在Java 8及以后的版本中,还可以包含默认方法和静态方法),但接口本身不能被实例化。接口主要用于定义一种规范或契约,由其他类来实现。
62. 关于面向接口编程的描述错误的是( ) [单选题]
降低程序的耦合性 |
易于系统的扩展 |
不易于系统的维护(正确答案) |
以上描述均不正确 |
63. 关于异常,下列说法中正确的是( ) [单选题]
一旦程序运行,异常将被创建 |
为了保证程序的运行速度,要尽量避免减少异常控制 |
异常是一种对象(正确答案) |
以上说法都不对 |
64. Java中所有错误和异常的父类是( ) [单选题]
Throwable类(正确答案) |
Error类 |
Exeception类 |
ThrowableError |
65. 以下哪一个是空指针异常( ) [单选题]
java.lang.ClassNotFoundException |
java.lang.NullPointerException(正确答案) |
java.lang.NumberFormatException |
java.lang.IndexOutOfBoundsException |
66. 以下哪一个是数学运算异常( ) [单选题]
java.lang.ClassCastException |
java.lang.FileNotFoundException |
java.lang.NoSuchMethodException |
java.lang.ArithmeticException(正确答案) |
67. 在Java中,java.lang.NoClassDefFoundException是( )异常 [单选题]
内存不足错误 |
未找到类定义错误(正确答案) |
实例化异常 |
文件未找到异常 |
68. 给定如下所示的JAVA代码,则运行时,会产生( )类型的异常String s = null; [单选题]
ArithmeticException |
NullPointerException(正确答案) |
IOException |
ClassNotFoundException |
69. Java中,IndexOutOfBoundsException是( )异常 [单选题]
数组索引越界异常(正确答案)?????? |
对象转换异常 |
操作错误异常 |
实例化异常 |
70. 在JAVA的异常处理模型中,能单独和finally语句一起使用的块是( )
try(正确答案) |
catch |
throw |
throws |
71.关于Java异常处理的描述正确的是( ) [单选题]
Java的异常处理机制可以保障程序具有良好的容错性,使程序健壮性更高(正确答案) |
异常处理使程序具有更好的可读性(正确答案) |
在Java中可以使用“try-catch”语句处理异常(正确答案) |
方法声明时可以使用throws关键字声明抛出异常(正确答案) |
72. 以下关于使用try-catch-finally处理异常描述错误的是( ) [单选题]
try-catch捕获异常可以使用finally回收资源 |
try语句不能独立存在,其后至少要有一个catch语句块或finally语句块 |
finally语句块不是必须存在的,可以根据需求决定是否添加 |
如果try代码块没有出现异常,finally语句块不会被执行(正确答案) |
73. 下列选项中,哪个是java语言所有类的父类( )) [单选题]
Object(正确答案) |
Vector |
String |
KeyEvent |
74. 关于object类,以下描述中正确的有( ) [单选题]
object类中定义了一些重要的成员函数和变量,以方便JAVA类的使用(正确答案) |
object类是所有其他JAVA类的直接或间接父类(正确答案) |
如果一个类已经有了父类,那么这个类同时继承了object类,也就是说,这时候这个类实际上有2个父类 |
由于JAVA中的类是单继承的,因此所有的类以object类为根形成了一棵继承树(正确答案) |
75. 在JAVA 中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的( )方法不属于Object类的方法 [单选题]
equals(Object obj) |
getClass() |
toString() |
trim()(正确答案) |
76.Object类的( )方法判断指定对象与该对象是否相等 [单选题]
equals(正确答案) |
hashCode |
toString |
getClass |
77. 关于java.lang.String类,以下描述正确的一项是( )
String类不是final类故可以继承 |
String类不是final类故不可继承 |
String类是final类故不可继承(正确答案) |
String类final类故可以继承 |
78. 关于String类的构造方法描述正确的选项有( ) [单选题]
String()创建一个内容为空的字符串(正确答案) |
String(String value)初始化一个新创建的String对象,使其表示一个与参数相同的字符序列(正确答案) |
String(byte[]bytes,Charset charset)使用指定的字符编码,将指定的byte[]数组构造成一个字符串(正确答案) |
String(char[] char)将制定的char[]数组构造成一个字符串(正确答案) |
79. 以下不是String类提供的合法的方法的是( ) [单选题]
equals(String) |
trim() |
append()(正确答案) |
indexOf() |
80. 字符串string="abcde",string.charAt(3)的返回值是( ) [单选题]
"abc" |
"abcd" |
‘c’ |
‘d’(正确答案) |
81. String类的concat()方法描述正确的是( ) [单选题]
concat()方法的返回值是一个boolean值 |
concat()方法的返回值是一个int值 |
concat()方法是用于判断两个字符串的值是否相等 |
concat()方法是用于将一个字符串与指定字符串进行连接返回一个新的字符串(正确答案) |
82. 关于String类的equals方法描述错误的是( ) [单选题]
String类的equals方法用于判断两个字符串的值是否相等 |
String类的equals方法的返回值为一个String(正确答案) |
String类的equals方法的返回值是一个boolean |
String类的equals方法重写了Object的equals方法 |
83. Java语言中,String类中的indexOf()方法返回值的类型是( )
int(正确答案) |
double |
float |
boolean |
84.下面哪个是正确的( )
String temp[ ] = new String{“a”,”b”,”c”}; |
String temp[ ] = {“a”,”b”,”c”};(正确答案) |
String temp= {“a”,”b”,”c”}; //这是错误的,因为这里尝试将一个数组字面量赋值给一个String类型的变量,而不是一个String数组类型的变量。 |
String[ ] temp = {“a”,”b”,”c”};(正确答案) |
85. 执行下列代码后,哪个结论是正确的( )String[] s=new String[10]; [单选题]
s[10]为” ” |
s[9]为null(正确答案) |
s[0]为未定义 |
s.length为10(正确答案) |
86. 将该String对象转换成byte数组( ) [单选题]
getBytes()(正确答案) |
indexOf(String str) |
length() |
endsWith(String sufffix) |
87. 关于String类的equals与==描述错误的是( ) [单选题]
==比较的是两个对象的内存地址是否相同 |
String类重写了Object类的equals()方法 |
由于Object类的equals()方法比较的是两个对象的内存地址是否相同,所以String类的equals()方法也是这样(正确答案) |
String类的equals方法比较的是两个对象的值是否相同 |
88. 下列关于字符串的描叙中错误的是() [单选题]
字符串是对象 |
String对象存储字符串的效率比StringBuffer高(正确答案) |
不可以使用StringBuffer sb='这里是字符串"声明并初始化StringBuffer对象sb |
String类提供了许多用来操作字符串的方法:连接,提取,查询等 |
90. 在JAVA中,下面关于String类和StringBuffer类的描述正确的是( ) [单选题]
StringBuffer类的对象调用tostring()方法将转换为String类型(正确答案) //字符串(String)在Java中是不可变的(immutable),这意味着每次对String对象进行修改(如连接、替换等)时,都会创建一个新的String对象。这种特性使得在需要频繁修改字符串的情况下,String类的效率并不高,因为它会产生大量的临时对象,增加垃圾回收的压力。 |
两个类都有append()方法 |
可以直接将字符串“test”复制给声明的Stirng类和StringBuffer类的变量 |
两个类的实例的值都能够被改变 |
91. 在Java中,( )类用于算术运算操作 [单选题]
Scanner |
Object |
String |
Math(正确答案) |
92. Math.max(10, 8)的返回值为( ) [单选题]
8 |
10(正确答案) |
18 |
2 |
93. Math.cbrt(27)的返回值为( ) [单选题]
3(正确答案) // Math.cbrt(27) 是JavaScript中的一个数学运算,用于计算一个数的立方根。 |
9 |
0 |
27 |
94. Math.sqrt(49)的返回值为( ) [单选题]
3 |
50 |
7(正确答案) |
40 |
95. Math.abs(-4.5)的返回值为( ) [单选题]
4.5(正确答案) |
-4.5 |
0 |
9 |
96. 在Math类中( )方法用于返回两个参数的最大值 [单选题]
max(正确答案) |
maximum |
larger |
greater |
97. Math.round(5.5)的返回值为( ) [单选题]
-5.5 |
5.5 |
5 |
6(正确答案) |
98. 关于Math.random()描述正确的是( ) [单选题]
返回一个0.0~1.0之间的随机数(正确答案) |
返回一个整型随机数 |
返回一个0~100的整型随机数 |
以上描述都不正确 |
Math 类在 Java 和其他许多编程语言中都是一个非常实用的工具类,它提供了许多用于数学运算的静态方法。以下是一些 Math 类中常见的方法:
绝对值:
Math.abs(int a): 返回整数 a 的绝对值。
Math.abs(long a): 返回长整数 a 的绝对值。
Math.abs(float a): 返回浮点数 a 的绝对值。
Math.abs(double a): 返回双精度浮点数 a 的绝对值。
平方根:
Math.sqrt(double a): 返回 a 的正平方根(a 必须是非负数)。
幂运算:
Math.pow(double a, double b): 返回 a 的 b 次幂。
三角函数:
Math.sin(double a): 返回角度 a(以弧度为单位)的正弦值。
Math.cos(double a): 返回角度 a(以弧度为单位)的余弦值。
Math.tan(double a): 返回角度 a(以弧度为单位)的正切值。
Math.asin(double a): 返回值为 a 的正弦值的弧度角。
Math.acos(double a): 返回值为 a 的余弦值的弧度角。
Math.atan(double a): 返回值为 a 的正切值的弧度角。
Math.atan2(double y, double x): 返回从 x-y 平面上的点 (x,y) 到原点的直线的角度(以弧度为单位)。
对数函数:
Math.log(double a): 返回 a 的自然对数(底数为 e)。
Math.log10(double a): 返回 a 的以 10 为底的对数。
四舍五入:
Math.round(double a): 返回最接近 a 的整数。四舍五入到最接近的整数。
Math.ceil(double a): 返回大于或等于 a 的最小整数(向上取整)。
Math.floor(double a): 返回小于或等于 a 的最大整数(向下取整)。
最大/最小值:
Math.max(int a, int b): 返回两个整数中的较大值。类似的方法也适用于其他类型,如 Math.max(double a, double b)。
Math.min(int a, int b): 返回两个整数中的较小值。类似的方法也适用于其他类型。
其他方法:
Math.random(): 返回大于等于 0.0 且小于 1.0 的一个随机浮点数。
Math.exp(double a): 返回 e 的 a 次幂(e 是自然对数的底数)。
Math.IEEEremainder(double f1, double f2): 根据 IEEE 754 标准,返回 f1 - f2 的余数。
Math.toRadians(double angdeg): 将角度转换为弧度。
Math.toDegrees(double angrad): 将弧度转换为角度。
99. 表达式( )将返回当前的系统时间和日期 [单选题]
Day.getDateTime() |
DateFormat.getDataTimeInstance() |
DateFormat.getDateTimeInstance()(正确答案) |
Day.getDateTimeInstance() |
100. 下列关于javA.util.Date类的描述中,错误的是( ) [单选题]
Java提供了java.util.Date类处理日期、时间 |
Date对象既包含日期,也包含时间 |
Date对象包含日期,不包含时间(正确答案) |
构造方法Date(long date)根据指定long类型整数生成一个Date对象 |
101. 下列关于javA.util.Calendar类的描述中,错误的是( ) [单选题] ????
Calendar可以通过构造方法实例化Calendar对象(正确答案) //java.util.Calendar 是一个抽象类,它不能直接通过构造方法实例化。相反,Calendar 类提供了一些静态工厂方法,如 getInstance(),来创建 Calendar 对象的实例。getInstance() 方法会根据默认的时区(通常是系统时区)返回一个 Calendar 对象(通常是 GregorianCalendar 的实例,因为它是 Calendar 的一个常用实现)。 |
Calendar.getInstance()方法可以创建Calendar的子类对象处理日期和时间 |
getTime()方法可以从Calendar对象中获取Date对象 |
setTime(Date date)可以通过Date对象获得对应的Calendar对象 |
102. 下列有关SimpleDateFormat类的对象使用说法错误的是( ) [单选题]
日期格式化标记y代表年 |
日期格式化标记M代表年份中的月 |
日期格式化标记d代表月份中的天 |
日期格式化标记m代表分钟中的秒数(正确答案) // 分钟 |
103. 下列有关Java集合体系描述不正确的是( ) [单选题]
Java集合类主要由两个接口派生而出,即Collection和Map接口 |
Collection和Map接口都是以键值对的形式存放数据(正确答案) |
Collection和Map是Java集合框架的最上层的父接口,这两个接口又包含其他的子接口和实现类 |
Java集合主要包括三种类型:Set、List、Map |
104. 以下集合中继承自Collection接口的有( ) [单选题]
List与Map |
Set与Map |
List与Set(正确答案) |
List、Map与Set |
105. 下列有关Java集合与数组的描述正确的有( )
数组既可以存储基本数据类型又可以存储引用数据类型,集合只能存储引用数据类型(正确答案) |
数组长度是固定的,而集合的长度是可变的,可以根据元素的增加而增长(正确答案) |
如果元素个数是固定的推荐用数组,如果元素个数不是固定的推荐用集合(正确答案) |
集合与数组都具有下标索引 |
106. 以下不属于List集合的是( ) [单选题]
AraayList |
HashSet(正确答案) |
LinkedList |
Vector |
107. 关于java中的集合类java.util.Arraylist,以下说法正确的是( ) [单选题]
这个集合元素的无序的 |
可以通过键来获取这个集合的值 |
可以通过addFirst()方法,在列表的首部插入元素 |
在对这个集合的元素执行遍历操作时,效率比较高(正确答案) |
这个集合元素的无序的 - 这是不正确的。ArrayList中的元素是有序的,即它们按照添加到列表中的顺序进行存储。
可以通过键来获取这个集合的值 - 这是不正确的。ArrayList是基于索引的,而不是基于键的。要获取元素,你需要知道其索引,而不是键。对于基于键的集合,你应该考虑使用HashMap或TreeMap等。
可以通过addFirst()方法,在列表的首部插入元素 - 这是不正确的。ArrayList没有addFirst()方法。这个方法在LinkedList中存在。要在ArrayList的开头插入元素,你可以使用add(0, element)。
在对这个集合的元素执行遍历操作时,效率比较高 - 这是正确的。ArrayList在内存中是一个连续的数组,因此遍历它(例如,使用for循环或迭代器)通常是非常高效的。
108. 将集合c的所有元素添加到指定集合中正确是( ) [单选题]
list.addAll(c)(正确答案) |
list.add(c) |
put(c) |
putAll(c) |
109. 在JAVA中 ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象 bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( ) [单选题]
bookTypeList.add("小说"); |
bookTypeList.get("小说"); |
bookTypeList.contains("小说");(正确答案) |
bookTypeList.remove("小说"); |
110. 下面关于ArrayList和LinkedList在存储结构说法正确的是( )
LinkedList链表结构(正确答案) |
LinkedList是基于数组结构 |
ArrayList链表结构 |
ArrayList 是基于数组结构(正确答案) |
111. 在ArrayList集合包含多个"张三"的字符串,调用remove("张三")后,对该集合描述正确的是( ) [单选题]
仅删除第一个符合条件的元素(正确答案) |
所有"张三"都会被删除 |
删除集合第一个添加的元素 |
删除集合最后一个添加的元素 |
112. 下面关于ArrayList集合与LinkedList集合之间区别的描述中,正确的有( )
ArrayList是基于数组结构的集合(正确答案) |
ArrayList遍历和随机访问元素的效率比较高(正确答案) |
LinkedList采用链表存储方式(正确答案) |
LinkedList插入、删除元素效率比较高(正确答案) |
113. 在Java中,以下那个不是LinkedList类的方法的是( ) [单选题]
length()(正确答案) |
void addFirst(Object o) |
addLast(Object o) |
Object removeLast() |
ArrayList的remove(Object o)方法用于从列表中移除指定的元素。如果存在多个相同的元素,它只会移除第一次遇到的那个。
114. 已知一个HashSet集合,向该集合添加一条数据,调用的方法是( ) [单选题]
clear() |
add()(正确答案) |
remove() |
addAll() |
115. 已知一个HashSet集合,向该集合删除一条数据,调用的方法是( ) [单选题]
remove()(正确答案) |
addAll() |
add() |
clear() |
116. 将1,2,3,4,2,2,5,6这些数组放在HashSet集合中可能出现的情况是( ) [单选题]
1,2,3,4,5,6,2,2 |
1,2,3,4,5,6(正确答案) |
2,1,4,3,6,5,2,2 |
1,2,3,4,2,2,5,6 |
117. 关于HashSet特点以下选项描述正确的是( )
HashSet不允许插入相同元素的对象(正确答案) |
不能保证元素的排列顺序,顺序有可能发生变化(正确答案) |
集合元素值可以是null(正确答案) |
HashSet不是同步的,如果多个线程同时访问一个HashSet,则必须通过代码保证其同步(正确答案) |
118. 以下不属于Set集合的是( ) [单选题]
HashSet |
Vector(正确答案) |
TreeSet |
LinkedHashSet |
119. 对 collection进行迭代的迭代器是( ) [单选题]
java.text.Iterators |
java.util.Iterator(正确答案) |
java.text.Enumeration |
java.text.Iterator |
120. 以下关于Iterator迭代器描述错误的是( ) [单选题]
可以使用new Iterator()创建Iterator对象(正确答案) |
Iterator的hasNext(Object o)方法,如果被迭代的集合中的元素没有遍历完成,则返回true |
Iterator的next()方法,返回集合中的下一个元素 |
Iterator的remove()方法,将迭代器新返回的元素删除 |
在Java中,Iterator是一个接口,不是一个可以直接实例化的类。因此,你不能直接使用new Iterator()来创建一个Iterator对象。相反,你应该从某个实现了Iterable接口的集合(如ArrayList, HashSet等)中获取Iterator对象。这通常是通过调用集合的iterator()方法来实现的。
例如:
java
复制
List<String> list = new ArrayList<>();
// 添加元素到list...
Iterator<String> iterator = list.iterator();
121. 以下关于Set集合的描述错误的是( ) [单选题]
将一个对象添加到Set集合时,Set集合无法记住添加此元素的顺序 |
Set集合中的元素是不能重复的 |
Set元素值不可以是null(正确答案) |
HashSet按Hash算法实现存储集合中的元素,因为其具有良好的存储和查找性能 |
122. 在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列选项中的方法是LinkedList类有而ArrayList类没有的( ) [单选题]
add(Object o) |
add(int index,Object o) |
remove(Object o) |
removeLast()(正确答案) |
123. 以下实现了Map接口的类的是( ) [单选题]
Set |
HashMap(正确答案) |
List |
Hashtable |
124. 在JAVA中,以下( )类的对象以键-值的方式存储对象 [单选题]
java.util.List |
java.util.ArrayList |
java.util.HashMap(正确答案) |
java.util.LinkedList |
125. 下面哪种是正确的创建Map集合的方式( ) [单选题]
Map m=new Map(); |
Map m=new Map(init capacity, increment capacity); |
Map m=new Map(new Collection()); |
Map是接口,所以不能实例化(正确答案) |
126. key是Map的键,value是Map的值,HashMap中的put()方法参数是( ) [单选题]
put(value,key) |
put(key,key) |
put(key,value)(正确答案) |
put(key,key) |
127. key是Map的键,value是Map的值,HashMap中的get()方法参数是( ) [单选题]
get(id) |
get(value) |
get(key)(正确答案) |
get(index) |
128. HashMap中移除所有映射关系的方法是( ) [单选题]
get() |
put() |
remove() |
clear()(正确答案) |
129. Map集合的put方法放入key-value如果键已经存在则( ) [单选题]
覆盖(正确答案) |
添加 |
删除 |
什么都没有发生 |
130. 想要获得Map中所有的值应调用以下哪个方法( ) [单选题]
put() |
getAll() |
keyset() |
values()(正确答案) |
131. 在Java中,关于HashMap类的描述,以下说法正确的有( )
HashMap使用键/值的形式保存数据(正确答案) |
HashMap能够保证其中元素的顺序 不能 |
HashMap允许将null用作键(正确答案) |
HashMap允许将null用作值(正确答案) |
132. 在java中,关于HashMap与Hashtable的区别描述错误的是( ) [单选题]
HashMap允许出现空值、空键 |
Hashtable不允许出现空值、空键 |
HashMap线程异步、效率较高,Hashtable线程同步、效率较低 |
HashMap与Hashtable都继承自AbstractMap(正确答案) // 这个描述是不正确的,因为HashMap和Hashtable都实现了Map接口,但它们并没有直接继承自AbstractMap类。AbstractMap是一个提供了Map接口的部分实现的抽象类,但它本身并不是HashMap和Hashtable的父类。HashMap和Hashtable都是直接实现了Map接口,并且各自有自己的实现方式。 |
133. Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是( ) [单选题]
ArrayList和LinkedList均实现了List接口 |
ArrayList的访问速度比LinkedList快 |
添加和删除元素时,ArrayList的表现更佳(正确答案) //LinkedList |
HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值 |
134. 关于内部类描述错误的是( ) [单选题]
内部类提供了更好的封装,可以将内部类隐藏在外部类内 |
内部类成员可以直接访问外部类的私有数据 |
外部类能访问内部类的实现细节,如内部类的成员变量(正确答案) |
匿名内部类适用于创建那些仅需要一次使用的类 |
135. 以下关于内部类的使用描述正确的是( ) [单选题] ?????
内部类不能被访问修饰符修饰(正确答案) |
内部类可以用private修饰 |
内部类可以用public修饰 |
内部类可以用protected修饰 |
136. 以下关于内部类的属性描述正确的是( ) [单选题] ???
不能被访问修饰符修饰,能被sttaic修饰 |
能被访问修饰符修饰,不能被sttaic修饰(正确答案) |
能被访问修饰符修饰,能被sttaic修饰 |
不能被访问修饰符修饰,不能被sttaic修饰 |
137. 内部类访问外部类相关表述正确的是( ) [单选题]
在普通方法里的内部类可以访问外部类的全部成员(正确答案) |
在普通方法里的内部类不能访问外部类的所有成员 |
在静态方法里的内部类可以访问外部类的全部成员 |
在静态方法里的内部类不能访问外部类的所有成员 |
在普通方法(非静态方法)里的内部类可以访问外部类的全部成员,包括私有成员(因为内部类是外部类的一个部分,可以访问外部类的所有成员)。
在静态方法里的内部类实际上是静态内部类(因为静态方法只能访问静态成员,所以其中的内部类也必须是静态的)。静态内部类不能访问外部类的非静态成员,因为它不依赖于外部类的特定实例。但是,它可以访问外部类的静态成员。
138. 以下关于内部类的方法描述正确的是( ) [单选题]
能被访问修饰符修饰,能被sttaic修饰 |
不能被访问修饰符修饰,不能被sttaic修饰 |
能被访问修饰符修饰,不能被sttaic修饰(正确答案) |
不能被访问修饰符修饰,能被sttaic修饰 |
139. 匿名内部类的特点下面错误的是( ) [单选题]
匿名内部类没有构造方法 |
如果匿名内部类需要访问外部类的局部变量,则必须使用final修饰符修饰外部类的局部变量,否则系统将报错 |
匿名内部类不能是抽象类 |
匿名内部类不能实现接口(正确答案) |
匿名内部类没有构造方法
这是正确的。由于匿名内部类没有名称,因此无法直接定义构造方法。但是,你可以通过实例初始化块(instance initializer block)或者通过继承的父类或实现的接口的构造器来初始化匿名内部类的状态。
如果匿名内部类需要访问外部类的局部变量,则必须使用final修饰符修饰外部类的局部变量,否则系统将报错
这也是正确的。在Java 8之前,如果一个匿名内部类需要访问外部类的局部变量(不是静态的),那么这个变量必须是final的(或者实际上是final的,即被赋值后就不会再改变)。这是因为在匿名内部类创建时,会捕获外部变量的一个拷贝,而不是直接引用。从Java 8开始,这个限制有所放宽,但局部变量仍然必须是事实上的final(即不能重新赋值)。
匿名内部类不能是抽象类
这是正确的。匿名内部类通常用于实现接口或继承一个类,并立即创建其实例。由于它是匿名的,因此它不能是抽象的,因为抽象类不能被实例化。
匿名内部类不能实现接口
这是错误的。匿名内部类最常用来实现一个或多个接口,而不需要给出类名。你可以直接在匿名内部类中实现接口中定义的所有方法,并在创建后立即使用该对象。例如:
java
复制
Runnable r = new Runnable() {
@Override
public void run() {
// 实现run方法
}
};
上面的代码中,我们创建了一个匿名的Runnable内部类,并实现了其run方法。
因此,错误的选项是:匿名内部类不能实现接口。
140. 有以下代码 new Runnable(){public void run(){//重写该方法}};该类属于( ) [单选题]???
成员内部类 |
匿名内部类(正确答案) |
局部内部类 |
静态内部类 |
141. 以下哪几种属于内部类( )
成员内部类(正确答案) |
局部内部类(正确答案) |
匿名内部类(正确答案) |
标准内部类 |
这个类没有类名,并且是直接在一个表达式中创建的,所以它是匿名的。根据给定的选项,它属于:
匿名内部类(正确答案)
不是成员内部类,因为成员内部类是定义在另一个类的内部的类,并且它有自己的类名。
不是局部内部类,因为局部内部类是定义在方法内部的类,并且它也有自己的类名。
142. 关于泛型的说法正确的是( )
泛型是JDK1.5出现的新特性(正确答案) |
泛型是一种安全机制(正确答案) |
使用泛型避免了强制类型转换(正确答案) |
使用泛型必须进行强制类型转换 |
143. 下列关于泛型的说法,错误的是( ) [单选题]
泛型是一种参数化类型 |
可以取代继承机制(正确答案) |
避免了运行时进行类型转换可能的潜在性错误 |
增强了程序的灵活性和安全性 |
144. 以下语句正确的是( )
List<String> list=new ArrayList<String>( );(正确答案) |
List<Integer> list=new ArrayList<>( );(正确答案) |
已知cat是Animal类的子类,则List<Animal> list=new ArrayList<Cat>(); |
List<0bject> list=new ArrayList<Integer>( ); |
List<String> list = new ArrayList<String>( );
这是正确的。这里声明了一个List<String>类型的变量list,并且用ArrayList<String>的实例来初始化它。注意在Java中,从Java 7开始,你可以省略类型参数(泛型参数)的重复,因此你也可以写成new ArrayList<>(),但这并不影响语句的正确性。
List<Integer> list = new ArrayList<>( );
这也是正确的。同样地,这里声明了一个List<Integer>类型的变量list,并用ArrayList<Integer>的实例来初始化它。同样地,类型参数可以省略,所以new ArrayList<>()也是合法的。
已知cat是Animal类的子类,则List<Animal> list = new ArrayList<Cat>();
这是错误的。在Java中,泛型是不支持协变的(covariance)。这意味着你不能将一个特定类型的子类的列表(比如List<Cat>)赋值给一个更一般的类型的列表(比如List<Animal>),即使子类是父类的一个子类也不行。这是因为这样做会破坏泛型的类型安全。如果你尝试这样做,编译器会报错。
List<Object> list = new ArrayList<Integer>( );
这是错误的,但原因并不是因为类型不兼容。实际上,由于Integer是Object的子类(所有的Java类都是Object的子类),所以从ArrayList<Integer>到List<Object>的赋值在类型上是兼容的,这被称为泛型的逆变(contravariance),但是Java的泛型并不支持逆变
145. 以下有关JDBC的描述,哪一个选项是正确的( ) [单选题]
JDBC是一种被设计成通用的数据库访问技术,JDBC技术不光可以应用在Java程序中,还可用在C++这样的程序中 |
JDBC技术是SUN公司设计出来专门用在连接Oracle数据库的技术,连接其他数据库只能采用微软的ODBC解决方案 |
微软的ODBC和SUN公司的JDBC解决方案都能实现跨平台使用,只是JDBC的性能要高于ODBC |
JDBC只是个抽象的调用规范,底层程序实际上要依赖于每种数据库的驱动文件(正确答案) |
146. JDBC数据访问相关的类和接口定义在( )包中 [单选题]
java.sql(正确答案) |
java.awt |
java.lang |
javax.swing |
147. 下列有关JDBC常用API相关描述错误的是( ) [单选题]
java.sql.DriverManager管理JDBC驱动程序,使用它可以获取Connection对象 |
java.sql.Connection建立与特定数据库的连接(会话) |
java.sql.Statement用于向数据库发送SQL语句 |
java.sql.PreparedStatement不能预处理SQL语句(正确答案) |
148. 哪个不是JDBC用到的接口和类( ) [单选题]
System(正确答案) |
Class |
Connection |
ResultSet |
149. 下列关于statement实例执行sql语句说法错误的是( ) [单选题]
可用于执行insert、update或者delete语句 |
对于CREATE TABLE 或 DROP TABLE等不操作行的语句,executeUpdate()的返回值总为零 |
对于delete语句的效果是删除表中的一行或者多行,executeUpdate返回值是0或者1(正确答案) /// 这个说法是错误的。executeUpdate()方法用于执行INSERT、UPDATE或DELETE语句,以及DDL(数据定义语言)语句如CREATE TABLE或DROP TABLE。但对于DELETE语句,executeUpdate()的返回值不是0或1,而是返回实际被影响的行数。如果删除了多行,返回值将是大于1的整数。如果没有行被删除(例如,WHERE子句的条件不匹配任何行),则返回值为0。 因此,正确的说法是: 对于DELETE语句,executeUpdate()的返回值是实际被删除的行数,可以是0(没有行被删除)或者任何大于0的 |
UPDATE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate的返回值是一个整数,指示受影响的行数 |
150. 下列获取数据库连接正确的是( ) [单选题]
Connection conn=DriverManager.getConnection(URL,USER,PASSWORD);(正确答案) |
JDBCConnection conn=DriverManager.getConnection(URL,USER,PASSWORD); |
Connection conn=getConnection(URL,USER,PASSWORD); |
Connection conn=Driver.getConnection(URL,USER,PASSWORD); |
151. 在JDBC编程中执行完SQL语句:SELECT name, rank, serialNo FROM employee, 在遍历结果集rs的时候能得到第一列数据的代码是( ) [单选题]
rs.getString(0); |
rs.getString("rank"); |
rs.getString(1)或rs.getString("name");(正确答案) |
rs.getString(“ename”); |
152. 下面的描述正确的是( )
Statement的executeQuery()方法会返回一个结果集Result(正确答案) |
Statement的executeUpdate()方法会返回是否更新成功的boolean值 |
ResultSet中的next()方法会使结果集中的下一行成为当前行(正确答案) |
以上描述都正确 |
Statement的executeQuery()方法会返回一个结果集ResultSet:这是正确的。executeQuery() 方法用于执行查询,并返回一个 ResultSet 对象,它包含由 SQL 查询生成的数据。
Statement的executeUpdate()方法会返回是否更新成功的boolean值:这是不正确的。executeUpdate() 方法用于执行 INSERT、UPDATE 或 DELETE 语句,以及 SQL DDL(数据定义语言)语句,如 CREATE TABLE 和 DROP TABLE。对于 INSERT、UPDATE 或 DELETE 语句,它返回的是受影响的行数(一个整数)。对于 DDL 语句,它通常返回 0,因为这些语句不直接影响表中的行数。
ResultSet中的next()方法会使结果集中的下一行成为当前行:这是正确的。ResultSet 对象维护了一个指向其当前数据行的游标。next() 方法使游标向前移动一行,并且如果新的当前行有效,则返回 true。
153. 以下关于PreparedStatement的execute()与executeUpdate()描述正确的是( )
execute()返回的是boolean值(正确答案) |
executeUpdate()返回的是boolean值 |
execute()返回的是int值 |
executeUpdate()返回的是int值(正确答案) |
154. 使用JDBC对数据库中的数据进行更新(update)操作,调用的是Statement对象的方法是( ) [单选题]
execute() |
executeUpdate()(正确答案) |
executeQuery() |
以上都不是 |
155. 使用JDBC对数据库中的数据进行查询(select)操作,调用的是Statement对象的方法是( ) [单选题]
execute() |
executeUpdate() |
executeQuery()(正确答案) |
以上都不是 |
156. 如果数据库中某个字段为numeric型,不可以通过ResultSet的哪个方法获取( ) [单选题]
getNumeric()(正确答案) |
getDouble() |
getFloat() |
以上都不是 |
ResultSet接口中,用于从数据库中检索数据的方法有很多,但它们通常与SQL数据类型相对应。对于numeric类型的字段,JDBC规范并没有直接定义一个名为getNumeric()的方法来获取这个值。然而,你可以根据numeric字段的具体数值范围和精度,使用诸如getInt(), getLong(), getFloat(), getDouble(), getBigDecimal()等方法来获取值。
157. 下面关于JDBC对象的描述正确的是( ) [单选题]
PreparedStatement继承自Statement(正确答案) |
Statement继承自PreparedStatement |
ResultSet继承自Statement |
CallableStatement继承自PreparedStatement |
158. 有关Connection描述错误的是哪一个( ) [单选题]
Connection是Java程序与数据库建立的连接对象,这个对象只能用来连接数据库,不能执行SQL语句 |
JDBC的数据库事务控制要靠Connection对象完成 |
Connection对象使用完毕后要及时关闭,否则会对数据库造成负担 |
只有MySQL和Oracle数据库的JDBC程序需要创建Connection对象,其他数据库的JDBC程序不用创建Connection对象就可以执行数据库操作(正确答案) |
159. 下面选项的MySQL数据库URL正确的是哪一个( ) [单选题]
jdbc:mysql://localhost/company |
jdbc:mysql://localhost:3306:company |
jdbc:mysql://localhost:3306/company(正确答案) |
jdbc:mysql://localhost/3306/company |
160. 关于Connection conn=DriverManager.getConnection(URL,USer,PASSWORD)描述错误的是( ) [单选题]
URL表示连接数据库的路径 |
USER表示登录数据库的账号 |
PASSWORD表示登录数据库的密码 |
conn表示执行数据库SQL语句的执行对象(正确答案) |
161. JDBC API中的Statement对象的含义是( ) [单选题]
数据库连接 |
向数据库发布的SQL命令(正确答案) |
结果集 |
数据库元数据 |
162. 对预编译SQL语句UPDATE emp SET ename=?,job=?,salary=? WHERE empno=?的第三个问号赋值正确的是( ) [单选题]
pst.setInt("3",2000); |
pst.setInt(3,2000);(正确答案) |
pst.setFloat("salary",2000); |
pst.setString("salary","2000"); |
163. 使用Connection 的哪个方法可以建立一个PreparedStatement接口( ) [单选题]
createPrepareStatement() |
prepareStatement()(正确答案) |
createPreparedStatement() |
preparedStatement() |
164. SELECT COUNT(*) FROM emp这条SQL语句执行,如果员工表中没有任何数据, 那么ResultSet中将会是( ) [单选题]
null |
有数据(正确答案) |
不为null,但是没有数据 |
以上都选项都不对 |
当执行 SELECT COUNT(*) FROM emp 这条SQL语句时,无论emp表中是否有数据,都会返回一个结果集(ResultSet)。这个结果集只包含一行一列,该列的值表示emp表中的记录数。
如果emp表中没有任何数据,那么返回的结果集中的列值将会是0。这个结果集本身并不是null,而是有一个值(即使这个值是0)。
因此,正确答案是:
有数据(正确答案)
具体来说,这个数据是0,表示没有员工记录。
165. 下列用于表示执行事先编译的SQL语句的Java类是( ) [单选题]
Statement |
PreparedStatement(正确答案) |
Connection |
ResultSet |
166. 以下选项关于PreparedStatement的说法正确的是( )
PreparedStatement继承了Statement(正确答案) |
PreparedStatement可以有效的防止SQL注入(正确答案) |
PreparedStatement只能执行带问号占位符的预编译SQL,不能执行SQL语句 |
PreparedStatement可以存储预编译的SQL语句,从而提升执行效率(正确答案) |
167. 根据用户在文本框txtName中输入的姓名对Student表进行查询,以下SQL语句定义正确的是( ) [单选题]
String sql="Select * from Student where Sname="+txtName.getText(); |
String sql="Select * from Student where Sname='"+txtName.getText()+"'";(正确答案) |
String sql="Select * from Student where Sname like "+txtName.getText(); |
String sql="Select * from Student where Sname like '"+txtName.getText()+"'"; |
168. 设执行select sno,sname,sdept from Students后得到ResultSet对象rs,以下哪一项可以取得sname的值( ) [单选题]
rs.getString("sname")和rs.getString(1) |
rs.getString("sname")和rs.getString(2)(正确答案) |
rs.getString("sno")和rs.getString(0) |
rs.getString("sno")和rs.getString(1) |
169. 使用JDBC进行开发的步骤顺序描述正确的是( ) [单选题]
加载驱动->获得连接->创建Statement对象->执行SQL语句->处理结果(正确答案) |
获得连接->加载驱动->创建Statement对象->执行SQL语句->处理结果 |
加载驱动->获得连接->执行SQL语句->创建Statement对象->处理结果 |
加载驱动->创建Statement对象->获得连接->执行SQL语句->处理结果 |
170. 以下关于回收数据库资源描述正确的是( )
ResultSet可以调用close方法进行对象的关闭释放资源(正确答案) |
Statement可以调用close方法进行对象的关闭释放资源(正确答案) |
Connection可以调用close方法进行对象的关闭释放资源(正确答案) |
PreparedStatement不能调用close方法进行对象的关闭释放资源 |
171. 下面关乎Java Swing的描述,说法正确的是( )
Swing是在AWT的基础上构建的一套新的图形界面系统(正确答案) |
Swing是一个为Java设计的GUI工具包(正确答案) |
Swing由C语言实现,不再依赖于本地平台的GUI,因此可以在所有操作系统平台上都保持相同的界面外观 //错误。Swing是用Java编写的,不是C语言。Swing确实不直接依赖于本地平台的GUI,但它在不同平台上仍然可能会显示出不同的外观和感觉(L&F, Look and Feel),因为不同的操作系统和Java运行环境可能有不同的默认设置。然而,Swing允许你通过选择不同的Look and Feel来改变界面外观,以使其在不同的平台上尽可能一致。 |
Swing组件位于javax.swing包(正确答案) |
172. 以下关于JFrame窗口容器描述错误的是( ) [单选题]
在Swing GUI中,JFrame是一个顶层容器,可以存放其他组件 |
只能够调用JFrame类的构造方法,而不能通过继承的方式实现窗体类(正确答案) //错误。虽然可以直接使用JFrame的构造方法来创建窗口,但也可以通过继承JFrame类来创建自定义的窗体类。这是常见的做法,允许开发者在继承的类中添加自定义的行为或属性。 |
JFrame类构造方法创建的窗体是不可见的,需要开发人员通过硬编码的方式,设置窗体的可见性 |
JFrame类构造方法创建的窗体默认的大小为0 x 0像素,默认的坐标是(0,0),因此在开发中需要设置窗体的大小 |
173. 以下方法中不属于JFrame的的是( ) [单选题]
setLayout(LayoutManager mg) |
setTitle(String title) |
setSize(int width,int height) |
prepareStatement()(正确答案) |
正确答案是 prepareStatement()。
setLayout(LayoutManager layout) 是 JFrame 类的一个方法,用于设置布局管理器。
setTitle(String title) 也是 JFrame 类的一个方法,用于设置窗口的标题。
setSize(int width, int height) 同样是 JFrame 类的一个方法,用于设置窗口的大小。
然而,prepareStatement() 是 java.sql.Connection 接口中的一个方法,用于创建 PreparedStatement 对象来执行SQL语句。它不属于 JFrame 类或任何Swing GUI组件类。
174. 以下关于JFrame的setBounds(int x,int y,int width,int hight)方法描述正确的是( ) [单选题]
x与y表示窗体的宽和高,width与hight表示窗体的位置横坐标与纵坐标 |
x与y表示窗体的位置横坐标与纵坐标,width与hight表示窗体的宽和高(正确答案) |
x与y表示窗体的高和宽,width与hight表示窗体的位置纵坐标与横坐标 |
x与y表示窗体的位置纵坐标与横坐标,width与hight表示窗体的高和宽 |
175. 在JFrame中,以下哪一个方法可以用来设置窗体可见( ) [单选题]
setVisible()(正确答案) |
setLayout() |
setTitle() |
setIconImage() |
176. 在JFrame中,哪一个方法可以设置用户单击窗口的关闭按钮时程序执行的操作( ) [单选题]
setDefaultCloseOperation()(正确答案) |
setLocation() |
setVisible() |
以上选项都不正确 |
177. 以下关于布局的说法,正确的是( )
BorderLayout是边框布局,它是窗体的默认布局(正确答案) |
null是空布局,它是面板的默认布局 |
FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列(正确答案) |
GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件(正确答案) |
178. 以下用于创建容器对象的类是( )
Frame(正确答案) |
Checkbox |
Panel(正确答案) |
TextField(正确答案) ????? |
179. 下面哪个可以改变容器的布局( ) [单选题]
setLayout(aLayoutManager);(正确答案) |
addLayout(aLayoutManager); |
layout(aLayoutManager); |
setLayoutManager(aLayoutManager); |
180. 下列不属于Swing的构件是( ) [单选题]
JButton |
JLabel |
JFrame |
JPane(正确答案) |
181. 在Swing编程中,关于布局管理器描述正确的有( )
FlowLayout是流式布局管理器(正确答案) |
GridLayout是网格布局管理器(正确答案) |
BorderLayout是边框布局管理器(正确答案) |
窗体默认布局方式为BorderLayout边框布局 //窗体(在Swing中通常指的是JFrame)的默认布局方式不是 BorderLayout。实际上,JFrame 的内容窗格(content pane)的默认布局管理器是 BorderLayout,但JFrame 本身并不是布局管理器。如果你直接往JFrame中添加组件(而不是其内容窗格),那么这些组件将不会被任何布局管理器管理,并可能会重叠或显示不正常。在大多数情况下,我们是在JFrame的内容窗格上设置布局管理器,而内容窗格的默认布局管理器是BorderLayout。 |
182. 以下是关于FlowLayout布局组件排列顺序的叙述,正确的是( ) [单选题]
从上到下排列 |
从左到右排列(正确答案) |
从下到上排列 |
从右到左排列 |
183. 下列选项中,关于GridLayout(网格布局管理器)的说法错误的是( ) [单选题]
使容器中的各组件呈M行×N列的网格状分布 |
各组件的排列方式为:从上到下,从左到右 |
容器大小改变时,组件的相对位置不变,大小不会改变(正确答案)
|
组件放入容器的次序决定了它在容器中的位置 |
184. 下列哪一个控件是JFrame的标签组件( ) [单选题]
JTextField |
JLabel(正确答案) |
JButton |
JPanel |
185. 下列哪一个控件是JFrame的文本框组件( ) [单选题]
JTextField(正确答案) |
JLabel |
JButton |
JPanel |
186. 通过以下哪一个方法可以将JButton添加到窗体中( ) [单选题]
put(JButton jbutton) |
set(JButton jbutton) |
add(JButton jbutton)(正确答案) |
以上都不正确 |
187. 以下关于JTextField与JPasswordField组件描述错误的是( ) [单选题]
JTextField是文本框组件 |
JPasswordField是密码框组件 |
JPasswordField继承自JTextField |
JTextField继承自JPasswordField(正确答案) |