JAVASETEST0814
JAVASE0814
使用 Java语言编写的源程序保存时的文件扩展名是(B)。
A..class **B..java** C..cpp D..txt
2.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的 是(C )。
A.a[0]; B.a[a.length-1]; **C.a[3]; // 012** D.int i=1; a[i];
3.在同一个类的定义中可以有两个同名函数,这种现象称为函数(D )。 A.封装 B.继承C.覆盖 **D.重载**
4. 在类的定义中构造函数的作用是( D)。
A.保护成员变量 B.读取类的成员变量 C.描述类的特征 **D.初始化成员变量**
5.类与对象的关系是( A)。**A.类是对象的抽象** B.对象是类的抽象C.对象是类的子类 D.类是对象的具体实例
6.下面哪一个是 Java中不合法的标识在(D )。
A.$persons B.twoNum C._myVar D.*point
```java
Java 中,标识符是用来命名变量、方法、类等的名称。合法的标识符必须遵循一些命名规则,而不合法的标识符则会导致编译错误。
以下是一些不合法的标识符情况:
//以数字开头: 标识符不能以数字开头。
例如,2variable 是不合法的。
//包含空格或特殊字符: 标识符不能包含空格或特殊字符(除了下划线 _ 和美元符号 $)。
例如,my variable、hello-world 是不合法的。
//Java 关键字: 某些单词在 Java 中具有特殊含义,被称为关键字,不能用作标识符。
例如,class、public、while 是不合法的。
//与现有类名冲突: 标识符不能与 Java 类库中已有的类名相同。
例如,您不能将自己的类命名为 String、ArrayList 等。
//大小写敏感: 标识符是大小写敏感的,这意味着大写和小写字母被视为不同的字符。
例如,myVariable 和 myvariable 是两个不同的标识符。
//长度无限制: 理论上,标识符可以是任意长度,但出于可读性和规范性的考虑,通常会遵循一定的命名约定,如驼峰命名法。
示例合法标识符:
variableName
_underscore
myVariable
$variable
//示例不合法标识符:
*point
2variable
hello-world
class
String符
s
```
7.为 AB 类的一个无形式参数无返回值的方法 method 书写方法头, 使得
使用类名 AB作为前缀就可以调用它,该方法头的形式为 ( A)。
**A.static void method( )** B.public void method( )C.final void method( ) D.abstract void method( )
8.欲构造 ArrayList类的一个实例,此类继承了 List 接口,下列哪个方 法是正确的(B )。
A.ArrayList myList=new Object( )
**B.List myList=new ArrayList( )** C.ArrayList myList=new List( ) D.List myList=new List( )
9.Java源文件和编译后的文件扩展名分别为( B)
A. .class和 .java **B..java 和 .class** C..class和 .class D. .java 和 .java
10.对于一个 Java源文件, import, class 定义以及 package正确的顺序是:A C
**A.package,import,class** B. (B) class,import,packageC.import,package,class D.package,class,import
11.下面哪个是非法的:A.int I = 32; B.float f = 45; 强转 **C.float f = 45.0;** **45,0f** D.double d = 45.0; B
12.如果一个类的成员变量只能在所在类中使用, 则该成员变量必须使用 的修饰是C
A.public 任意 最广 B.protected 同一包 **C. private 同一类** D.static
13.下面关于 main 方法说明正确的是 B
A.public main(String args[ ]) **B.public static void main(String args[ ])**
C.private static void main(String args[ ]) D.void main()
14.关于抽象方法的说法正确的是 ( C)
A.可以有方法体 B.可以出现在非抽象类中 **C.是没有方法体的方法** D.抽象类中的方法都是抽象方法
15.Java application中的主类需包含 main 方法,以下哪项是 main 方法的 正确形参?( B)
A.String args **B.String args[]** C.Char arg D.StringBuffer args[]
16.以下关于继承的叙述正确的是(A )。
A.**在 Java中类只允许单一继承** B.在 Java中一个类只能实现一个接口
C.在 Java中一个类不能同时继承一个类和实现一个接口D.在 Java中接口只允许单一继承
17.若有定义: byte[] x={11,22,33,-66};
其中 0≤k≤3,则对 x 数组元素错误的引用是( C)
A.x[5-3] B.x[k]C.**x[k+5]** D.x[0]
18.以下哪个不是 Java的原始数据类型( B)A.int **B.Boolean** 包装类 C.float D.char
19.在 Java中,一个类可同时定义许多同名的方法,这些方法的形式参 数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对 象程序特性称为(C )A.隐藏 B.重写**C.重载**D.Java不支持此特性
20.以下有关构造方法的说法,正确的是: (A )
**A.一个类的构造方法可以有多个** B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。D.构造方法可以和类同名,也可以和类名不同
21.给出下面代码,关于该程序以下哪个说法是正确的?(C ) public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{
System.out.println(arr[0]); }
}
A.编译时将产生错误 B.编译时正确,运行时将产生错误 **C.输出零** D.输出空
22.下列类定义中哪些是合法的抽象类的定义? (C )
A.abstract Animal{abstract void growl();} B.class abstract Animal{abstract void growl();}
C **.abstract class Animal{abstract void growl();}**
D.abstract class Animal{abstract void growl(){System.out.println(“growl”);};}
23.设有下面两个赋值语句:
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue(); B A
A.a 是整数类型变量, b 是整数类对象。B.a是整数类对象, b 是整数 类型变量。
C.a 和 b 都是整数类对象并且值相等。 D.a 和 b 都是整数类型变量并 且值相等。
```java
Integer.parseInt() 是 Java 中用于将字符串转换为整数类型的方法。
public class ParseIntExample {
public static void main(String[] args) {
String numberStr = "123";
int number = Integer.parseInt(numberStr);
System.out.println("Parsed integer: " + number);
}
}
在上面的示例中,我们将字符串 "123" 解析为整数并将其存储在变量 number 中,然后将其打印出来。
请注意,如果传递给 parseInt() 的字符串无法解析为整数,将会抛出 NumberFormatException 异常。因此,在使用该方法时,最好将其包装在适当的异常处理代码块中,以确保程序能够处理异常情况。
```
24.为了使包 ch4在当前程序中可见,可以使用的语句是(A )。
**A.import ch4.*;** B.package ch4.*;C.ch4 import; D.ch4 package;
/*
import ch4.*; // 导入 ch4 包中的所有类
import ch4.ExampleClass; // 导入 ch4 包中的 ExampleClass 类
*/
# 12
25.如下哪个是 Java中的标识符 (A )**A.fieldname** B.super C.3number D.#number
```
A. fieldname:这是一个有效的标识符,可以用于命名变量等。
B. super:super 是 Java 关键字,用于引用父类的成员或构造方法,不能作为标识符使用。
C. 3number:标识符不能以数字开头,因此 3number 不是有效的标识符。
D. #number:标识符不能包含特殊字符,例如 #,因此 #number 也不是有效的标识符。
```
26.下面的代码段执行之后 count 的值是什么 ( D)
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System. out .println(count);
A.5.0 B.1.0 C.15.0 **D.16.0**
```java
for 循环是 Java 中用于重复执行特定代码块的一种控制结构。它通常用于遍历数组、集合或执行一定次数的循环操作。for 循环的语法如下:
java
Copy code
for (初始化语句; 循环条件; 循环迭代语句) {
// 循环体,需要重复执行的代码
}
```
27.为 AB类的一个无形式参数无返回值的方法 method 书写方法头,使 得使用类名 AB作为前缀就可以调用它,该方法头的形式为 (A)。
A **.static void method( )** B.public void method( ) C.final void method( ) D.abstract void method( )
28.下列程序段执行后的结果是 ( )。 **adg**
String s = new String("abcdefg");
for (int i=0; i<s.length(); i+=3){
System.out.print(s.charAt(i));
}
A.aceg B.ACEGC.abcdefg D.abcd
29.下面程序段执行后 b 的值是 ( B)。
Integer integ =new Integer(9);
boolean b = integ instanceof Object;
A.9.0 **B.true** C.1.0 D.0
//Integer integ = Integer.valueOf(9);。
30.关于 for 循环和 while 循环的说法哪个正确? (D )
A.while 循环先判断后执行, for 循环先执行后判断。
B.while 循环判断条件一般是程序结果, for 循环的判断条件一般
是非程序结果
C.两种循环任何时候都不可以替换
**D.两种循环结构中都必须有循环体,循环体不能为空**
```
A. 这个说法是不准确的。在 while 循环中,先判断条件,如果条件为真,则执行循环体;在 for 循环中,也是先判断条件,如果条件为真,则执行循环体。
B. 这个说法也是不准确的。while 循环和 for 循环的判断条件都可以是程序结果,也可以是非程序结果。
C. 这个说法是不准确的。在某些情况下,for 循环和 while 循环是可以互相替换的,取决于问题的要求和编码习惯。不过,并非所有情况都可以直接替换。
总结起来,正确的是选项 D,两种循环结构中都必须有循环体,循环体不能为空。
```
31.关于对象成员占用内存的说法哪个正确? (B)
A.同一个类的对象共用同一段内存
**B.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间**
C.对象的方法不占用内存
D.以上都不对
32.关于继承的说法正确的是: (B )
A.子类将继承父类所有的属性和方法。
**B.子类将继承父类的非私有属性和方法。**
C.子类只继承父类 public 方法和属性
D.子类只继承父类的方法,而不继承属性
33.覆盖与重载的关系是 (A )无正确答案
**A.覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中**
B.覆盖方法可以不同名,而重载方法必须同名
C.final 修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
A. 类:覆盖只有发生在父类与子类之间,而方法:重载可以发生在同一个类中。
这是覆盖(方法重写)和重载的关系。让我们解释一下每个术语的含义:
类 覆盖(方法重写):在子类中重新定义一个与父类中具有**相同名称、参数列表和返回类型**的方法,以改变方法的实现。覆盖是用于 **实现多态性** 的关键机制,它发生在父类和子类之间。
方法 重载(方法重载):在同一个类中,可以定义多个同名的方法,但参数列表必须不同。重载是指在同一个类中创建多个具有相同名称但不同参数的方法。
所以,选项 A 描述了覆盖和重载之间的关系,正确答案是 A。其他选项的描述不准确:
B. 覆盖方法和重载方法必须具有相同的名称,但覆盖方法必须具有相同的**参数列表和返回类型**,而**重载方法的参数列表必须不同**。
C. 使用 final 修饰的方法不能被覆盖(重写),但是可以被重载。覆盖要求子类方法能够改变父类方法的实现,而 final 方法不能被改变。
final 关键字可以用于修饰方法,这将具有一些特定的含义和行为。当一个方法被 final 修饰时,它表示该方法不能在子类中被覆盖(重写)。这意味着在**子类中无法改变这个方法的实现。**
具体来说:
使用 final 修饰的方法不能在子类中被覆盖,这是因为 final 关键字表示该方法的实现不能被改变,以确保方法的行为在继承层次中保持一致。
虽然子类无法覆盖 final 方法,但是子类仍然可以继承该方法。这意味着子类可以调用该方法,但不能改变其实现。
这个特性有助于确保某些核心行为在继承层次中不被改变。在某些情况下,将方法标记为 final 可以提高代码的可靠性和安全性,防止在子类中无意间修改重要的行为。
总之,final 修饰的方法虽然不能被子类覆盖,但是可以被继承,子类可以调用这些方法。
```java
class Parent {
final void printMessage() {
System.out.println("This is the Parent's message.");
}
}
class Child extends Parent {
/* 无法覆盖 final 方法
void printMessage() {
System.out.println("This is the Child's message.");
}*/
}
public class Main {
public static void main(String[] args) {
Parent parent = new Parent();
parent.printMessage(); // 调用 Parent 的方法
Child child = new Child();
child.printMessage(); // 调用继承的 Parent 的方法
}
}
```
D. 覆盖与重载是不同的概念,它们涉及不同的方法定义和调用方式。
***
34.不属于类及类成员的访问控制符的是 ( C)。
A.public 公开 B.private 类 **C.static** static 关键字用于表示静态成员,而不是控制访问权限。这些成员与类本身关联,而不是与对象实例关联。
D.protected 包
35.为 AB 类的一个无形式参数无返回值的方法 method 书写方法头,使 得使用类名 AB 作为前缀就可以调用它,该方法头的形式为 (A )。
**A.static void method( )** B.public void method( )C.final void method( ) D.abstract void method( )
36.关于选择结构下列哪个说法正确? (B )
A.if 语句和 else 语句必须成对出现**B.if 语句可以没有 else 语句对应**
C.switch 结构中每个 case语句中必须用 break 语句D.switch 结构中必须有 default 语句
37.while 循环和 do⋯while循环的区别是: (D )
A.没有区别,这两个结构任何情况下效果一样 B.while 循环比 do⋯while循环执行效率高
C.while 循环是先循环后判断,所以循环体至少被执行一次 **D.do⋯while循 环是先循环后判断,所以循环体至少被执行一次**
38.下列修饰符中与访问控制无关的是 (D )A.Private B.public C.protected **D.Final**
39.void 的含义: (A )A.方法没有返回值 B.方法体为空C.没有意义 D.定义方法时必须使用
```java
D. Final
final 是一个修饰符,用于表示不可改变的、最终的概念。它可以应用于类、方法和变量,但与访问控制无关。在访问控制方面,final 并不影响访问权限,而是指示某些东西是最终的,不能再被修改。
其他选项的解释:
A. private:表示成员(字段、方法)只能在类内部访问,与访问控制有关。
B. public:表示成员可以在任何地方访问,与访问控制有关。
C. protected:表示成员可以在同一个包内和子类中访问,与访问控制有关。
D. final: 与访问控制无关,表示最终、不可改变的概念。
```
40.return 语句: (C )
A.只能让方法返回数值 B.方法都必须含有 **C.方法中可以有多句 return** D.不能用来返回对象
```java
return 语句用于在方法中提前返回结果,并终止方法的执行。以下是关于选项的解释:
A. return 语句不仅可以用于返回数值,还可以用于返回任何类型的数据,包括 **数值、对象、布尔值** 等。
B. 方法不必一定包含 return 语句。例如,void 类型的方法不需要返回值,可以没有 return 语句。但对于有返回类型的方法,必须包含至少一条 return 语句,确保在所有情况下都有返回值。
C. 方法中可以有多句 return: 一个方法可以包含多个 return 语句,每个用于不同的条件分支。方法在执行到某个 return 语句时会立即返回,并不会执行后续的代码。
D. return 语句可以用来返回对象。您可以在方法中使用 return 语句返回引用类型(对象)的实例。
public class ReturnExample {
public static void main(String[] args) {
int result1 = calculateValue(5);
int result2 = calculateValue(10);
System.out.println("Result 1: " + result1);
System.out.println("Result 2: " + result2);
}
public static int calculateValue(int x) {
if (x < 5) {
return x * 2;
} else if (x < 10) {
return x + 3;
} else {
return x - 5;
}
}
}
```
41.下列说法哪个正确?C
A.不需要定义类,就能创建对象 B.对象中必须有属性和方法
**C.属性可以是简单变量,也可以是一个对象** D.属性必须是简单变量
42.关于方法 main()的说法哪个正确?( C)
A.方法 main()只能放在公共类中B.main()的头定义可以根据情况任意更改
**C.一个类中可以没有 main()方法
】**
D.所有对象的创建都必须放在 main()方法中
43.构造函数何时被调用? **( A)A.创建对象时** B.类定义时C.使用对象的方法时 D.使用对象的属性时
**构造函数用于在创建对象时进行初始化操作**
44.关于构造函数的说法哪个正确? (C )
A.一个类只能有一个构造函数 B.一个类可以有多个不同名的构造函数
**C.构造函数与类同名**D.构造函数必须自己定义,不能使用父类的构造函数
```java
构造函数的特点包括:
构造函数的名字必须与类的名字完全相同,包括大小写。
构造函数没有返回类型,甚至没有 void。它们的目的是初始化对象,而不是返回值。
如果你不显式地定义构造函数,Java 会提供一个默认的无参数构造函数,但如果你定义了任何构造函数,Java 将不会提供默认的构造函数。
如果你想要多个构造函数,可以定义多个,它们可以拥有不同的参数列表,这称为构造函数的重载。
public class MyClass {
private int value;
// 构造函数
public MyClass() {
value = 0; // 初始化 value
}
// 构造函数重载
public MyClass(int initialValue) {
value = initialValue; // 使用传入的参数初始化 value
}
}
```
45.this 和 super:B
A.都可以用在 main()方法中B.都是指一个内存地址
**C.不能用在 main()方法中**D.意义相同
//在 main() 方法中,不能使用 .this 和 super 关键字。
46.关于 super 的说法正确的是:B
A.是指当前对象的内存地址**B.是指当前对象的最近父类对象的内存地址**
C.是指当前对象最近的父类D.可以用在 main()方法中
47.关于接口哪个正确? ( A)
**A.实现一个接口必须实现接口的所有方法** 当一个类实现了一个接口时,它必须提供接口中定义的所有方法的具体实现,否则会导致编译错误。
B.一个类只能实现一个接口
C.接口间不能有继承关系D.接口和抽象类是同一回事
48.对于已经被定义过可能抛出异常的语句,在编程时: (A )
**A.必须使用 try/catch 语句处理异常,或用 throws 将其抛出**
B.如果程序错误,必须使用 try/catch 语句处理异常
C.可以置之不理
D.只能使用 try/catch 语句处理
49.给出下列代码片段:(D )
if(x>0){System.out.println("first");}
else if(x>-3){ System.out.println("second");}
else {System.out.println("third");}
请问 x 处于什么范围时将打印字符串“ second”?A.x>0 B.x>-3C.x<=-3 **D.x<=0 &&x>-3**
50.在 Java中,一个类可同时定义许多同名的方法, 这些方法的形式参数 的个数、类型
或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为:
(C )A.A、隐藏B.B、覆盖C.**C、重载**D.D、Java不支持此特性
51.如要抛出异常,应用下列哪种子句?(C )A.catch B.throw **C.throws** D.finally
/*
A. catch:用于捕获并处理异常。在 try 块中,可以使用 catch 块来捕获特定类型的异常,并执行相应的处理代码。
B. throw:用于在代码中手动抛出异常。通过 throw 关键字,可以抛出自定义的异常或者标准库中的异常类的实例。
C. throws:用于在方法签名中声明可能会抛出的异常。当一个方法可能会抛出某种异常时,可以使用 throws 关键字在方法声明中列出可能的异常类型。
D. finally:用于定义一个 finally 块,该块中的代码无论是否发生异常都会执行。通常在 try 块中的代码执行后,无论是否发生异常,finally 块中的代码都会被执行,用于执行清理操作等。
*/
52.在使用 interface 声明一个接口时,只可以使用 ____修饰符修饰该接口。 ( D)
A.private B.protectedC.private protected **D.public**
53.下列代码的输出结果是 : (A )
class Parent{
void printMe() {
System.out.println("parent");
}
};
class Child extends Parent {
void printMe() {
System.out.println("child");
}
void printall() {
super.printMe();
this.printMe();
printMe();
}
}
public class Test_this {
public static void main(String args[]) {
Child myC=new Child();
myC.printall();
}
}
**A.parent
child
child**
B.parent
child
parent
C.parent
child
D.编译错误
54.
注释的基本原则不包括: (D )A.注释应该增加代码的清晰度 B.注释要简洁
C.在写代码之前写注释 **D.尽量给每一条语句加注释**
55.下列不可作为java语言修饰符的是A. a1 B.1.0 **C. _1** D.11.0 C
56.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是**A.a1.java
//主类的名称与文件名保持一致** B.a1.classC.a1 D.都对 A
57.整型数据类型中,需要内存空间最少的是A.short B.long C.int **D. byte**
58.Java中 C
A.一个子类可以有多个父类,一个父类也可以有多个子类 B.一个子类可以有多个父类,但一个父类只可以有一个子类
**C.一个子类可以有一个父类,但一个父类可以有多个子类** D.上述说法都不对
59.在创建对象时必须 C
A.先声明对象,然后才能使用对象 B.先声明对象,为对象分配内存空间,然后才能使用对象
**C.先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象** D.上述说法都对
60.在调用方法时,若要使方法改变实参的值,可以 B
A.用基本数据类型作为参数 **B.用对象作为参数**C.A和B都对 D.A和B都不对
在 Java 中,如果你想让方法改变实参的值,可以使用对象作为参数(选项 B)。基本数据类型作为参数传递给方法时,传递的是值的副本,而不是引用,所以无法在方法内部修改实参的值。但是,通过传递对象作为参数,方法可以修改对象的内部状态,从而影响实参。
61.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?B
A.安全性 **B.多线程**C.跨平台 D.可移植
62.以下声明合法的是 B BD
A.default String s; **B.public final static native int w( ) ;**
C.abstract double d; D.abstract final double hyperbolicCosine( );
. public final static native int w();:这是一个合法的声明,它表示一个 public 访问修饰符的、final 和 static 修饰符的、native 方法,返回类型为 int。
***
D. abstract final double hyperbolicCosine();:这也是一个合法的声明,尽管有点不寻常。这表示一个抽象的、final 修饰符的、返回类型为 double 的方法。
选项 A 和 C 都是不合法的:
A. default String s;:Java 中不允许使用 default 关键字来声明变量。
C. abstract double d;:抽象方法通常是在接口中声明的,而不是在类中。在类中声明抽象方法必须使用 abstract 关键字并提供方法体。
所以,选项 B 和 D 是合法的声明。
63.关于以下程序段,正确的说法是( C )
1. String s1=”abc”+”def”;
2. String s2=new String(s1);
3. if(s1= =s2) //false new String(s1) 创建的一个新的字符串对象,内容与 s1 相同,但是它在堆内存中分配了新的内存空间。 s1 是通过字符串拼接得到的,因此它会指向字符串常量池中的 "abcdef"
4. System.out.println(“= = succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() succeeded”);
A.行4与行6都将执行 B.行4执行,行6不执行**C.行6执行,行4不执行** D.行4、行6都不执行
64. Java application中的主类需包含main方法,main方法的返回类型是什么?D
A.int B.float C.double **D.void**
65. 以下标识符中哪项是不合法的**A.final** B.$double C.hello D.BigMeaninglessName A
66. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为A.隐藏 B.覆盖**C.重载** D.Java不支持此特性 C
67. 以下关于构造函数的描述错误的是 A
**A.构造函数的返回类型只能是void型。** B.构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C.构造函数的主要作用是完成对类的对象的初始化工作。 D.一般在创建新对象时,系统会自动调用构造函数。
68. 下列哪些语句关于Java内存回收的说明是正确的? B
A.程序员必须创建一个线程来释放内存 B**内存回收程序负责释放无用内存**
C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象
69.下面为应用程序入口的main方法的是? A
**A.public static void main(String[] args)** B.public static int main(String[] args)
C.public void main(String[] args) D.public int main(String[] args)
70.public class Test {
public static void main() {
System.out.print("aaa");
}
}
下面说法正确的是? A
**A.程序无法通过编译,因为main方法声明方式不对** B.程序可以通过编译,但运行程序行,会提示没有找到main方法的异常
C.程序正常运行,并输出aaa D.程序可以编译,但无法运行,因为该文件没有public类
71.public class Test {
static void main(String[] args) {
System.out.print("aaa");
}
}
下面说法正确的是? A
**A.程序无法通过编译,因为main方法声明方式不对 找不到 main 方法** B.程序可以通过编译,但运行程序行,会提示"Main method not public"的异常
C.程序正常运行,并输出aaa D.程序可以编译,但无法运行,因为该文件没有public类
72.不可以用作变量名的首字符是? C
A.字母 B.下划线**C.数**字 D.美元符号
73.下面哪个语句会产生编译错误?**A.float a = 2.0** //浮点数f B.double b = 2.0 C.int c=2 D.long d=2 A
74.哪个语句不会出现编译错误?A.float f= 1.3 // 浮点数必须f。 B.char c = "a" 单引号 **C.byte b = 25** D.boolean d = null
75.哪个语句会出现编译错误? **A.byte b=1234** -127 128 B.long b=2C.int c=3 D.boolean d = true
76.哪个语句会出现编译错误?A.byte b=12 B.long b=2 **C.char b = 'bc'** D.boolean d = true
77.下面哪句能通过编译?C A.float a = 1 //int强转 B.float b =1.0 **C.char b = 'bc'** D.boolean d = null A
78.执行完下面的程序,哪个结论是正确的? 133
int a,b,c;
a = 1;
b = 2;
c = (a + b >3 ? a++ : ++ b)
A.a为2,b为3 **B.a为1,b为3** C.a为1,b为2 D.c的值为false
79.执行完下面的程序,输出什么? D B
int a = 3;
int b = 1;
if(a=b)
System.out.println("a=" + a);
A.a=1 B.a=3C.编译错误,没有输出 **D.正常运行,但没有输出**
80.下面哪个调用方法的结论是正确的? B
public void method(boolean a ,boolean b)
{
if(a)
System.out.println("A");
else if(a && b)
else{
if(!b)
System.out.println("notB");
else
System.out.println("ELSE");
}
}
A.输出"A&&B" B.**输出"notB"**
C.,输出"ELSE" D.输出"ELSE"
81.可以用作switch表达式的基本数据类型是? C
A.char,byte,short,float B.char,int,long,short
**C.char,short,int,byte** D.float,double,int,byte
82. C A **实际D**
public class Test {
public static void main(String[] args) {
byte i=1;
while(++i > 0)
;
System.out.print("Loop");
}
}
A.运行程序会进入死循环,永远不会退出 B.程序有编译错误
C.每运行一次程序,会输出多次"Loop" **D.每运行一次程序,会输出一次Loop,并退出**
```java
在给定的代码示例中,while 循环条件 ++i > 0 在每次循环迭代中将 i 增加 1,然后判断 i 是否大于 0。由于 byte 类型的范围是 -128 到 127,在循环执行过程中,i 的值会从 1 增加到 127,然后再自增 1,变为 -128。此时 -128 > 0 条件不满足,循环会退出。
因此,每次运行程序,会输出一次 "Loop",然后退出循环。我之前的解释是错误的,对此混淆感到抱歉。
```
83.关于下面程序,哪个选项是正确的?**C** A 报错
//会出现一个编译错误,因为 mb_isOdd 方法的返回类型是 int,而在 if 语句中需要一个布尔表达式。
public class Test {
public static int mb_isOdd(int x){
return (x % 2);
}
public static void main(String[] args) {
if(mb_isOdd(3)){
System.out.print("3 is odd.");
}else{
System.out.print("3 is even.");
}
}
}
A.程序输出"3 is odd" B.程序输出"3 is even"**C.程序无法通过编译** D.程序可以编译,但无法运行
84.下面中哪两个可以在A的子类中使用:(D )
class A {
protected int method1 (int a, int b) {
return 0;
}
}
A. public int method 1 (int a, int b) { return 0; }
B. private int method1 (int a, int b) { return 0; }
C. private int method1 (int a, long b) { return 0; }
A.AC B.AB
C.AD D.BC
85.下列关于修饰符混用的说法,错误的是(B ):D
A.abstract不能与final并列修饰同一个类
**B.abstract类中可以有private的成员**
抽象类的成员,包括字段和非抽象方法.在一个抽象类中,可以有 private 的成员,但是不能有 private 的抽象方法。
C.abstract方法必须在abstract类中D.static方法中能处理非static的属性
86.执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的(A):
**A.x[24]为0** B.x[24]未定义 C.x[25]为0 D.x[0]为空
87.编译运行以下程序后,关于输出结果的说明正确的是 (B ):
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9 :9));
}
}
A.输出结果为:value is 99.99 B. 输出结果为:value is 9 **C.输出结果为:value is 9.0** D.编译错误
88.class HasStatic{
private static int x=100;
public static void main(String args[ ]){
HasStatic hs1=new HasStatic( );
hs1.x++;
HasStatic hs2=new HasStatic( );
hs2.x++;
hs1=new HasStatic( );
hs1.x++;
HasStatic.x--;
System.out.println("x="+x);
}
} A B
在给定的代码示例中,静态变量 x 是在一个共享的内存地址上的。无论通过哪个实例或类来访问这个静态变量,都是在操作同一个内存地址上的值。这就是静态变量的特性,它在整个类的所有实例之间共享状态,而不是每个实例都有自己的副本。所以,无论通过哪个实例修改 x 的值,都会影响到所有其他实例和类对 x 的访问。
A. 程序通过编译,输出结果为:x=99 B. 程序通过编译,输出结果为:x=101
C.程序通过编译,输出结果为:x=103 **D.程序通过编译,输出结果为:x=102**
89.下列说法正确的是(C)
A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名
**C.constructor在一个对象被new时执行****造函数通常用于执行对象的初始化操作,为对象的成员变量设置初始值等。** D.一个class只能定义一个constructor
90.下列哪一种叙述是正确的( D)
A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无 **D.声明抽象方法不可写出大括号**
91.Java语言中,String类的IndexOf()方法返回的类型是?A.Int16 B.Int32**C.int** D.long C
92.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; A
**A. s[9] 为 null;** B.s[10] 为 “”;C. s[0] 为 未定义 D.s.length 为9
93.以下关于面向对象概念的描述中,不正确的一项是(B)。
A.在现实生活中,对象是指客观世界的实体 **B.程序中的对象就是现实生活中的对象**
C.在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(class) D.在程序中,对象是一组变量和相关方法的集合
94.属性的可见性没有哪个选项 C
A.公有的 B.私有的 **C.私有保护的** D.保护的
95.在字符串前面加上_____符号,则字符串中的转义字符将不被处理B A
A.@ **B.\ 。** C.# D.%
96.下列哪个语句关于内存回收的说明是正确的。 B
A.程序员必须创建一个线程来释放内存 **B.内存回收程序负责释放无用内存**
C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象
97.在下面程序的第6行补充上下列哪个方法,会导致在编译过程中发生错误? A B
1) class Super{
2) public float getNum(){
3) return 3.0f;
4) }
}
5) public class Sub extends Super{
6)
7) }
A **.public float getNum(){return 4.0f;} // 覆盖父类方法并返回不同的值**
**方法名称、参数列表和返回类型)必须与父类方法的方法签名完全一致。否则,编译器会报错**
B.public void getNum(){}
C.public void getNum(double d){} D.public double getNum(float d){ return 4.0f ;}
(重写)从父类继承的方法,以便子类可以根据自己的需求重新定义方法的行为。在覆盖过程中,子类必须保持方法签名(名称、参数列表和返回类型)与父类方法一致。通过覆盖,子类可以为继承的方法提供不同的实现,从而定制其行为,而不会影响父类或其他可能使用父类方法的类。
98.下面关于import, class和package的声明顺序哪个正确?( A)
**A.package, import, class** B.class, import, package
C.import, package, class D.package, class, import
99.下面哪个是正确的?(D )
A.String temp [] = new String {“a” “b” “c”}; B.String temp [] = {“a” “b” “c”}
C.String temp = {“a”, “b”, “c”} **D.String temp [] = {“a”, “b”, “c”}**
```java
使用new 创建一个包含字符串的数组
public class StringArrayExample {
public static void main(String[] args) {
// 创建一个包含字符串的数组
String[] stringArray = new String[4];
stringArray[0] = "apple";
stringArray[1] = "banana";
stringArray[2] = "orange";
stringArray[3] = "grape";
// 遍历并打印数组中的每个元素
for (String fruit : stringArray) {
System.out.println(fruit);
}
}
}
```
100.关于java.lang.String类,以下描述正确的一项是(A )
**A.String类是final类故不可以继承;** B.String类是final类故可以继承;
C.String类不是final类故不可以继承; D.String类不是final类故可以继承;
**String 类被设计为 final 类,这意味着它不能被继承,无法作为其他类的父类。**
101.接口是Java面向对象的实现机制之一,以下说法正确的是:(B )
A. Java支持多重继承,一个类可以实现多个接口; **B.Java只支持单重继承,一个类可以实现多个接口;**
C.Java只支持单重继承,一个类只可以实现一个接口; D.Java支持多重继承,但一个类只可以实现一个接口。
102.下列关于interface的说法正确的是:(D )
A.interface中可以有private方法 B.interface中可以有final方法
C.interface中可以有function实现 **D. interface可以继承其他interface**
```java
是关于 Java 接口的正确描述。让我解释其他选项的含义:
A. interface 中不能有 private 方法。在 Java 9 之后,接口中可以有 private 方法,但这些方法必须是静态的,而且只能在接口内部使用,不能被实现类实现或直接调用。
B. interface 中不能有 final 方法。**接口中的方法默认是抽象的,**不需要使用 abstract 或 final 关键字进行修饰。
C. interface 中可以有方法的声明,但实际的方法实现是在实现这个接口的类中完成的。Java 8 之后,接口中也可以有默认方法和静态方法的实现。
D. interface 可以继承其他 interface: Java 中的接口可以通过 extends 关键字继承其他接口。这使得接口之间可以建立继承关系,以便在子接口中扩展父接口的声明。
```
103.以下程序正确的输出是(A )
package test;
public class FatherClass {
public FatherClass() {
System.out.println(“FatherClass Create”);
}
}
package test;
import test.FatherClass;
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println(“ChildClass Create”);
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
**A.FatherClass Create
FatherClass Create
ChildClass Create**
B.FatherClass Create
ChildClass Create
FatherClass Create
C.ChildClass Create
ChildClass Create
FatherClass Create D.ChildClass Create
FatherClass Create
FatherClass Create
104.给定如下代码,下面哪个可以作为该类的构造函数 (B )
public class Test {
}
A.public void Test() {?} **B. public Test() {?}** C.public static Test() {?} D.public static void Test() {?}
105.提供Java存取数据库能力的包是(A)
A.java.sql B.java.awt C.java.lang D.java.swing
A. java.sql 是提供 Java 存取数据库能力的包。这个包包含了用于连接和操作数据库的类和接口,可以用于执行数据库查询、插入、更新等操作。
B. java.awt 是**用于创建图形用户界面(GUI**的抽象窗口工具包,与数据库操作无关。
C. java.lang 包含了 Java 语言的核心类,**如基本数据类型、异常类**等,也与数据库操作无关。
D. java.swing 是用于创建图形用户界面(GUI)的一种工具包,是 AWT(java.awt)的补充,也与数据库操作无关。