JAVA复习带答案

更新时间:2024-01-27 07:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 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 . .java B. .jre C. .exe D. .class 在Java中负责对字节码解释执行的是( )。 

A.垃圾回收器 B.虚拟机 C.编译器 D.多线程机制

编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。

A. .java B. .class

C. .htm D. .exe

第二章 java编程基础

1. java代码基本格式

java语言区分大小写 ,程序代码必须写在一个类中 Java中main()函数的返回值是 ()。

A、 String B、int C、char D、void void的含义( )

A方法没有返回值 B方法体为空

C没有意义 D. 定义方法时必须使用

2. java标识符 可以由任意顺序的大小写字母、数字、下划线_和美元符号$组成,但不能以数

字开头,不能是java关键字。

以下选项中,哪个是合法标识符( ) A.abc B. class C. 123sb D byte

如下哪个不是Java中有效的变量名。( )

A、 if B、_hello C、name D、$good 下面选项中哪个是Java中的标识符

A.public B.super C.3number D.width

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

A.False B.FOR C.For D.for 下列标识符中,正确的是 。 A、1_Back B、$_Money

C、$-money D、a.b

下列标识符中,合法的一个是 。 A.$#@!$

B.$我们$

C.$22$

D.2$$2

3. 运算符表达式 条件 循环 ++ - - / %

设 x = 1 , y = 2 ,z = 3则表达式 y+=z- -/++ x 的值是( )。 A. 3 B. 3.5 C. 4 D. 5 以下程序的运行结果是:( )

public class Increment{

public static void main(String args[]) { int a; a = 6;

System.out.print(a); System.out.print(a++);

System.out.print(a); } }

A. 666 B. 667 C. 677 D. 676

下列代码输出结果是( ) int i = 10; while ( i > 0 ){ i = i + 1;

if ( i = =10 ){ break; } }

A. while循环执行10次 B. 死循环 C. 循环一次都不执行 D. 循环执行一次 执行下面代码结果( ) for(int i=0;;){

System.out.println(\这是 \

Break; }

A、 语法错误,缺少表达式2和表达式3 B、 死循环

C、 程序什么都不输出 D、 输出:这是0

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

int x=182; int a,c;

c=x/100; a=x;

A) 12 B) 21 C) 1.82, 2 D) 100,82

下列语句执行后,k的值是( ) int j=4, i, k=10;

for(i=2; i!=j; i++) k=k-i;

A. 4 B.5 C.6 D.7

break中断语句若在一个for语句中加入break语句它可以

A. 对for语句执行没有影响

B. 中断本次循环进入下一次循环

C. 退出for循环执行for语句后面的语句 D. 以上说法均不对 .

执行完下面程序片段后的结论是正确的。 int a,b,c; a=1; b=2

c = (a+b>3 ?a++:b++);

A.a的值是2b的值是3 B.a的值是1b的值是3 C.a的值是1b的值是2 D.c的值是false

4. 方法(函数)

方法的重载 :函数名相同 ,参数个数和参数类型不同。返回值不同不算重载。

方法的重写 :在继承关系中,子类重新定义父类的同名方法(参数个数和类型与父类一样)。 P116

方法递归是指在一个方法的内部调用自身的过程。必须给出结束条件,不然会陷入死循环。

函数重载是指( )。

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同

一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型,传回的值也可以不相同。这种面向对象程序的特性称为( )。

A、 隐藏 B、覆盖

C、重载

D、Java不支持此特性

重写与重载的关系是 ( )

A、重写只有发生在父类与子类之间而重载可以发生在同一个类中 B、重写方法可以不同名而重载方法必须同名 C、final修饰的方法可以被重写但不能被重载 D、重写与重载是同一回事

下列方法头中哪一个不与其他方法形成重载(overload)关系?( D ) A、void mmm() B、void mmm(int i)

C、void mmm(String s) D、int mm() (方法名不一样)

JAVA程序经常用到“递归”“递归”的基本思想是( ) 。 A.“让别人反复调用自己” B.“自己反复调用别人”

C.“自己反复调用自己” D.以上说法都不对

5. 数组 数组元素的值

下列程序段执行后的结果是( )。 String s = new String(\ for (int i=0; i

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

A) aceg B) ACEG C) abcdefg D) abcd

应用程序的main方法中有以下语句则执行后输出的结果是( B )。 int[] x = {125,21,5,168,98}; int min = x[0];

for (int i=1; i

min = x[i]; }

System.out.println(min);

A) 125 B) 5 C) 98 D) 168

若int a[3][2]={{123,345},{34,56},{34,56}},则a[2][1]= __56____。

设有整型数组的定义:“int x[][]={{12,34},{-5},{3,2,6}};”则x.length的值为( 9 )

第三章 面向对象(上)

1. java的面向对象的特点: 封装 继承 多态。 P 78 79

java的特性中体现对数据的保护的是( ) A.抽象性 B.封装性 C.继承性 D.多态性 java的特性中体现代码重用的是( ) A.抽象性 B.封装性 C.继承性 D.多态性

2. 几个关键字:extends implements abstract interface

类的创建 ,接口,抽象类创建的写法。所有类的父类是Object类。

Java中用 关键字定义继承(接口,抽象类 )。

Java语言中, ① 是所有类的根类。

① Object ②Root ③Thread ④Applet 下面是类A的构造方法声明,其中正确的是 ②

① void A(int x){...} ②A(int x){...} ③a(int x){...} ④void a(int x){...} 下列类定义中不正确的是

③ public class A extends B{} ②public class A extends B,D{} ② public class A implements B,D{} ④public class A extends B implements

C,D,E{}

下列哪个类声明是正确的( )。

A.public abstract class Car{…} C.protected private number;

请看下面的程序段

public class Test{

long a[]=new long[10];

pubic static void main(String args[]){

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

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

B.abstract private move(){…} D.abstract final class H1{…}

A.不输出任何内容

C.当编译时有错误出现

定义类A如下: class A{ int a,b,c;

public void B(int x,int y, int z){ a=x;b=y;c=z;} }

B.输出0

D.当运行时有错误出现

下面对方法B的重载哪些是正确的( )。

A.public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;} B.public void B(int x1,int y1, int z1){ a=x1;b=y1;c=z1;} C.public void B(int x,int y){ a=x;b=y;c=0;} D.public B(int x,int y, int z){ a=x;b=y;c=z;}

下列方法的声明中不合法的是 。 A.float area( ){…} C.area{…}

B.void area( ){…} D.int area(int r){…}

下面哪一个是正确的类的声明?

A、 public void HH{…} B、 public class Move(){…} C、 public class void number{} D、 public class Car{…}

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. void A(int x){...} B. A(int x){...} C. a(int x){...} D. void a(int x){...}

有一个类A,对于其构造函数的声明正确的是( )。

A.void A(int x){?} C.A A(int x){?}

B.public A(int x){?} D.int A(int x){?}

以下关于构造函数的描述错误的是( )。 A、构造函数的返回类型只能是void型。

B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。

5. static关键字(静态)

在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建类的实例对象后,系统才会为对象分配空间,存储各自的数据。有时候,我们希望某些特定的数据在内存中只有一份,而且能够被一个类的实例对象所共享。

静态变量:Static修饰的变量被称为静态变量,静态变量被所有实例共享,可以使用类名.变量名访问。

静态方法:有时我们希望不创建对象的情况下可以调用某给方法,也就是说方法不必和对象绑在一起。用static修饰的方法是静态方法,可以用类名.方法名调用,也可以用实例对象访问。在一个静态方法中只能访问用static修饰的成员,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。

假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( ) class A { int i;

static String s;

void method1() { }

static void method2() { } }

A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2()

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

class ClassDemo {

public static int sum=1; public ClassDemo() { sum = sum + 5; } }

public class ClassDemoTest{

public static void main(String args[]) { ClassDemo demo1=new ClassDemo(); ClassDemo demo2=new ClassDemo(); System.out.println(demo1.sum); } }

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

请看下面的程序段 class Test{

private int m;

public static void fun(){ //some code } }

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

A.将private int m 改成protected int m B.将private int m 改成public int m C.将private int m 改成static int m D.将private int m 改成int m

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

A.超类 B.子类

C.非static D.用户自定义类 第四章 面向对象(下)

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.上述说法都不对

有两个类定义:class A{void who(){System.out.print(\class B extends A{void who(){System.out.print(\则顺序执行如下语句后输出的结果为 ③ 。 A a=new B();B b=new B(); a.who();b.who();

①AA ②AB ③BB ④BA 已知类关系如下: Class Employee{}

Class Manager extends Employee{} Class Director extends Employee{} 则下列语句正确的是:( )。

A.Employee e=new Manager(); C.Director d =new Employee ();

B.Director d=new Manager(); D.Manager m=new Director ();

关于Java中的继承,下列说法错误的是 。

A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。 B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。

C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。

D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。

2. Super关键字:调用父类的方法。

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

public static void main(String args[]){

B b=new B(); b.test(); }

void test(){

System.out.print(“A”); } }

class B extends A{ void test(){

super.test();

System.out.print(“B”);

} }

A.产生编译错误

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

C.代码可以编译运行,但没有输出 D.编译没有错误,但会产生运行时异常

Class Parent{ Void printMe(){

System.out.println(“parent\ } }

class Child extends Parent{ void printMe(){

System.out.println(\ }

void printAll(){ super.printMe(); this.printMe(); printMe(); } }

public class A{

public static void main(String args[]){ Child myC=new Child(); myC.printAll(); }

}

运行结果是:

3. Final关键字 可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含

义,因此被final修饰的类、变量和方法将具有以下特性: 1、final修饰的类不能被继承。

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

3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。 在Java中关于final关键字的说法不正确的是 。  A.如果修饰变量则一旦赋了值就等同一个常量。 B.如果修饰类则该类只能被一个子类继承。 C.如果修饰方法则该方法不能在子类中被覆盖。 D.如果修饰类则该类不能被继承。

本文来源:https://www.bwwdw.com/article/ogsw.html

Top