JAVA考试.docx
《JAVA考试.docx》由会员分享,可在线阅读,更多相关《JAVA考试.docx(18页珍藏版)》请在冰豆网上搜索。
JAVA考试
1.下面哪不是Java中容器?
A.ScrollPaneB、CanvasC.AppletD.ialog
2.下面哪个方法与applet的显示无关?
A、draw()B、update()C、repaint()D、paint()
3.以下哪个方法用于定义线程的执行体?
A、start()B、init()C、run()D、synchronized()
4.当Frame改大小时,放在其中的按钮大小不变,则使用如下哪种布局方式?
A、 FlowLayout
5.有如下代码段:
1)2){if(unsafe()){//dosomething…}3)elseif(safe()){//dotheother…}4)}其中,方法unsafe()将抛出IOException,请问可将以下哪项填入第1行?
D
D、publicvoidmethodName()throwsIOException
6.以下哪个关键字可以用来对对象加互斥锁?
B、synchronized
7.编译并运行以下程序,以下描述哪个选项是正确的1.classA{2.protectedbooleanequals(){3.returnsuper.equals();}4.}C、行2出错,不能成功编译
8.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
D、public
9.Java的字符类采用的是Unicode编码方案,每个Unicode码占(B)个比特位。
B、16
10.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
D、importjava.awt.event.*;
11.以下关于构造函数的描述错误的是(A)。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
12.有程序如下,关于程序的描述哪个是正确的?
(C)
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{ System.out.println(arr[1]); }}C、正确,输出0
13.有语句Strings=”helloworld”;,以下操作哪个是不合法的?
(B)B、s>>>=3;
14.给出如下代码:
class Test{private int m;
public static void fun() {// some code...}}如何使成员变量m 被函数fun()直接访问?
(C)C、将private int m 改为 static int m
15.Javaapplication中的主类需包含main方法,main方法的返回类型是什么?
D、void
16.有以下方法的定义,请选择该方法的返回类型(D)。
D、double
ReturnTypemethod(bytex,doubley)
{return(short)x/y*2;}
17.下列哪些语句关于Java内存回收的说明是正确的?
B、内存回收程序负责释放无用内存
18.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
D、importjava.awt.event.*;
19.容器Panel和Applet缺省使用的布局编辑策略是(B)B、FlowLayout
20.设有下面两个赋值语句:
a=Integer.parseInt(“123”);b=Integer.valueOf(“123”).intValue();
下述说法正确的是D、a和b都是整数类型变量并且值相等。
21.编译并运行以下程序,以下描述哪个选项是正确的(C)。
1.classA{2.protectedStringtoString(){3.returnsuper.toString();}
4.}C、行2出错,不能成功编译
22.有以下程序片段,下列哪个选项不能插入到行1。
D、publicclassMyClass{}
1.2.publicclassInteresting{3.//dosth4.}
23.以下哪个不是Java的关键字?
(A)A、TRUEB、constC、superD、void
24.关于以下application的说明,正确的是(C)。
1.classStaticStuff2.{3.staticintx;4.static{x+=5;}
5.publicstaticvoidmain(Stringargs[])6{
7.System.out.println(“x=”+x);8.}9.static{x/=5;}
10.}C、编译通过,执行结果为:
x=1
25.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?
B、File
26.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
D、public
27.有程序片段如下,以下哪个表示式的结果为true?
B、s.equals(t)
Floats=newFloat(0.1f);Floatt=newFloat(0.1f);Doubleu=newDouble(0.1);
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
B.class
2、以下哪一个不是JAVA的标准数据流(D)。
A.标准输出数据流B.标准输入数据流C.标准错误数据流D.标准运算数据流
3、.class和.java文件的含义分别是:
A.Java目标码文件和源文件;
4、面板的边框有哪几种?
(D)D.面板缺省没有边框,但可以设置单线、斜坡、不光滑等多种线形,可以设置边框的颜色、宽度等,还可以设置边框与内容之间的举例等;
5、以下几个命名方法,不符合Java命名规范的是:
D.成员函数的名称:
GetName;
6、在下面的代码中,break语句的作用是:
C.退出整个循环;
for(inti=0;i<10;i++)if(aData[i]==TargetData){FoundID=i;break;}
7、以下项中,不属于成员变量的定义部分的是:
D.变量的初始化方式;
8、以下关于异常捕获的原则中,错误的是
DException类必须出现,而且必须作为catch块中第一个匹配的类。
9、Java的一个重要特点是结构中立性,这种结构中立性表现在(C)CJava源程序编译成一种结构中立的目标文件格式,再有Java平台在不同的硬件和操作系统下运行。
10、在Swing中,一下列出的面板的作用中,错误的是(C).C接收事件;
11、.在Swing中,如何设置组件的边框?
C通过组件的setBorder函数设置;
12、以下关于框架和其他窗口之间的关系中,错误的是D内部框架也是顶级容器组件
13、创建并显示框架的步骤中,错误的是(A)A将框架对象与入口类相连接
14、如何在框架中显示标题?
C调用框架对象的setTitle函数显示
15、下列关于Java语言的特点,描述错误的是C.Java是面向过程的编程语言
16、下概念中不属于面向对方法的是A对象、消息B继承、多态C类、封装D.过程调用
17、结构化程序设计所规定的三种基本控制结构是C.顺序、选择、循环
18、以下声明合法的是B.publicfinalstaticnativeintw()
19、Applet可以做下列哪些操作?
C.在客户端装载程序库
20、下列关于for循和while循的说法中哪是正确?
C两种循任何时候都可替换
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A.3
3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画图操作。
D.paint()
4、不允许作为类及类成员的访问控制符的是(C.static
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A.staticvoidmethod()
1、Java中复合数据类型不包括(D)D.指针
2、请从四个选项中选择答案,下列代码的执行结果是:
(C)C.45.0
PublicclassTest{Publicstaticvoidmain(Stringargs[]){
Floatt=9.0f;Intq=6;System.out.println((t++)*(--q));}}
3、下列关于修饰符混用的说法,错误的是(D)D.static方法中能处理非static的属性
4、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)
A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问
5、x=2,y=3,z=4,则表达式z*=y++*--x的值是(12)
6、以下赋值语句正确的是(D)D.longL1=0xAC8L
7、Java不支持多重继承,但我们可以通过(B)实现.B.接口
8.已知类person是类student的父类,以下数组定义和赋值哪些是正确的(A)
A.personp[]=newperson[3];p[1]=newstudent();
9编译MyClass.java之后,得到了三个字节码文件:
MyClass.class,MyClasslittle$.classMyClass$1.class.这表明(C)
C.MyClass类中有两个内部类:
一个是命名的little,另一个是匿名的1
10、main方法是javaApplication程序执行的入口点,关于main方法的方法头以下(B)是合法的。
B.publicstaticvoidmain(Stringarg[])
11、当编译和运行下面的代码会出现什么情况?
(A)
Importjava.io.*;ClassExBase{Abstractpublicvoidmartley()}
PublicclassMyExextendsExBase{Publicstaticvoidmain(Stringargv[]){
DataInputStreamfi=newDataInputStream(System.in);Try{Fi.readChar();}
Catch(IOEceptione){System.exit(0);}Finally{System.out.println(“Doingfinally”);}}}A.编译错误
12、当编译和运行下面的代码会出现什么情况?
(D)
PublicclassSandys{Privateintcourt;Publicstaticvoidmain(Stringargv[]){
Sandyss=newSandys(99);System.out.println(s.court);}
Sandys(intballeount){court=ballcount;}}D可以编译和运行,输出结果为99
13、给出下面的代码:
ClassBase{}ClassAggextendsBase{PublicStringgetFields(){Stringname=”Agg”;
Returnname;}}
PublicclassAvf{Publicstaticvoidmain(Stringargv[]){Basea=newAgg();//Here}}
当把下面的代码添加到注释“/Here”后面,程序的输出结果是”Agg”(D)
D.System.out.println(((Agg)a).getFields())
14、当编译和运行下面的代码会出现什么情况?
(A)
AbstractclassBase{Abstractpublicvoidmyfunc();Publicvoidanother(){
Systern.out.println(“Anothermethod”);}}
PublicclassAbsextendsBase{}Publicstaticvoidmain(Stringargv[]){Absa=newAbs();a.amethod();}Publicvoidmyfunc(){System.out.println(“MyFunc”)}
A可以编译和运行,输出的结果是”Myfunc”
15、编译和运行下面的代码会出现(D)
Importjava.io.*;ClassBase{Publicvoidamethod()throwsFileNotFoundException{}}
PublicclassExcepDemoextendsBase{Publicstaticvoidmain(Stringargv[]){NewExcepDemo();}Publicvoidamethod(){}ProtectedExcepDemo(){try{
BufferedReaderinputStream=newBufferedReader(newInputStreamReader);
System.out.println(“Pausing”);inputStream.readLine();System.out.println(“Contimuing”);This.amethod();}catch(IOExceptionioe){}}D可以编译和运行,输出的结果是:
Pausing…Continuing其中…表示等待用户的键盘输入
17、以下程序的输出结果是(C)C、AclassBclass
classAclass{voidgo(){System.out.println(“Aclass”);}}publicclassBclassextendsAclass{Voidgo{System.out.println(“Bclass”);}Publicstaticvoidmain(Stringargs[]){Aclassa=newAclass();Aclassal=newBclass();a.go();al.go();}}
18、看以下程序Booleana=false;Booleanb=true;Booleanc=(a&&b)&&(!
b);Intresult=c==false?
1:
2;这段程序执行完后,c与result的值是:
(A)Ac=false;result=1;
19、下面哪个单词是Java语言的关键字(B)B.this
20、switch语句(A)A.都可以用if-elseif结构实现
21、在异常处理中,如释放资源、关闭文件等善后操作由(C)来完成。
C.finally子句
22、下面哪个是Java语言中正确的标识符(C)C.that
23、下面哪个修饰符修饰的方法只能被本类中的其他方法使用(C)C.private
24、下面哪条语句定义了5个元素的数组(A)A.int[]a={22,23,24,25,12};
25、下面哪项可以得到数组元素的个数,Java中定义数组名为abc。
B.abc.length
26、下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的(C)C.static
27、下面关于构造方法的说法不正确的是(B)B、构造方法不可以重载。
28、监听事件和处理事件(A)A、都由Listener完成
29、如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?
B.GridLayout
30、给出如下代码:
ClassTest{Privateintm;Publicstaticvoidfun(){//somecode…}}
如何使成员变量m被函数fun()直接访问?
(C)C将privateintm改为staticintm
31、有个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就……法头的形式为(A)A.staticvoidmethod()
32、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)B.class
33、如果只要让类中的成员变量可以被同一包访问,则使用如下哪个访问控制符?
(D)
Aprivate;BPublic;CProtected;D不使用访问控制符
34、以下哪个方法用于定义线程的执行体?
;Crun();
35、Java语具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制B、多线程
36、为实现多线程之间的通信,需要使用下列哪种流才合适
DPipedInputStream和PipedOutputStream
37、函数重载是指A两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
38、构造方法何时被调用B、创建对象时
39、Java中哪个类提供了随机访问文件的功能(A)A.RandomAccessFile类
40、当方法遇到异常又不知如何处理时,应该怎么做B.抛出异常
1、开发与运行Java需经过三个主要步骤为编辑源程序.编译生成自节码和解释运行字节.
2、使用数组时,下标表达式是整型表达式,下标的范围为0至数组长度减1
3、若x=5,y=10,则x=y的逻辑值分别为true和false。
4、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
5、在文件操作中,publicStringgetName()功能是得到文件名。
publicStringgetAbsolutePath()功能是返回文件绝对路径。
6、如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet类的子类并且存储该源程序文件的文件名为MyApplet。
7、如果一个JavaApplet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3个文件名与类名相同而扩展名为.class的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
8、设x=2,则表达式(x++)/3的值是1。
9、抽象(abstract)方法方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
最终(final)方法方法是不能被当前类的子类重新定义的方法。
8、创建一个名为MyPackage的包的语句是packageMyPackag,该语句应该放在程序的位置为:
应该在程序第一句。
10、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};则执行以下几个语句后的输出结果是120。
ints=0;for(inti=0;i1比较接口与抽象类的共同点和不同点.什么情况下应采用接口,什么情况下应采用抽象类.答:
接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。
接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。
如果创建的功能将在大范围的全异对象间使用,则使用接口。
抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。
抽象类不能实例化,必须通过继承由派生类实现其抽象方法。
相同点:
都不能被直接实例化,都可以通过继承实现其抽象方法。
都是面向抽象编程的技术基础,实现了诸多的设计模式。
不同点:
接口支持多继承;抽象类不能实现多继承。
接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
接口可用于支持回调;抽象类不能实现回调,因为继承不支持。
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。
例如,Struct就可以继承接口,而不能继承类。
2类的加载和构造方法的调用顺序
类的加载的顺序:
先递归地加载父类的静态成员/代码块(object的最先);再依次加载到本类的静态成员。
调用构造方法:
先递归地调用父类的构造方法;默认调用父类空参的同,也可在第一行写明调用用父类某个带参的。
再依次到本类的构造方法;先初始化父类的静态代码--->初始化子类的静态代码-->(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码---初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数
3什么是重载,什么是覆盖,有什么区别和共同点?
答:
重载是指在同一个类中定义了多个名字相同而内容不同的成员方法;覆盖则是指在子类中定义了与父类具有相同名字的成员方法。
重载与覆盖的区别在于:
重载是存在于同一个类的不同方法之间的多态关系,它们主要通过参数表中参数的个数、参数的数据类型和参数的顺序等方面的不同来区分;面覆盖是存在于父类与子类之间的多态关系,它们在引用时通过指出所属类的类名来区分。
1.写出以下程序的运行结果。
(54321)
publicclassTestArray{publicstaticvoidmain(Stringargs[]){inti,j;
inta[]={1,3,2,5,4};for(i=0;ifor(j=i;ja[k])k=j;inttemp=a[i];a[i]=a[k];a[k]=temp;}
for(i=0;i2.写出以下程序的功能。
(在屏幕上输出t