JAVA复习带答案.docx
- 文档编号:8572650
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:18
- 大小:108.82KB
JAVA复习带答案.docx
《JAVA复习带答案.docx》由会员分享,可在线阅读,更多相关《JAVA复习带答案.docx(18页珍藏版)》请在冰豆网上搜索。
JAVA复习带答案
第一章java开发入门
1.java语言的特点:
简单,面向对象,安全,跨平台,支持多线程。
简单:
(丢弃了C++中难于理解的运算符重载,多继承,指针等,并且提供自动垃圾回收机制)
面向对象:
只支持单继承,纯面向对象的语言。
安全:
不支持指针,一切内存访问必须通过对象实例来实现,从而使应用更安全。
跨平台:
同一段程序既可以在window运行也可以在Linux运行
多线程:
支持多线程。
下列选项哪个不属于java语言包含的内容()
A具有类与对象B一次编译处处运行C具有多线程的能力D具有多继承的特点
下列关于java语言特点错误的是()
A.java语言可以进行面向对象编程也可以面向过程编程
B.java语言是面向对象的语言
C.java语言支持跨平台编程
D.java语言支持多线程
下列特点不属于java语言的是()
A.多线程
B.多继承
C.跨平台
D.垃圾自动回收
2.java程序为什么能跨平台
通过java虚拟机可以达到跨平台的特性。
3.java程序的编译过程:
源文件编译(字节码文件)虚拟机运行
下面哪种类型的文件可以在java虚拟机中运行
A..javaB..jreC..exeD..class
在Java中负责对字节码解释执行的是()。
A.垃圾回收器B.虚拟机C.编译器D.多线程机制
编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .java B. .class
C. .htmD. .exe
第二章java编程基础
1.java代码基本格式
java语言区分大小写,程序代码必须写在一个类中
Java中main()函数的返回值是()。
A、StringB、intC、charD、void
void的含义()
A方法没有返回值B方法体为空
C没有意义D.定义方法时必须使用
2.java标识符可以由任意顺序的大小写字母、数字、下划线_和美元符号$组成,但不能以数字开头,不能是java关键字。
以下选项中,哪个是合法标识符()
A.abcB.classC.123sbDbyte
如下哪个不是Java中有效的变量名。
()
A、ifB、_helloC、nameD、$good
下面选项中哪个是Java中的标识符
下面哪个单词是Java语言的关键字()
A.FalseB.FORC.ForD.for
下列标识符中,正确的是。
A、1_BackB、$_MoneyC、$-moneyD、
下列标识符中,合法的一个是。
A.$#@!
$B.$我们$C.$22$D.2$$2
3.运算符表达式条件循环++--/%
设x=1,y=2,z=3则表达式y+=z--/++x的值是()。
A.3B.3.5C.4D.5
以下程序的运行结果是:
()
publicclassIncrement{
publicstaticvoidmain(Stringargs[]){
inta;
a=6;
}}
A.666B.667C.677D.676
下列代码输出结果是()
inti=10;while(i>0){
i=i+1;
if(i==10){
break;}}
A.while循环执行10次B.死循环C.循环一次都不执行D.循环执行一次
执行下面代码结果()
for(inti=0;;){
"这是"+i);
Break;}
A、语法错误,缺少表达式2和表达式3
B、死循环
C、程序什么都不输出
D、输出:
这是0
下列语句执行后变量a、c的值分别是。
intx=182;
inta,c;
c=x/100;
a=x%10;
A)12B)21C),2D)100,82
下列语句执行后,k的值是()
intj=4,i,k=10;
for(i=2;i!
=j;i++)k=k-i;
A.4B.5C.6D.7
break中断语句若在一个for语句中加入break语句它可以
A.对for语句执行没有影响
B.中断本次循环进入下一次循环
C.退出for循环执行for语句后面的语句
D.以上说法均不对.
执行完下面程序片段后的结论是正确的。
inta,b,c;
a=1;b=2
c=(a+b>3a++:
b++);
的值是2b的值是3的值是1b的值是3
的值是1b的值是2的值是false
4.方法(函数)
方法的重载:
函数名相同,参数个数和参数类型不同。
返回值不同不算重载。
方法的重写:
在继承关系中,子类重新定义父类的同名方法(参数个数和类型与父类一样)。
P116
方法递归是指在一个方法的内部调用自身的过程。
必须给出结束条件,不然会陷入死循环。
函数重载是指()。
A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型,传回的值也可以不相同。
这种面向对象程序的特性称为()。
A、隐藏
B、覆盖
C、重载
D、Java不支持此特性
重写与重载的关系是()
A、重写只有发生在父类与子类之间而重载可以发生在同一个类中
B、重写方法可以不同名而重载方法必须同名
C、final修饰的方法可以被重写但不能被重载
D、重写与重载是同一回事
下列方法头中哪一个不与其他方法形成重载(overload)关系(D)
A、voidmmm()B、voidmmm(inti)
C、voidmmm(Strings)D、intmm()(方法名不一样)
JAVA程序经常用到“递归”“递归”的基本思想是()。
A.“让别人反复调用自己”
B.“自己反复调用别人”
C.“自己反复调用自己”
D.以上说法都不对
5.数组数组元素的值
下列程序段执行后的结果是()。
Strings=newString("abcdefg");
for(inti=0;i<();i+=2)
{}
A)acegB)ACEGC)abcdefgD)abcd
应用程序的main方法中有以下语句则执行后输出的结果是(B)。
int[]x={125,21,5,168,98};
intmin=x[0];
for(inti=1;i<;i++)
{if(x[i] min=x[i]; } A)125B)5C)98D)168 若inta[3][2]={{123,345},{34,56},{34,56}},则a[2][1]=__56____。 设有整型数组的定义: “intx[][]={{12,34},{-5},{3,2,6}};”则的值为(9) 第三章面向对象(上) 1.java的面向对象的特点: 封装继承多态。 P7879 java的特性中体现对数据的保护的是() A.抽象性B.封装性 C.继承性D.多态性 java的特性中体现代码重用的是() A.抽象性B.封装性 C.继承性D.多态性 2.几个关键字: extendsimplementsabstractinterface 类的创建,接口,抽象类创建的写法。 所有类的父类是Object类。 Java中用 关键字定义继承(接口,抽象类 )。 Java语言中,①是所有类的根类。 1Object②Root③Thread④Applet 下面是类A的构造方法声明,其中正确的是② 1voidA(intx){...}②A(intx){...}③a(intx){...}④voida(intx){...} 下列类定义中不正确的是 3publicclassAextendsB{}②publicclassAextendsB,D{} 2publicclassAimplementsB,D{}④publicclassAextendsBimplementsC,D,E{} 下列哪个类声明是正确的()。 A.publicabstractclassCar{…}B.abstractprivatemove(){…} C.protectedprivatenumber;D.abstractfinalclassH1{…} 请看下面的程序段 publicclassTest{ longa[]=newlong[10]; pubicstaticvoidmain(Stringargs[]){ 哪一个选项是正确的()。 A.不输出任何内容B.输出0 C.当编译时有错误出现D.当运行时有错误出现 定义类A如下: classA{ inta,b,c; publicvoidB(intx,inty,intz){a=x;b=y;c=z;} } 下面对方法B的重载哪些是正确的()。 A.publicvoidA(intx1,inty1,intz1){a=x1;b=y1;c=z1;} B.publicvoidB(intx1,inty1,intz1){a=x1;b=y1;c=z1;} C.publicvoidB(intx,inty){a=x;b=y;c=0;} D.publicB(intx,inty,intz){a=x;b=y;c=z;} 下列方法的声明中不合法的是。 A.floatarea(){…}B.voidarea(){…} C.area{…}D.intarea(intr){…} 下面哪一个是正确的类的声明 A、publicvoidHH{…}B、publicclassMove(){…} C、publicclassvoidnumber{}D、publicclassCar{…} 3.类的设计与封装(属性,方法,继承,接口,抽象类) 程序题 所谓类的封装是指在定义一个类时,将类中的属性私有化,即用private关键字来修饰,私有属性智能在它所在的类中被访问。 4. 构造方法: 方法与类名相同,方法名前面没有返回值类型,在方法中不能使用 return语句返回一个值,当创建对象时调用,可以重载。 构造函数在一个类中肯定存在,如果不定义也不会报错,会有一个默认无参数构造函数,该函数函数体为空,如自己定义则无参数构造函数就没有了。 下列关于构造方法错误的是() A.java语言中构造方法名必须与类名相同 B.java语言中构造方法没有返回值,所以用void声明 C.java语言构造函数可以重载 D.java语言构造函数是在创建对象时自动调用。 构造函数何时被调用() A、创建对象时B、类定义时 C、使用对象的方法时D、使用对象的属性时 以下关于构造函数的描述错误的是。 A、构造函数的返回类型只能是void型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 在Java中,关于构造方法,下列说法错误的是() A、构造方法的名称必须与类名相同 B、构造方法可以带参数 C、构造方法不可以重载 D、构造方法绝对不能有返回值 下面是类A的构造方法声明,其中正确的是 A.voidA(intx){...}B.A(intx){...} C.a(intx){...}D.voida(intx){...} 有一个类A,对于其构造函数的声明正确的是()。 A.voidA(intx){…}B.publicA(intx){…} C.AA(intx){…}D.intA(intx){…} 以下关于构造函数的描述错误的是()。 A、构造函数的返回类型只能是void型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 5. static关键字(静态) 在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。 只有通过new关键字创建类的实例对象后,系统才会为对象分配空间,存储各自的数据。 有时候,我们希望某些特定的数据在内存中只有一份,而且能够被一个类的实例对象所共享。 静态变量: Static修饰的变量被称为静态变量,静态变量被所有实例共享,可以使用类名.变量名访问。 静态方法: 有时我们希望不创建对象的情况下可以调用某给方法,也就是说方法不必和对象绑在一起。 用static修饰的方法是静态方法,可以用类名.方法名调用,也可以用实例对象访问。 在一个静态方法中只能访问用static修饰的成员,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的() classA {inti; staticStrings; voidmethod1(){} staticvoidmethod2(){} } A、;B、(); C、();D、() 下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。 () classClassDemo{ publicstaticintsum=1; publicClassDemo(){ sum=sum+5;} } publicclassClassDemoTest{ publicstaticvoidmain(Stringargs[]){ ClassDemodemo1=newClassDemo(); ClassDemodemo2=newClassDemo(); } } A.0B.6C.11D.2 请看下面的程序段 classTest{ privateintm; publicstaticvoidfun(){ 个子类可以有多个父类一个父类也可以有多个子类 B.一个子类可以有多个父类但一个父类只可以有一个子类 C.一个子类可以有一个父类但一个父类可以有多个子类 D.上述说法都不对 有两个类定义: classA{voidwho(){"A");}} classBextendsA{voidwho(){"B");}} 则顺序执行如下语句后输出的结果为③。 Aa=newB();Bb=newB(); ();(); ①AA②AB③BB④BA 已知类关系如下: ClassEmployee{} ClassManagerextendsEmployee{} ClassDirectorextendsEmployee{} 则下列语句正确的是: ()。 A.Employeee=newManager();B.Directord=newManager(); C.Directord=newEmployee();D.Managerm=newDirector(); 关于Java中的继承,下列说法错误的是。 A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。 B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。 C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。 D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。 Java中的类都采用多重继承。 1.Super关键字: 调用父类的方法。 编译运行下面的程序,结果是()。 publicclassA{ publicstaticvoidmain(Stringargs[]){ Bb=newB(); (); } voidtest(){ } } classBextendsA{ voidtest(){ (); } } A.产生编译错误 B.代码可以编译运行,并输出结果: AB C.代码可以编译运行,但没有输出 D.编译没有错误,但会产生运行时异常 ClassParent{ VoidprintMe(){ "); } } classChildextendsParent{ voidprintMe(){ "child"); } voidprintAll(){ (); (); printMe(); } } publicclassA{ publicstaticvoidmain(Stringargs[]){ ChildmyC=newChild(); (); } } 运行结果是: 2.Final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性: 1、final修饰的类不能被继承。 2、final修饰的方法不能被子类重写。 3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。 在Java中关于final关键字的说法不正确的是。 A.如果修饰变量则一旦赋了值就等同一个常量。 B.如果修饰类则该类只能被一个子类继承。 C.如果修饰方法则该方法不能在子类中被覆盖。 D.如果修饰类则该类不能被继承。 什么样的方法不能被重写。 A.私有(private)方法B.最终(final)方法 C.受保护(protected)的方法D.以上都不对 3.抽象类和接口 定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰,具体示例如下: 当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类,具体示例如下: 如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。 在定义接口时,需要使用interface关键字来声明。 对抽象类的描述错误的是② ①必须被继承使用②方法必须被覆盖③不能实例化④用abstract修饰符修饰 下列关于接口的叙述中,④是正确的。 1接口与抽象类是相同的概念②接口之间不能有继承关系 3个类只能实现一个接口④接口中只含有抽象方法和常量 接口是Java面向对象的实现机制之一,以下说法正确的是()。 A.Java支持多重继承,一个类可以实现多个接口 B.Java只支持单重继承,一个类可以实现多个接口 C.Java只支持单重继承,一个类只可以实现一个接口 D.Java支持多重继承,但一个类只可以实现一个接口 下列有关抽象类与接口的叙述中正确的是哪一个。 A.抽象类中必须有抽象方法,接口中也必须有抽象方法 B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法 C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法 D.抽象类中的变量定义时必须初始化,而接口中不是 从下列程序中你发现了几处错误。 abstractclassA{ abstractvoidf(){}; publicabstractvoidk(); } classBextendsA{ protectedvoidf(){} publicvoidk(){ "Iamsubclass"); } publicstaticvoidmain(String[]args){ Aa=newA(); (); (); } } A.1B.2C.3D.4 4.多态(4-13)匿名内部类 5.异常 什么是异常Try….catch….Finally 有时候,我们希望有些语句无论程序是否发生异常都要执行,就需要在trycatch后加上finally代码块。 自定义异常继承自Exception类。 finally语句块中的代码() A.总是被执行 B.当try语句块后面没有catch时,finally中的代码才会执行 C.异常发生时才执行 D.异常没有发生时才被执行 抛出异常应该使用的关键字是() A.throw B.catch C.finally D.throws 自定义异常类时,可以继承的类是() A.Error B.Applet C.Exception及其子类 D.AssertionError 在异常处理中,将可能抛出异常的方法放在()语句块中 A.throws B.catch C.try D.finally 使用catch(Exceptione)的好处是() A.只会捕获个别类型的异常 B.捕获try语句块中产生的所有类型的异常 C.忽略一些异常 D.执行一些程序 第五章线程 1.线程和进程 2.Java中如何实现线程(继承Thread类创建线程,实现Runnable接口) Run函数中定义子线程中要实现的代码,通过start函数来开启子线程。 继承Thread类 publicclassExample02{ publicstaticvoidmain(String[]args){ MyThreadmyThread=newMyThread(); 2Beijing java语言对简单数据类型进行了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 复习 答案