JAVA复习题.docx
《JAVA复习题.docx》由会员分享,可在线阅读,更多相关《JAVA复习题.docx(117页珍藏版)》请在冰豆网上搜索。
JAVA复习题
注意Java中是大小写敏感的,请注意大小写的使用!
!
一、判断题:
1.Java语言不含有指针与析构方法,所以Java程序只有在结束运行时才能释放所占用的内存。
(╳)
2.Java语言是不区分大小写的。
(╳)
3.Java程序都应当含有main方法,因为它是所有Java程序执行的入口。
(╳)
4.作为Java程序入口的main方法,其声明可以写成“publicstaticvoidmain(Strings[])”,也可以写成”publicstaticvoidmain(String[]s)。
(√)
5.在Java语言中,每个ASCII码英文字符占用8个二进制位,而每个中文汉字字符则占用16个二进制位。
(╳)
6.判断该语句是否正确:
b=9a+2;(╳)
7.在Java语言中,每个ASCII码英文字符占用8个二进制位,而每个中文汉字字符则占用16个二进制位。
(╳)
8.Java语言为所有的Java程序自动导入包“java.lang”,因此Java程序可以直接用“java.lang”中的类和接口。
位于类继承关系层次结构树的根部的类Object就是包“java.lang”中的一个类。
(√)
9.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。
(╳)
10.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void。
(╳)
11.任何类都必须显式地定义该类的构造方法,以便对类的成员进行各种初始化操作。
(╳)
12.Java语言对内存的释放是采用垃圾自动回收机制。
Java虚拟机自动判断并收集“垃圾”,但一般不会立即释放它们的存储空间。
(√)
13.Java系统提供了方法“System.gc()”来强制立即回收“垃圾”,即当调用该方法时,系统会立即回收“垃圾”。
(╳)
14.程序可以借助于finalize方法来精确记录在程序执行过程中内存资源的释放情况。
(╳)
15.如果在定义一个类的时候没有用到关键字extends,则这个类没有直接父类。
(╳)
16.Java语言规定:
任何一个子类的构造方法都必须调用其父类的构造方法(包括隐式调用),并且调用父类构造方法的语句必须是子类构造方法的第一条语句。
(√)
17.如果一个类不是内部类,则它的访问属性不能是private或者protected。
(√)
18.抽象方法不能含有方法体,并且必须在抽象类中。
(√)
19.抽象类是不能实例化的。
抽象类的实例化,应当通过其不具有抽象属性的子类来创建。
(√)
20.因为标准输入流(System.in)并不是真正的文件,所以标准输入流不像文件那样有明显的输入流结束标志,即如果程序不做特殊处理,则程序永远无法得到标准输入流的结束标志。
(╳)
21.在Java中,类java.io.File虽然不直接处理文件内容,但可以通过类java.io.File达到改变当前路径的目的。
(╳)
22.采用事件适配器比采用事件监听器的执行效率要高,因为采用事件适配器可以只处理所需处理的事件。
(╳)
23.编写小应用程序实际上就算要实现类java.applet.Applet的子类,该子类必须是public类型,否则将在运行时出现异常。
(√)
24.类java.applet.Applet的方法getCodeBase()返回小应用程序所在的URL地址,方法getDocumentBase()返回的是小应用程序所作的HTML文件的URL地址。
(√)
25.在HTML文件中,关键字CODEBASE可以用来设置小应用程序所作的路径,CODEBASE的属性值既可以是一个URL地址,也可以是相对于当前HTML文件的相对路径。
(√)
26.小应用程序允许在网页中给小应用程序传递参数。
在网页中可以设置多个参数,其格式为。
(╳)
27.要启动一个线程要调用java.lang.Thread的方法start。
在运行完方法start之后,该线程就处于运行状态。
(╳)
28.当执行到同步语句“synchronized(引用类型表达式)”的语句块时,引用类型表达式所指向的对象就会被锁住,不允许其他线程对其进行访问,即当前的线程独占该对象。
(√)
29.方法notifyAll和notify都是类java.lang.Object的成员方法。
调用notifyAll会激活所有处于等待态的线程。
调用notify最多只能激活一个处于等待态的线程。
(√)
30.对于数组int[][]t={{1,2,3},{4,5,6}}来说,t.length等于3,t[0].length等于2。
(╳)
31.由于Java源程序文件名与类名存在同名的约束关系,所以一个Java源程序文件最多只会包含一个类。
(╳)
二、选择题
1.设HelloWorld.java的文件内容如下:
publicclassHelloWorld
{
publicstaticvoidMain(Stringargs[])
{
System.out.println(“HelloWorld”);
}
}//类HelloWorld结束
下面说法正确的是()。
(D)
A.在控制台命令提示符下先运行命令“javacHelloWorld.java”,然后运行命令“javaHelloWorld”,结果输出一行字符串“HelloWorld”。
B.在控制台命令提示符下先运行命令“javacHelloWorld”,然后运行命令“javaHelloWorld.class”,结果输出一行字符串“HelloWorld”。
C.在控制台命令提示符下先运行命令“javacHelloWorld.java”,然后运行命令“javaHelloWorld.class”,结果输出一行字符串“HelloWorld”。
D.以上答案都不对。
2.在一个合法的Java源程序文件中定义了3个类,则其中属性为public的类可能有几个()。
(A)
A.1B.2C.3D.4
3.下面哪些选项不可以用作变量名的首字符()?
(C)
A.字母B.下划线(_)C.数字D.美元符号($)
4.下面哪个单词是Java语言的关键字?
()(B)
A.sizeofB.AbstractC.nullD.String
5.下面哪些单词是Java语言的关键字?
()(B)
A.ForB.forC.FORD.True
6.下面哪些单词是Java语言的关键字?
()(D)
A.nullB.falseC.lengthD.instanceof
7.下面哪个语句不会产生编译警告或错误?
()(C)
A.floatf=1.3;B.charc=”a”;C.byteb=25;D.booleand=null;
8.下面哪个赋值语句会产生编译错误?
()(A)
A.floata=2.0;B.doubleb=2.0C.intc=2;D.longd=2;
9.下面哪条语句不可以通过编译?
()(B)
A.floata=1;B.floatb=1.0C.floatc=2e1f;D.floatd=0x1234;
10.设各个变量的定义如下,哪个选项的值为false?
()(D)
inti=1;
floatf=1.0f;
doubled=1.0;
booleanb=true;
A.i==f;B.i==d;C.f==d;D.2.1
11.下面程序片段输出的是()。
(C)
inta=3;
intb=1;
if(a=b)
System.out.println(“a=”+a);
A.a=1B.a=3C.编译错误,没有输出D.正常运行,但没有输出
12.执行完下面程序片段后,哪个结论是正确的?
()(B)
inta,b,c;
a=1;
b=2;
c=(a+b>3?
a++:
++b);
A.a的值是2,b的值是3B.a的值是1,b的值是3
C.a的值是1,b的值是2D.c的值是false
13.对于下面的源程序,哪些选项的结论是正确的?
()(C)
classtest
{
publicstaticintmb_isodd(intx)
{
return(x%2);
}
publicstaticvoidmain(String[]args)
{
if(mb_isodd(3))
System.out.println("3isodd.");
else
System.out.println("3iseven.");
}
}
A.程序输出“3isodd.”B.程序输出“3iseven.”
C.程序无法通过编译D.程序可以通过编译,但无法正常运行
14.对于下面的程序,哪个选项的结论是正确的?
()(B)
classtest
{
publicstaticvoidmain(String[]args)
{
intx=2;
inty=2;
if(++x==y++)
System.out.println("x=y");
else
System.out.println("x!
=y");
}
}
A.程序输出“x=y”B.程序输出“x!
=y”
C.程序无法通过编译D.程序可以通过编译,但无法正常运行
15.针对下面的程序,哪些结论是正确的()?
(D)
inti=0,j=9;
do
{
if(i++>--j)
break;
}while(i<4);
System.out.println("i="+i+"andj="+j);
A.i=4andj=4B.i=5andj=5C.i=5andj=4D.i=4andj=5
16.关于下面的程序,哪个结论是正确的?
()(C)
publicclasstest
{
publictest()
{
System.out.println("2");
}
publicstaticvoidmain(String[]args)
{
testt=newtest();
t.test();
System.out.println("1");
}
}
A.程序可以通过编译并正常运行,结果输出“21”
B.程序可以通过编译并正常运行,结果输出“221”
C.程序无法通过编译
D.程序可以通过编译,但无法正常运行
17.关于下面的程序,哪个结论是正确的?
()(A)
classtest_subextendstest
{
}
publicclasstest
{
test(inti)
{
System.out.println(i);
}
publicstaticvoidmain(String[]args)
{
test_subt=newtest_sub();
}
}
A.不能通过编译,因为类test没有定义无参数的构造方法。
B.不能通过编译,因为类test_sub没有定义无参数的构造方法。
C.不能通过编译,因为没有实现test_sub(inti)构造方法。
D.可以成功通过编译。
18.关于Java的垃圾回收机制,下面的结论正确的是()。
(C)
A.程序可以任意指定释放内存的时间。
B.正确的程序写法是能依赖于垃圾回收的时间或者顺序。
C.程序可以明确地标识某个局部变量的引用不再被使用。
D.程序可以显式地立即释放对象占有的内存。
19.下面哪个方法定义置于第8行将会导致编译错误?
()(B)
(1).classSuper
(2).{
(3).publicfloatgetNum(){return3.0f;}
(4).}
(5).publicclassSubextendsSuper
(6).{
(7).
(8).}
A.publicfloatgetNum(){return4.0f;}
B.publicvoidgetNum(){}
C.publicvoidgetNum(doubled){}
D.publicdoublegetNum(floatd){return4.0d;}
20.关于下面的程序,哪个结论是正确的?
()(A)
publicclasstest
{
staticlongm_index;
staticintm_age;
publicstaticvoidmb_setData(longn)
{
m_index=n;
}
publicstaticvoidmain(String[]args)
{
mb_setData(98);
System.out.println("Index="+m_index+";Age="+m_age);
}
}
A.程序可以通过编译并正常运行,结果输出“Index=98;Age=0”。
B.程序可以通过编译并正常运行,结果输出“Index=0;Age=98”。
C.程序可以通过编译并正常运行,结果输出“Index=0;Age=0”。
D.程序无法通过编译。
21.下面程序的输出是()。
(C)
classJ_Class
{
staticintm_data=0;
}
classJ_Test
{
publicstaticvoidmain(String[]args)
{
J_Classa=newJ_Class();
J_Classb=newJ_Class();
a.m_data=1;
b.m_data=2;
System.out.println(a.m_data);
}
}
A.0B.1C.2D.程序无法通过编译。
22.要求设计一个类,它拥有一个特殊的数据成员,该数据成员必须能够被这个类的子类访问到,但不能被不在同一个包内的其他类访问到。
下面哪个设计可以满足该要求?
()(C)
A.该数据成员的封装属性设置为public。
B.该数据成员的封装属性设置为private。
C.该数据成员的封装属性设置为protected。
D.该数据成员不需要特殊的封装属性。
23.假设在Java源程序文件“MyClass.java”中只含有一个类,而且这个类必须能够被位于一个庞大的软件系统中的所有Java类访问到,下面哪个声明有可能是符合要求的声明?
()(D)
A.privateclassMyClassextendsObject
B.publicclassmyclassextendsObject
C.publicclassMyClassextendslang
D.publicclassMyClassextendsObject
24.下面的程序代码会产生编译错误,应当如何修正?
()(C)
publicclasstest
{
privateintm_data=3;
publicstaticvoidmain(Stringargs[])
{
System.out.println(m_data);
}
}
A.将“privateintm_data”改为“protectedintm_data”。
B.将“privateintm_data”改为“publicintm_data”。
C.将“privateintm_data”改为“staticintm_data”。
D.将“privateintm_data”改为“intm_data”。
25.关于下面的程序,哪个结论是正确的?
()(A)
publicclasstest
{
publicstaticvoidmain(Stringargs[])
{
intsum=0;
for(inti=0;i<10;i++)
sum+=i;
System.out.println("Sum(0.."+i+")="+sum);
}
}
A.程序无法通过编译。
B.程序可以通过编译,但无法正常运行。
C.运行程序可以输出“Sum(0..10)=45”。
D.运行程序可以输出“Sum(0..9)=45”。
26.下面哪个语句会发生变异错误?
()(C)
A.int[]a;B.int[]b=newint[10];C.intc[]=newint[];D.intd[]=null;
27.关于下面程序,哪个结论是正确的?
()(D)
classtest
{
publicstaticvoidmain(Stringars[])
{
int[]a=newint[5];
booleanb[]=newboolean[5];
System.out.println(a[1]+b[2]);
}
}
A.程序可以通过编译并正常运行,结果输出“0false”
B.程序可以通过编译并正常运行,结果输出“1true”
C.程序可以通过编译并正常运行,结果输出“0”
D.程序无法通过编译
28.下面哪个语句不含语法错误?
()(A)
A.Stringa[]={"1","2","3","4",null};
B.Stringb[]={"1","2","3","4",'c'};
C.Stringc[]=newString[5];
D.Stringd[]=newString[5]{"1","2","3","4","5"};
29.下面哪个语句定义了5行5列的数组?
()(C)
A.inta[5][5]=newint[5][5];
B.int[5][5]b=newint[5][5];
C.int[]c[]=newint[5][5];
D.intd[][]=newint[25];
30.对于数组“int[]a”,下面哪些语句可以输出数组a的元素个数?
()(D)
A.System.out.println(a.size);
B.System.out.println(a.size());
C.System.out.println(a.length());
D.System.out.println(a.length);
31.关于下面的代码,哪个结论是正确的?
()(B)
Stringa="java";
Stringb="java";
Stringx="ja";
Stringy="va";
Stringc=x+y;
A.a和b指向同一个实例对象,a和c指向同一个实例对象。
B.a和b指向同一个实例对象,a和c不指向同一个实例对象。
C.a和b不指向同一个实例对象,a和c指向同一个实例对象。
D.a和b不指向同一个实例对象,a和c不指向同一个实例对象。
32.下面哪个类最适合处理大数据量的文本文件?
()(C)
A.java.io.FileInputStreamB.java.io.FileReader
C.java.io.BufferedReaderD.java.io.RandomAccessFile
33.关于下面程序,哪个结论是正确的?
已知该源程序的文件名是“J_Test.java”,其所在路径和当前路径都是“C:
\example”。
()(C)
importjava.io.File;
classJ_Test
{
publicstaticvoidmain(Stringars[])
{
Filef=newFile("J_Test.class");
System.out.println(f.getAbsolutePath());
}
}
A.程序可以通过编译并正常运行,结果输出“J_Test.class”
B.程序可以通过编译并正常运行,结果输出“C:
\example”
C.程序可以通过编译并正常运行,结果输出“C:
\example\J_Test.class”
D.程序无法通过编译或无法正常运行
34.下面哪个方法不是小应用程序类Applet的基本方法?
()(D)
A.start()B.stop()C.init()D.kill()
35.关于小应用程序执行过程的生命周期,下面哪个结论正确?
()(D)
A.当小应用程序从运行态进入停止态时,首先要调用的成员方法是pause()。
B.当关闭正处于运行态的小应用程序时,首先要调用的成员方法是destroy()。
C.当小应用程序从停止态进入运行态时,首先要调用的方法是paint()。
D.当关闭正处于停止态的小应用程序时,首先要调用的成员方法是destroy()。
36.已知小应用程序的源程序文件名是“J_Test.java”,则下面哪个语句可以用在HTML文件中用来加载该小应用程序。
()(A)
A.
B.
C.
D.
37.实现了一个继承接口java.lang.Runnable的类需要实现如下的哪个方法?
()(B)
A.startB.runC.waitD.paint
38.已经声明了类“publicclassJ_TestimplementsRunnable”,下面哪个语句启动该类型的线程?
()(A)
A.Threadt=newThread(newJ_Test());t.start();
B.J_Testt=newJ_Test();t.start();
C.J_Testt=newJ_Test();t.run();
D.newJ_Test.start();
39.已经声明了类“publicclassJ_TestextendsThread”,下面哪个语句启动该类型的线程?
()(B)
A.newJ_Test.run();
B.J_Testt=newJ_Test();t.start();
C.