2023年11月29日发(作者:)
最全的Java笔试题库之选择题篇-总共234道【1~60】
1.下⾯中哪两个可以在A的⼦类中使⽤:( )
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; }
D. public short method1 (int a, int b) { return 0; }
解答:AC
主要考查⼦类重写⽗类的⽅法的原则
B,⼦类重写⽗类的⽅法,访问权限不能降低
C,属于重载
D,⼦类重写⽗类的⽅法 返回值类型要相同或是⽗类⽅法返回值类型的⼦类
ct method cannot be static. True or False ?
A True
B False
解答:A
抽象⽅法可以在⼦类中被重写,但是静态⽅法不能在⼦类中被重写,静态⽅法和静态属性与对象是⽆关的,只与类有关,这与abstract是⽭
盾的,所以abstract是不能被修饰为static,否则就失去了abstract的意义了
will be the output when you compile and execute the following program.
class Base
{
void test() {
n(“()”);
}
Base baseObj = (Base)anObj;
();
}
}
Select most appropriate answer.
A ()
()
B ()
D Runtime error. Cannot override a static method by an instance method
解答:C
静态⽅法不能在⼦类中被重写
will be the output when you compile and execute the following program.
public class Base{
private void test() {
n(6 + 6 + “(Result)”);
}
static public void main(String[] a) {
new Base().test();
}
}
Select most appropriate answer.
12: }
Select most appropriate answer.
A [ONE,?One?]
B [?One?,One]
C [ONE,One]
D [ONE,ONE]
E [?One?,?One?]
解答:E
通过String bStr = aStr;这句代码使bStr和aStr指向同⼀个地址空间,所以最后aStr和bStr的结果应该是⼀样,String类是定长字符串,调⽤⼀
个字符串的⽅法以后会形成⼀个新的字符串。
7.下⾯关于变量及其范围的陈述哪些是不正确的( ):
A.实例变量是类的成员变量
B.实例变量⽤关键字static声明
C.在⽅法中定义的局部变量在该⽅法被执⾏时创建
D.局部变量在使⽤前必须被初始化
解答:BC
由static修饰的变量称为类变量或是静态变量
⽅法加载的时候创建局部变量
8.下列关于修饰符混⽤的说法,错误的是( ):
A.abstract不能与final并列修饰同⼀个类
B.abstract类中可以有private的成员
C.abstract⽅法必须在abstract类中
D.static⽅法中能处理⾮static的属性
解答 D
:静态⽅法中不能引⽤⾮静态的成员
9.执⾏完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( ):
A、 x[24]为0
B、 x[24]未定义
C、 x[25]为0
D、 x[0]为空
解答:A
x属于引⽤类型,该引⽤类型的每⼀个成员是int类型,默认值为:0
10.编译运⾏以下程序后,关于输出结果的说明正确的是 ( ):
public class Conditional{
public static void main(String args[ ]){
int x=4;
n(“value is “+ ((x>4) ? 99.9 :9));
}
}
A、 输出结果为:value is 99.99
B、 输出结果为:value is 9
C、 输出结果为:value is 9.0
D、 编译错误
解答:C
三⽬运算符中:第⼆个表达式和第三个表达式中如果都为基本数据类型,整个表达式的运算结果
由容量⾼的决定。99.9是double类型 ⽽9是int类型,double容量⾼。
11.关于以下application的说明,正确的是( ):
1. class StaticStuff
2. {
3. static int x=10;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. n(“x=” + x);
8. }
9. static { x/=3;}
10. }
A、 4⾏与9⾏不能通过编译,因为缺少⽅法名和返回类型
B、 9⾏不能通过编译,因为只能有⼀个静态初始化器
C、 编译通过,执⾏结果为:x=5
D、编译通过,执⾏结果为:x=3
解答:C
⾃由块是类加载的时候就会被执⾏到的,⾃由块的执⾏顺序是按照在类中出现的先后顺序执⾏。
12.关于以下程序代码的说明正确的是( ):
1.class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic( );
9. hs1.x++;
10. HasStatic.x–;
11. n(“x=”+x);
12. }
13.}
A、5⾏不能通过编译,因为引⽤了私有静态变量
B、10⾏不能通过编译,因为x是私有静态变量
C、程序通过编译,输出结果为:x=103
D、程序通过编译,输出结果为:x=102
解答:D
静态变量是所有对象所共享的,所以上述代码中的⼏个对象操作是同⼀静态变量x, 静态变量可以通过类名调⽤。
13.下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但⽅法不能与class同名
C. constructor在⼀个对象被new时执⾏
D.⼀个class只能定义⼀个constructor
解答:C
构造⽅法的作⽤是在实例化对象的时候给数据成员进⾏初始化
A.类中如果没有显⽰的给出构造⽅法,系统会提供⼀个⽆参构造⽅法
B.构造⽅法与类同名,类中可以有和类名相同的⽅法
D.构造⽅法可以重载
14.下列哪种说法是正确的()
A.实例⽅法可直接调⽤超类的实例⽅法
B.实例⽅法可直接调⽤超类的类⽅法
C.实例⽅法可直接调⽤其他类的实例⽅法
D.实例⽅法可直接调⽤本类的类⽅法
解答:D
A. 实例⽅法不可直接调⽤超类的私有实例⽅法
B. 实例⽅法不可直接调⽤超类的私有的类⽅法
C.要看访问权限
15.下列哪⼀种叙述是正确的( )
A. abstract修饰符可修饰字段、⽅法和类
B. 抽象⽅法的body部分必须⽤⼀对⼤括号{ }包住
C. 声明抽象⽅法,⼤括号可有可⽆
D. 声明抽象⽅法不可写出⼤括号
解答:D
abstract可以修饰⽅法和类,不能修饰属性。抽象⽅法没有⽅法体,即没有⼤括号{}
16.下⾯代码的执⾏结果是?
import .*;
public class ShortSet{
public static void main(String args[])
{
Set
for(Short i=0;i<100;i++)
{
(i);
(i-1);
}
n(());
}
}
A.1
B.100
Exception
of the Above
解答:B
i是Short类型 i-1是int类型,其包装类为Integer,所以(i-1);不能移除Set集合中Short类型对象。
17.链表具有的特点是:(选择3项)
A、不必事先估计存储空间
B、可随机访问任⼀元素
C、插⼊删除不需要移动元素
D、所需空间与线性表长度成正⽐
解答:ACD
A.采⽤动态存储分配,不会造成内存浪费和溢出。
B. 不能随机访问,查找时要从头指针开始遍历
C. 插⼊、删除时,只要找到对应前驱结点,修改指针即可,⽆需移动元素
D. 需要⽤额外空间存储线性表的关系,存储密度⼩
语⾔中,String类的IndexOf()⽅法返回的类型是?
A、Int16 B、Int32 C、int D、long
解答:C
indexOf⽅法的声明为:public int indexOf(int ch)
在此对象表⽰的字符序列中第⼀次出现该字符的索引;如果未出现该字符,则返回 -1。
19.以下关于⾯向对象概念的描述中,不正确的⼀项是()。(选择1项)
A.在现实⽣活中,对象是指客观世界的实体
B.程序中的对象就是现实⽣活中的对象
C.在程序中,对象是通过⼀种抽象数据类型来描述的,这种抽象数据类型称为类(class)
D.在程序中,对象是⼀组变量和相关⽅法的集合
解答:B
20..执⾏下列代码后,哪个结论是正确的 String[] s=new String[10];
A. s[9] 为 null;
B. s[10] 为 “”;
C. s[0] 为 未定义
D. 为10
解答:AD
s是引⽤类型,s中的每⼀个成员都是引⽤类型,即String类型,String类型默认的值为null
s数组的长度为10。
21.属性的可见性有。(选择3项)
A.公有的
B.私有的
C.私有保护的
D.保护的
解答:ABD
属性的可见性有四种:公有的(public) 保护的(protected) 默认的 私有的(private)
22..在字符串前⾯加上_____符号,则字符串中的转义字符将不被处理。(选择1项)
A @
B
C #
D %
解答:B
23.下列代码哪⾏会出错: (选择1项)
1) public void modify() { 2) int I, j, k; 3) I = 100; 4) while ( I > 0 ) { 5) j = I * 2; 6) n (” The value of j is ” + j ); 7) k = k + 1; 8) I–; 9)
} 10) }
A. 4
B. 6
C. 7
D. 8
解答:C
k没有初始化就使⽤了
24.对记录序列{314,298,508,123,486,145}按从⼩到⼤的顺序进⾏插⼊排序,经过两趟排序后的结果为:(选择1项)
A {314,298,508,123,145,486}
B {298,314,508,123,486,145}
C {298,123,314,508,486,145}
D {123、298,314,508,486,145}
解答:B
插⼊排序算法:
public static void injectionSort(int[] number) {
// 第⼀个元素作为⼀部分,对后⾯的部分进⾏循环
for (int j = 1; j < ; j++) {
int tmp = number[j];
int i = j – 1;
while (tmp < number[i]) {
number[i + 1] = number[i];
i–;
if (i == -1)
break;
}
number[i + 1] = tmp;
}
}
25.栈是⼀种。(选择1项)
A 存取受限的线性结构
B 存取不受限的线性结构
C 存取受限的⾮线性结构
D 存取不受限的⾮线性结构
解答:A
栈(stack)在计算机科学中是限定仅在表尾进⾏插⼊或删除操作的线性表。
26.下列哪些语句关于内存回收的说明是正确的。(选择1项)
A程序员必须创建⼀个线程来释放内存
B内存回收程序负责释放⽆⽤内存
C内存回收程序允许程序员直接释放内存
D内存回收程序可以在指定的时间释放内存对象
解答:B
垃圾收集器在⼀个Java程序中的执⾏是⾃动的,不能强制执⾏,即使程序员能明确地判断出有⼀块内存已经⽆⽤了,是应该回收的,程序员
也不能强制垃圾收集器回收该内存块。程序员唯⼀能做的就是通过调⽤System. gc ⽅法来”建议”执⾏垃圾收集器,但其是否可以执⾏,什么
时候执⾏却都是不可知的。
method must be defined by a class implementing the le interface?
A. void run()
B. public void run()
C. public void start()
D. void run(int priority)
E. public void run(int priority)
F. public void start(int priority)
解答:B
实现Runnable接⼝,接⼝中有⼀个抽象⽅法run,实现类中实现该⽅法。
28 Given:
public static void main(String[] args) {
Object obj = new Object() {
public int hashCode() {
return 42;
}
};
30. Which two statements are true regarding the return values of property written hashCodeand equals methods from two instances of the
same class? (Choose two)
A. If the hashCode values are different, the objects might be equal.
B. If the hashCode values are the same, the object must be equal.
C. If the hashCode values are the same, the objects might be equal.
D. If the hashCode values are different, the objects must be unequal.
解答:CD
先通过 hashcode来判断某个对象是否存放某个桶⾥,但这个桶⾥可能有很多对象,那么我们就需要再通过 equals 来在这个桶⾥找到我们要
的对象。
31. What is the numerical range of a char?
A. 0 … 32767
B. 0 … 65535
C. –256 … 255
D. –32768 … 32767
E. Range is platform dependent.
}
What is the result?
A. NULL
B. Compilation fails.
C. The code runs with no output.
D. An exception is thrown at runtime.
解答:B
A. Existing from a synchronized block.
B. Calling the wait method on an object.
C. Calling notify method on an object.
D. Calling read method on an InputStream object.
E. Calling the SetPriority method on a Thread object.
解答:AD
stop⽅法.这个⽅法将终⽌所有未结束的⽅法,包括run⽅法。当⼀个线程停⽌时候,他会⽴即释
放 所有他锁住对象上的锁。这会导致对象处于不⼀致的状态。 当线程想终⽌另⼀个线程的时
候,它⽆法知道何时调⽤stop是安全的,何时会导致对象被破坏。所以这个⽅法被弃⽤了。你应
该中断⼀个线程⽽不是停⽌他。被中断的线程会在安全的时候停⽌。
36、 Which two statements are true regarding the creation of a default constructor? (Choose Two)
A. The default constructor initializes method variables.
B. The default constructor invokes the no-parameter constructor of the superclass.
C. The default constructor initializes the instance variables declared in the class.
D. If a class lacks a no-parameter constructor,, but has other constructors, the compiler creates a default constructor.
E. The compiler creates a default constructor only when there are no other constructors for the class.
解答:CE
构造⽅法的作⽤是实例化对象的时候给数据成员初始化,如果类中没有显⽰的提供构造⽅法,系统会提供默认的⽆参构造⽅法,如果有了其
它构造⽅法,默认的构造⽅法不再提供。
37、 Given:
public class OuterClass {
private double d1 = 1.0;
//insert code here
}
You need to insert an inner class declaration at line2. Which two inner class declarations are valid? (Choose Two)
A. static class InnerOne { public double methoda() {return d1;} }
B. static class InnerOne { static double methoda() {return d1;} }
C. private class InnerOne { public double methoda() {return d1;} }
B. void final methoda() {}
C. static void methoda() {}
D. static final void methoda() {}
E. final abstract void methoda() {}
解答:AD
C. The program prints “null”
D. The program prints “blue”
E. The program prints “green”
解答:D
采⽤String foo = “blue”定义⽅式定义的字符串放在字符串池中,通过String bar = foo;
他们指向了同⼀地址空间,就是同⼀个池⼦,当执⾏foo = “green”; foo指向新的地址空间。
41、Which code determines the int value foo closest to a double value bar?
A. int foo = (int) (bar);
B. int foo = (int) (bar);
C. int foo = (int) (bar);
D. int foo = (int) (bar);
E. int foo = (int) (bar);
F. int foo = (int) (bar);
解答:DEF
A B两个选项⽅法是⽤错误,都是两个参数。
abs⽅法是取bar的绝对值,
ceil⽅法返回最⼩的(最接近负⽆穷⼤)double 值,该值⼤于等于参数,并等于某个整数。
floor⽅法返回最⼤的(最接近正⽆穷⼤)double 值,该值⼩于等于参数,并等于某个整数。
round⽅法 返回最接近参数的 long。
42、 Exhibit:
e foo;
;
e class MyVector extends Vector {
The file is shown in the exhibit. What is the result?
A. Compilation will succeed.
B. Compilation will fail at line 3.
C. Compilation will fail at line 6.
D. Compilation will fail at line 9.
E. Compilation will fail at line 14.
解答:B
类MyVector不能是私有的
F. Volatile int k = 4;
G. Transient int k = 4;
H. protected int k = 4;
解答:BDE
static:修饰的静态变量
final 修饰的是常量
abstract不能修饰变量
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。
⽽且,当成员变量发⽣变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,
两个不同的线程总是看到某个成员变量的同⼀个值。
Transient:对不需序列化的类的域使⽤transient关键字,以减少序列化的数据量。
int k=4相当于public static final int k=4; 在接⼝中可以不写static final
45、 Given:
public class foo {
static String s;
public static void main (String[]args) {
n (“s=” + s);
}
}
What is the result?
A. The code compiles and “s=” is printed.
B. The code compiles and “s=null” is printed.
public class ExceptionTest {
class TestException extends Exception {}
public void runTest () throws TestException {}
public void test () /* Point X*/ {
runTest ();
}
}
At point X on line 4, which code can be added to make the code compile?
C. Value =5
D. Value =6
E. Value =7
F. Value =8
解答:F
由于case块没有break语句,那么从case 4:向下的代码都会执⾏。
49、Which four types of objects can be thrown using the throw statement? (Choose Four)
A. Error
B. Event
C. Object
D. Exception
E. Throwable
F. RuntimeException
解答:ADEF
能够抛出的对象类型要是Throwable 或是Throwable的⼦类
50.在下⾯程序的第6⾏补充上下列哪个⽅法,会导致在编译过程中发⽣错误?
1) class Super{
2) public float getNum(){
3) return 3.0f;
4) }
}
5) pubhc class Sub extends Super{
6)
7) }
A,public float getNum(){retun 4.0f;}
void getNum(){}
void getNum(double d){}
解答:A
52.下⾯哪个是正确的?( )
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”}
解答:D
53.关于类,以下描述正确的⼀项是( )
A. String类是final类故不可以继承;
B. String类是final类故可以继承;
C. String类不是final类故不可以继承;
D. String类不是final类故可以继承; 解答:A
String类是final的,在java中final修饰类的不能被继承
54.关于实例⽅法和类⽅法,以下描述正确的是:( )
A. 实例⽅法只能访问实例变量
B. 类⽅法既可以访问类变量,也可以访问实例变量
C. 类⽅法只能通过类名来调⽤
D. 实例⽅法只能通过对象来调⽤
解答:D
A 实例⽅法可以访问类变量
B类⽅法只能访问类变量
C类⽅法可以通过对象调⽤
55.接⼝是Java⾯向对象的实现机制之⼀,以下说法正确的是:( )
A. Java⽀持多重继承,⼀个类可以实现多个接⼝;
B. Java只⽀持单重继承,⼀个类可以实现多个接⼝;
C. Java只⽀持单重继承,⼀个类只可以实现⼀个接⼝;
D. Java⽀持多重继承,但⼀个类只可以实现⼀个接⼝。
解答:B
Java⽀持单重继承,⼀个类只能继承⾃另外的⼀个类,但是⼀个类可以实现多个接⼝。
56.下列关于interface的说法正确的是:( )
A. interface中可以有private⽅法
B. interface中可以有final⽅法
C. interface中可以有function实现
D. interface可以继承其他interface
解答:D
A.接⼝中不可以有private的⽅法
B.接⼝中不可以有final的⽅法 接⼝中的⽅法默认是 public abstract的
C.接⼝中的⽅法不可以有实现
57.已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有⼀个成员变量x被声明为, protected控制⽅式 。C类
也位于packageA包,且继承了B类 。则以下说话正确的是( )
A. A类的实例不能访问到B类的实例
B. A类的实例能够访问到B类⼀个实例的x成员
C. C类的实例可以访问到B类⼀个实例的x成员
D. C类的实例不能访问到B类的实例
解答:C
不同包⼦类的关系, 可以访问到⽗类B的protected成员
58.以下程序正确的输出是( )
package test;
public class FatherClass {
public FatherClass() {
n(“FatherClass Create”);
}
}
package test;
import Class;
public class ChildClass extends FatherClass {
public ChildClass() {
n(“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
解答:A
在⼦类构造⽅法的开始默认情况下有⼀句super();来调⽤⽗类的构造⽅法
59.给定如下代码,下⾯哪个可以作为该类的构造函数 ( )
public class Test {
}
A. public void Test() {?}
B. public Test() {?}
C. public static Test() {?}
D. public static void Test() {?}
解答:B


发布评论