JAVA复习带问题详解.docx

上传人:b****0 文档编号:9752416 上传时间:2023-05-21 格式:DOCX 页数:32 大小:109.42KB
下载 相关 举报
JAVA复习带问题详解.docx_第1页
第1页 / 共32页
JAVA复习带问题详解.docx_第2页
第2页 / 共32页
JAVA复习带问题详解.docx_第3页
第3页 / 共32页
JAVA复习带问题详解.docx_第4页
第4页 / 共32页
JAVA复习带问题详解.docx_第5页
第5页 / 共32页
JAVA复习带问题详解.docx_第6页
第6页 / 共32页
JAVA复习带问题详解.docx_第7页
第7页 / 共32页
JAVA复习带问题详解.docx_第8页
第8页 / 共32页
JAVA复习带问题详解.docx_第9页
第9页 / 共32页
JAVA复习带问题详解.docx_第10页
第10页 / 共32页
JAVA复习带问题详解.docx_第11页
第11页 / 共32页
JAVA复习带问题详解.docx_第12页
第12页 / 共32页
JAVA复习带问题详解.docx_第13页
第13页 / 共32页
JAVA复习带问题详解.docx_第14页
第14页 / 共32页
JAVA复习带问题详解.docx_第15页
第15页 / 共32页
JAVA复习带问题详解.docx_第16页
第16页 / 共32页
JAVA复习带问题详解.docx_第17页
第17页 / 共32页
JAVA复习带问题详解.docx_第18页
第18页 / 共32页
JAVA复习带问题详解.docx_第19页
第19页 / 共32页
JAVA复习带问题详解.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA复习带问题详解.docx

《JAVA复习带问题详解.docx》由会员分享,可在线阅读,更多相关《JAVA复习带问题详解.docx(32页珍藏版)》请在冰点文库上搜索。

JAVA复习带问题详解.docx

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程序的编译过程:

源文件a.java-→编译a.class(字节码文件)→虚拟机运行

下面哪种类型的文件可以在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中的标识符

A.publicB.superC.3numberD.width

下面哪个单词是Java语言的关键字()

A.FalseB.FORC.ForD.for

下列标识符中,正确的是。

A、1_BackB、$_MoneyC、$-moneyD、a.b

下列标识符中,合法的一个是。

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;

System.out.print(a);

System.out.print(a++);

System.out.print(a);}}

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;;){

System.out.println("这是"+i);

Break;}

A、语法错误,缺少表达式2和表达式3

B、死循环

C、程序什么都不输出

D、输出:

这是0

下列语句执行后变量a、c的值分别是。

intx=182;

inta,c;

c=x/100;

a=x%10;

A)12B)21C)1.82,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>3?

a++:

b++);

A.a的值是2b的值是3B.a的值是1b的值是3

C.a的值是1b的值是2D.c的值是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

{System.out.print(s.charAt(i));}

A)acegB)ACEGC)abcdefgD)abcd

应用程序的main方法中有以下语句则执行后输出的结果是(B)。

int[]x={125,21,5,168,98};

intmin=x[0];

for(inti=1;i

{if(x[i]

min=x[i];

}

System.out.println(min);

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}};”则x.length的值为(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[]){

System.out.println(a[6]);

}

}

哪一个选项是正确的()。

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、System.out.println(a.i);B、a.method1();

C、A.method1();D、A.method2()

下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。

()

classClassDemo{

publicstaticintsum=1;

publicClassDemo(){

sum=sum+5;}

}

publicclassClassDemoTest{

publicstaticvoidmain(Stringargs[]){

ClassDemodemo1=newClassDemo();

ClassDemodemo2=newClassDemo();

System.out.println(demo1.sum);}

}

A.0B.6C.11D.2

请看下面的程序段

classTest{

privateintm;

publicstaticvoidfun(){

//somecode

}

}

方法fun()如何来访问变量m()

A.将privateintm改成protectedintmB.将privateintm改成publicintm

C.将privateintm改成staticintmD.将privateintm改成intm

声明为static的方法不能访问()类成员。

A.超类B.子类

C.非staticD.用户自定义类

第四章面向对象(下)

1.继承extends

只有单继承,

在Java语言中,下列关于类的继承的描述,正确的是()。

A、一个类可以继承多个父类

B、一个类可以具有多个子类

C、子类可以使用父类的所有方法

D、子类一定比父类有更多的成员方法

Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()

A、C不仅继承了B中的成员,同样也继承了A中的成员

B、C只继承了B中的成员

C、C只继承了A中的成员

D、C不能继承A或B中的成员

Java语言中对父类和子类关系描述正确的是

A.一个子类可以有多个父类一个父类也可以有多个子类

B.一个子类可以有多个父类但一个父类只可以有一个子类

C.一个子类可以有一个父类但一个父类可以有多个子类

D.上述说法都不对

有两个类定义:

classA{voidwho(){System.out.print("A");}}

classBextendsA{voidwho(){System.out.print("B");}}

则顺序执行如下语句后输出的结果为③。

Aa=newB();Bb=newB();

a.who();b.who();

①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中的类都采用多重继承。

 

2.Super关键字:

调用父类的方法。

编译运行下面的程序,结果是()。

publicclassA{

publicstaticvoidmain(Stringargs[]){

Bb=newB();

b.test();

}

voidtest(){

System.out.print(“A”);

}

}

classBextendsA{

voidtest(){

super.test();

System.out.print(“B”);

}

}

A.产生编译错误

B.代码可以编译运行,并输出结果:

AB

C.代码可以编译运行,但没有输出

D.编译没有错误,但会产生运行时异常

ClassParent{

VoidprintMe(){

System.out.println(“parent");

}

}

classChildextendsParent{

voidprintMe(){

System.out.println("child");

}

voidprintAll(){

super.printMe();

this.printMe();

printMe();

}

}

publicclassA{

publicstaticvoidmain(Stringargs[]){

ChildmyC=newChild();

myC.printAll();

}

}

运行结果是:

3.Final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性:

1、final修饰的类不能被继承。

2、final修饰的方法不能被子类重写。

3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。

在Java中关于final关键字的说法不正确的是。

A.如果修饰变量则一旦赋了值就等同一个常量。

B.如果修饰类则该类只能被一个子类继承。

C.如果修饰方法则该方法不能在子类中被覆盖。

D.如果修饰类则该类不能被继承。

什么样的方法不能被重写。

A.私有(private)方法B.最终(final)方法

C.受保护(protected)的方法D.以上都不对

4.抽象类和接口

定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰,具体示例如下:

当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类,具体示例如下:

如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。

在定义接口时,需要使用interface关键字来声明。

对抽象类的描述错误的是②

①必须被继承使用②方法必须被覆盖③不能实例化④用abstract修饰符修饰

下列关于接口的叙述中,④是正确的。

1接口与抽象类是相同的概念②接口之间不能有继承关系

3个类只能实现一个接口④接口中只含有抽象方法和常量

接口是Java面向对象的实现机制之一,以下说确的是()。

A.Java支持多重继承,一个类可以实现多个接口

B.Java只支持单重继承,一个类可以实现多个接口

C.Java只支持单重继承,一个类只可以实现一个接口

D.Java支持多重继承,但一个类只可以实现一个接口

下列有关抽象类与接口的叙述中正确的是哪一个。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法

C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法

D.抽象类中的变量定义时必须初始化,而接口中不是

从下列程序中你发现

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2