文档库 最新最全的文档下载
当前位置:文档库 › JAVA复习带答案

JAVA复习带答案

JAVA复习带答案
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 . .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("这是"+i);

Break;}

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

B、死循环

C、程序什么都不输出

D、输出:这是0

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

int x=182;

int a,c;

c=x/100;

a=x%10;

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() (方法名不一样)

JA V A程序经常用到“递归” “递归”的基本思想是( ) 。

A.“让别人反复调用自己”

B.“自己反复调用别人”

C.“自己反复调用自己”

D.以上说法都不对

5. 数组数组元素的值

下列程序段执行后的结果是( )。

String s = new String("abcdefg");

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

{ if(x[i]

min = x[i];

}

System.out.println(min);

A) 125 B) 5C) 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{…}B.abstract private move(){…} C.protected private number; D.abstract final class H1{…} 请看下面的程序段

public class Test{

long a[]=new long[10];

pubic static void main(String args[]){

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

}

}

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

A.不输出任何内容B.输出0

C.当编译时有错误出现D.当运行时有错误出现定义类A如下:

class A{

int a,b,c;

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

}

下面对方法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( ){…}B.void area( ){…}

C.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){…} B.public A(int x){…}

C.A 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("A");}}

class B extends A{void who(){System.out.print("B");}}

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

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();B.Director d=new Manager(); C.Director d =new Employee ();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{

V oid printMe(){

System.out.println(“parent");

}

}

class Child extends Parent{

void printMe(){

System.out.println("child");

}

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.如果修饰类 则该类不能被继承。

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

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

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

4.抽象类和接口

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

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

如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。在定义接口时,需要使用interface关键字来声明。

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

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

饰符修饰

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

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

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

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

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

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

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

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

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

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

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

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

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

从下列程序中你发现了几处错误。

abstract class A{

abstract void f(){};

public abstract void k();

}

class B extends A{

protected void f(){ }

public void k(){

System.out.print("I am subclass");

}

public static void main(String[] args) {

A a=new A();

a.f();

a.k();

}

}

A.1 B.2 C.3 D.4

5.多态(4-13)匿名内部类

6.异常

什么是异常?Try ….catch …. Finally

有时候,我们希望有些语句无论程序是否发生异常都要执行,就需要在try catch后加上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(Exception e)的好处是()

A.只会捕获个别类型的异常

B.捕获try语句块中产生的所有类型的异常

C.忽略一些异常

D.执行一些程序

第五章线程

1.线程和进程

2.Java中如何实现线程(继承Thread类创建线程,实现Runnable接口)

Run函数中定义子线程中要实现的代码,通过start函数来开启子线程。

继承Thread类

public class Example02 {

public static void main(String[] args) {

MyThread myThread = new MyThread(); // 创建线程MyThread的线程对象

myThread.start(); // 开启线程

while (true) { // 通过死循环语句打印输出

System.out.println("main()方法在运行");

}

}

}

class MyThread extends Thread {

public void run() {

while (true) { // 通过死循环语句打印输出

System.out.println("MyThread类的run()方法在运行");

}

}

}

实现Runnable接口

public class Example03 {

public static void main(String[] args) {

MyThread myThread = new MyThread(); // 创建MyThread的实例对象

Thread thread=new Thread(myThread); // 创建线程对象

thread.start(); // 开启线程,执行线程中的run()方法

while (true) {

System.out.println("main()方法在运行");

}

}

}

class MyThread implements Runnable {

public void run() { // 线程的代码段,当调用start()方法时,线程从此处开始执行while (true) {

System.out.println("MyThread类的run()方法在运行");

}

}

}

在实现多线程的程序时有两种方式,一是通过继承___Thread___类,二是通过实现Runnable______接口。

一个应用程序中有多条并发执行的线索,每条线索都被称作一个__线程____,它们会交替执行。

在Thread类中,提供了一个start()方法,该方法用于开启线程______,当新线程启动后,系统会自动调用__run()____方法。

设已经编好了一个线程类MyThread,要在main()中启动该线程,需使用以下哪个方法()

A.new MyThread

B.MyThread myThread=new MyThread(); myThread.start(); C.MyThread myThread=new MyThread(); myThread.run();

D.new MyThread.start();

以下方法用于定义线程执行体的是()

A.start() B.init() C.run()D.main()

以下方法用于启动线程的是()

A.start() B.init() C.run() D.main()

第六章java API

1.String类

Substring 的包头不包尾str=”zhangsanfeng”str.substring(5,8) 结果是san

2.Stringbuffer类

Delete replace包头不包尾

String类型equals() 两个字符串内容一样,就返回真

= = 左右两边的对象是一个对象才返回真

比较s1种的字符串和s2种的字符串的内容是否相等的表达式是:(s1.equals(s2) )

已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为:(edcba )

已知StringBuffer sb=new StringBuffer("abc"),则sb.reverse()后,sb的值为cba String s1=“China”; int n=s1.length( ); n的值为 5 。

已知String对象s=”abcdefg”,则s.substring(2,5)的返回值为()。

A.”bcde”B.”cde”

C.”cdef”D.”def”

已知s为一个String对象,s=”abcdefg”,则s.charAt(1)的返回值为()。

A.a B.b

C.f D.g

假设String s="Nice to meet you",则下面返回"to" 的语句为。

A.s.substring(6,8); B.s.substring(5,9);

C.s.substring(5,7);D.s.substring(6,7);

已知String s= "This is a string",则s.indexOf("is")的值为。

A.1 B.2 C.3 D.4

以下程序段执行的结果为。

String str1, str2;

str1 = "Byebye";

str2= "Byebye";

System.out.print(str1.equals(str2)); true

System.out.println(str1 == str2); false

A.truefalse B.truetrue C.falsetrue D.falsefalse

应用程序的main方法中有以下语句 则输出的结果是( A )。

String s1=new String("abc");

String s2=new String("abc");

boolean b1=s1.equals(s2);

boolean b2=(s1= =s2);

System.out.print(b1+" "+b2);

A)true false B) false true C) true true D)false false

已知StringBuffer sb=new StringBuffer("abcde"),则sb.delete(1,2)后sb的值为。A.a bc B.abde C.acde D.ade 下面的程序段执行后输出的结果是。

StringBuffer buf=new StringBuffer("Beijing2008");

buf.insert(7,"@");

System.out.println(buf.toString());

A) Beijing@2008 B) @Beijing2008

C) Beijing2008@ D) Beijing#2008

下列程序段执行后的结果是。

Strin s=new

String("abcdefg");

for(int i=0;i

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

}

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

先阅读下面的程序片段:

String str1=new String("java");

String str2=new String("java");

StringBuffer str3=new StringBuffer("java");

对于上述定义的变量,以下表达式的值为true的是哪个?

A、 str1==str2;

B、str1.equals(str2);

C、str1==str3;

D、以上都不对

public class B {

public static void main(String[] args) {

String s = "dfferghuklmbdfd";

System.out.println("str.length():" + s.length()); 15

System.out.println("str.charAt(0):" + s.charAt(0)); d

System.out.println("lastIndexOf(m):" + https://www.wendangku.net/doc/1b5948275.html,stIndexOf('m'));10

System.out.println("substring(2,4):" + s.substring(2, 4)); fe

System.out.println("indexOf(g):" + s.indexOf('g')); 5

}

}

3.Random类

Random r=new Random();

r.nextInt(100);

产生一个[0,100)之间的数

4.包装类

a)在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本

数据类型的值传入。为了解决这样的问题,JDK中提供了一系列的包装类,通

过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。

表中列举了八种基本数据类型及其对应的包装类。其中,除了Integer和Character 类,其它包装类的名称和基本数据类型的名称一致,只是类名的第一个字母大写即可。

java语言对简单数据类型进行了包装,int对应的包装类是_____Integer_________.

java语言对简单数据类型进行了包装,bool对应的包装类是___Boolean___________.

按要求编写一个Java应用程序:

(1)定义一个接口CanCry,描述会吼叫的方法public void cry()。

(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。实现方法的功能分别为:打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”。

(3)定义一个主类G,

①定义一个void makeCry(CanCry c)方法,其中让会吼叫的事物吼叫。

②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用g调用makecry方法,让狗和猫吼叫。

public class G {

void makeCry(CanCry c){

c.cry();

}

public static void main(String[] args) {

// TODO自动生成的方法存根

Dog d=new Dog();

Cat c=new Cat();

G g=new G();

g.makeCry(d);

g.makeCry(c);

}

}

interface CanCry{

public void cry();

}

class Dog implements CanCry{ public void cry(){

System.out.println("我是狗,我的叫声是汪汪汪");

}

}

class Cat implements CanCry{

public void cry(){

System.out.println("我是猫,我的叫声是喵喵喵");

}

}

定义一个Father类,包括属性:姓名、性别、年龄;包括方法:工作(打印输出工作内容)。

(1)根据Father类,派生一个儿子类,增加属性:国籍;重写工作方法。

(2)定义儿子类的构造函数。

(3)编写主函数用儿子类的构造函数产生三个实例,然后把这三个实例放到一个List 集合中,然后使用Iterator对象遍历集合打印出儿子的姓名。

public class test {

public static void main(String[] args) {

// TODO自动生成的方法存根

Son s1=new Son("王思聪","男

",28,"中国");

Son s2=new Son("王思超","男

",30,"中国");

Son s3=new Son("王思辉","男

",15,"中国");

ArrayList list=new

ArrayList();

list.add(s1);

Java笔试题及答案

Java笔试题及答案 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

Java语言练习题库(含答案)

单选题 1. 为了保证方法的线程安全,声明方法的时候必须用哪个修饰符? (A) new (B) transient (C) void (D) synchronized 2. 编译Java源文件使用哪个? (A) javac (B) jdb (C) javadoc (D) junit 3. 哪一种类的对象中包含有Internet地址。 (A) Applet (B) Datagramsocket (C) InetAddress (D) AppletContext 4. 有关GUI容器叙述,不正确的是? (A) 容器是一种特殊的组件,它可用来放置其它组件 (B) 容器是组成GUI所必需的元素 (C) 容器是一种特殊的组件,它可被放置在其它容器中

(D) 容器是一种特殊的组件,它可被放置在任何组件中 5. 使用javadoc生成的文档的文件格式是? (A) XML格式 (B) 自定义格式 (C) 二进制格式 (D) HTML格式 6. 下列有关类、对象和实例的叙述,正确的是哪一项? (A) 类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别 (B) 对象是类的抽象,类是对象的具体化,实例是对象的另一个名称 (C) 类是对象的抽象,对象是类的具体化,实例是类的另一个名称 (D) 类是对象的抽象,对象是类的具体化,实例是对象的另一个名称 7. 在事件委托类的继承体系中,最高层次的类是哪项? (A) java.util.EventListener (B) java.util.EventObject (C) java.awt.AWTEvent (D) java.awt.event.AWTEvent 8. Java语言中异常的分类是哪项? (A) 运行时异常和异常 (B) 受检异常和非受检异常

java考试试卷及答案

JAVA考试试卷及答案 选择题 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画 图操作。 A. start() B. stop() C. init() D. paint() 3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B A)安全性B)多线程C)跨平台D)可移植 4、下列哪个类声明是正确的?D A)abstract final class HI{···}B)abstract private move(){···} C)protected private number; D)public abstract class Car{···} 6、在Java语言中,下列哪些语句关于内存回收的说明是正确的? B A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 10、下列Object类中的方法,哪一项不是完全跟线程有关:A A.String toString() B.void notify() C.void notifyAll() D.void wait() 11、给出下面代码:C public class Person{ static int arr[] = new int[10]; public static void main(String a[]) { System.out.println(arr[1]); } } 下列说法中正确的是? A.编译时将产生错误; B.编译时正确,运行时将产生错误; C.输出零; D.输出空。 12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:B A.String(char[] value, int offset, int count) B.String(int[] codePoints,int offset, int count) C.String(String original) D.String(StringBuffer buffer) 13、下列说法中正确的是:C A.导入包会影响程序的性能

Java期末考试题及答案

Java期末考试题 一、简答题(共8个题,每题5分,共40分) 1. java 语言有哪些特点, (1)简单的 a)Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。 b)Java的风格类似于C++因而C++程序员初次接触Java语言,就会感到很熟悉。从某种 意义上讲,Java语言是C及C++语言的一个变种。 c)Java摒弃了C++中容易引发程序错误的一些特性,如指针、结构、枚举以及内存管理等。 d)Java提供了丰富的类库,可以帮助我们很方便的开发Java程序。 (2)面向对象的 面向对象可以说是Java最重要的特性,所以它支持继承、重载、多态等面向对象的特性。 Java语言的设计是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。(3)健壮的 Java致力于检查程序在编译和运行时的错误。Java也是一种强类型的语 言,其类型检查 比C++还要严格。类型检查帮助我们检查出许多开发早期出现的错误。Java 自己负责内存管 理,提供了垃圾内存回收机制,有效的避免了C++中最头疼的内存泄漏问 题。

Java的安全性可从两个方面得到保证。一方面,在Java语言里,删除了指 针和释放内 存等C++功能,避免了非法内存操作。另一方面,通过Java的安全体系架 构来确保Java代码 的xx。 从一开始,Java就被设计成能够防范各种袭击,包括:禁止运行时堆栈溢出。 例如,蠕 虫等病毒常用的袭击手段;禁止在自己的处理空间之外破坏内存;未经授权禁止读写文件; 许多安全特性相继不断的被加入Java中。 (5)解释的 Java代码是解释执行的,我们使用Java编译器将Java代码编译成字节码,这是一种中间 代码,然后由Java解释器解释执行。而C++程序是编译执行的,C++g序代码被编译为本地 机器指令,然后执行。 (6)与平台无关的 Java作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。只要有Java 运行系统的机器都能执行这种中间代码。Java源程序被编译成一种与机器 无关的字节码格式, 1 在Java虚拟机上运行。

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

JAVA复习题库及答案

第一题单项选择题 1、在下列说法中,选出最正确的一项是(A )。 A、Java 语言是以类为程序的基本单位的 B、Java 语言是不区分大小写的 C、多行注释语句必须以//开始 D、在Java 语言中,类的源文件名和该类名可以不相同 2、下列选项中不属于Java 虚拟机的执行特点的一项是(D )。 A、异常处理 B、多线程 C、动态链接 D、简单易学 3、下列选项中,属丁JVM 执行过程中的特点的一项是( C )。 A、编译执行 B、多进程 C、异常处理 D、静态链接 4、在Java 语言中,那一个是最基本的元素?( C ) A、方法 B、包 C、对象 D、接口 5、如果有2 个类A 和B,A 类基于B 类,则下列描述中正确的一个是( B )。 A、这2 个类都是子类或者超类 B、A 是B 超类的子类 C、B 是A 超类的子类 D、这2 个类郡是对方的子类 6、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?(D ) A、abstract B、private (本类) C、protected(本包及其他包的子类) D、不使用保留字 7、编译一个定义了3 个类的Java 源文件后,会产生多少个字符码文件,扩展名是什么?(D ) A、13 个字节码文件,扩展名是.class B、1 个字节码文件,扩展名是.class C、3 个字节码文件,扩展名是.java D、3 个字节码文件,扩展名是.class 8、下列关于Java 程序结构的描述中,不正确的一项是( C )。 A、一个Java 源文件中可以包括一个package 语句 B、一个Java 源文件中可以包括多个类定义,但是只能有一个public 类 C、一个Java 源文件中可以有多个public 类 D、源文件名与程序类名必须一致 9、下列说法正确的一项是( C )。 A、java.1ang.Integer 是接口 B、java.1ang.Runnable 是类 C、Doulble 对象在iava.1ang 包中 D、Double 对象在java.1ang.Object 包中 10、以下关于面向对象概念的描述中,不正确的一项是( B )。 A、在现实生活中,对象是指客观世界的实体

java期末选择试题及答案大全

一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( B )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( C )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( C )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( C )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( B )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) 'A' B) 'B' C) 'C' D) B 8.下列语句序列执行后,i 的值是( D )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( C )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( B )。 A) x > y || x > z B) x != y C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( D )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是(C )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是D )。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... } C) switch ch D) switch ( a + b );

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

Java复习题及答案

一、判断题(每题1分,共15分) 1、Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。( 1 ) 2、接口和类一样也可以有继承关系,而且都只能支持单继承。(0 ) 3、所有类至少有一个构造器,构造器用来初始化类的新对象,构造器与类同名,返回类型只能为void。(0 ) 4、包是按照目录、子目录存放的,可以在程序中用package定义包,若没有package一行,则表示该文件中的类不属于任何一个包。(0 ) 5、Java对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。( 1 ) 6、在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在前面,子类放在后面。(0 ) 7、在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。( 1 ) 8、我们可以方便地编写Java客户机/服务器程序,在客户机/服务器模式中,客户机一般通过套接字(Socket)使用服务器所提供的服务,Socket由两部分组成:IP地址和端口号。 ( 1 ) 9、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。(0 ) 10、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(0 ) 11、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。 (1 ) 12、如果f是父类Flower的对象,而r是子类Rose的对象,则语句f=r是正确的。(1 ) 13、Java系统的标准输入对象是System.in,标准输出对象有两个,分别是System.out和System.err。 (1 ) 14、final类中的属性和方法都必须被final修饰符修饰。(0) 15、子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。(0 ) 二、单项选择题(每题2分,共30分) 1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( c )。 A、本地方法 B、解态方法 C、最终方法 D、抽象方法 2、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( b )。 A、p ublic static void main() B、public static void main(String[ ] args) C、public static int main(String[ ] args) D、p ublic void main(String arg[ ]) 3、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( c )。

JAVA期末试题及答案

Java 程序设计》课程试卷 1.使用 Java 语言编写的源程序保存时的文件扩展名是( )。 (A ) .class ( B ) .java C ) .cpp ( D ) .txt 2.设 int a=-2 ,则表达式 a>>>3 的值为( )。 (A ) 0 (B )3 (C ) 8 (D )-1 3.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的是( ) ( A )a[0]; ( B ) a[a.length-1]; (C )a[3]; (D )int i=1 ; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A )封装 (B )继承 (C )覆盖 (D )重载 5.在类的定义中构造函数的作用是( )。 (A )保护成员变量 (B )读取类的成员变量 (C )描述类的特征 (D )初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 ( A ) try ( B ) break ( C ) catch ( D ) finally 7.类与对象的关系是( )。 (A )类是对象的抽象 (B )对象是类的抽象 15. Java 语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB 16. 如果一个类的成员变量 (A) public (B) (C 对象是类的子类 (D )类是对象的具体实例 )。 8.下面哪一个是 Java 中不合法的标识符( ( A )$persons ( B ) twoNum ( C )_myVar ( D )*point 9.为 AB 类的一个无形式参数无返回值的方法 ( ) 。 ( A ) static void method( ) ( B ) public void method( ) ( C ) final void method( ) ( D ) abstract void method( ) 10.欲构造 ArrayList 类的一个实例,此类继承了 ( A ) ArrayList myList=new Object( ) ( B ) List myList=new ArrayList( ) ( C ) ArrayList myList=new List( ) ( D ) List myList=new List( ) 11. Java 源文件和编译后的文件扩展名分别为( (A) .class 和 .java (C).class 和 .class 12. 在 Java Applet 程序用户自定义的 (A) start( ) (B) stop( ) (C) init( ) 13. 对于一个 Java 源文件, (A) package,import,class (C) import,package,class 14. 下面哪个是非法的: (A) int I = 32; (C) double d = 45.0; method 书写方法头,使得使用类名 List 接口,下列哪个方法是正确的( ) ( B).java 和 .class (D) .java 和 .java Applet 子类中,一般需要重载父类的 (D) paint( ) import, class (B) class,import,package (D) package,class,import ( ) 定义以及 package 正确的顺序是: (B) float f = 45.0; (D) char c = // 符号错 AB 作为前缀就可以调用它,该方法头的形式为 方法来完成一些画图操作。 (D) Unicode 只能 在所在类中使用 则该成员变量必须使用的修饰是

java笔试题及答案.doc

java笔试题及答案 有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly 2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口) 答:匿名的内部类是没有名字的内部类。不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Sta ti cNestedC las s 和Inner Clas s 的不同答: Nes tedC lass (一般是C+ +的说法),In ne rClass (—般是JAVA的说法)。J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(I

nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象 4、和的区别 答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and ) 5、Coll ect ion 和Col lect ions 的区别 答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List. Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,a ssertion 就是在程序中的一条语句,它对一个boolea n表 达式进行检查,一个正确程序必须保证这个bool ean表达 式的值为tr ue;如果该值为fal se,说明程序己经处于不正确的状态下,系统将给出警告或退出。一般来说,

Java复习习题答案

P13 2.参照例1-2编写一个java applet程序,程序能在浏览器中显示“你好,Hello”。(见p11例1-2) P24 2.参照2-4编写一个java应用程序,用户从键盘只能输入整数,程序输出这些整数的乘积。 import java.util.*; public class ZuoYe2_2{ public static void main (String args[ ]){ Scanner reader=new Scanner(System.in); long chengji=1; int m=0; while(reader.hasNextInt()){ int x=reader.nextInt(); m=m+1; chengji=chengji*x; } System.out.println(m+"个数的乘积为"+chengji); } } P41 1.有一个函数Y=-1+2x,x<0;-1,x=0;-1+3x,x>0编写一个java应用程序,从键盘输入一个X值,程序输出Y值。import java.util.*; public class ZuoYe3_1{ public static void main (String args[ ]){ Scanner reader=new Scanner(System.in); double y=0,x=0; x=reader.nextDouble(); if(x<0) y=-1+2*x; else if(x==0) y=-1; else if(x>0) y=-1+3*x; System.out.println(y); } } P41 2.编写一个java程序,使用while循环计算1-1000之间能被3和7同时整除的整数之和。 public class ZuoYe3_2{ public static void main(String args[]){ int sum=0,m=3,n=7,a=1; while(a<=1000){ if(a%m==0&&a%n==0) sum=sum+a; a++; } System.out.println("sum="+sum); } } P41 3.编写一个java程序,使用for循环计算8+88+888+8888+88888…的前十项和。 public class ZuoYe3_3{ public static void main(String args[]) {

JAVA语言程序设计期末考试试题及答案

《JA V A语言程序设计》期末考试试题及答案1(应考必备题库) 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。 4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。 5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage 的包的语句是package MyPackage ; , 该语句应该放在程序的位置为:应该在程序第一句。 7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120。

java试题及答案

一、单项选择题(每题2分,共20分) 1、Java语言是( D ) A、面向问题的解释型高级编程语言 B、面向机器的低级编程语言 C、面向过程的编译型高级编程语言 D、面向对象的解释型高级编程语言 2、下列哪个是合法的Java标识符( A )? A.&2 B.123.9 C._2# D.public 3、编译Java Application 源程序文件产生的字节码文件的扩展名为( B )。 A.java B.class C.html D.exe 4、有关类Demo,哪句描述是正确的( A )? public class Demo extends Base{ private int count; public Demo(){ System.out.println("A Demo object has been created"); } protected void addOne() {count++; } } A.当创建一个Demo类的实例对象时,count的值为0。 B.当创建一个Demo类的实例对象时,count的值是不确定的。 C.超类对象中可以包含改变count 值的方法。 D.Demo的子类对象可以访问count。 5、Java Application源程序的主类是指包含有( A )方法的类。 A、main方法 B、toString方法 C、init方法 D、actionPerformed方法 6、如果任何包中的子类都能访问超类中的成员,那么应使用哪个限定词?( C ) A.public B.private C.protected D.transient 7、在Java中,存放字符串常量的对象属于( B )类对象。 A、Character B、String C、StringBuffer D、Vector 8、在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。 A、private B、protected C、private protected D、public 9、在编写异常处理的Java程序中,每个catch语句块都应该与( C )语句块对 应,使得用该语句块来启动Java的异常处理机制。 A.if - else B.switch C.try D.throw 10、以下由do-while语句构成的循环执行的次数是( B ) int k = 0; do { ++k; }while ( k < 1 ); A、一次也不执行 B、执行1次 C、无限次 D、有语法错,不能执行

java笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

JAVA复习题 答案版

一、选择题 1.Java application中的主类需包含main方法,main方法的返回类型是什么(D ) A、int B、float C、double D、void 2、异常包含下列那些内容D A)程序中的语法错误B)程序的编译错误 C)程序执行过程中遇到的事先没有预料到的情况D)程序事先定义好的可能出现的意外情况 3、.函数重载是指A A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的函数名,并且函数的返回类型相同 4、.指出下列程序运行的结果B publicclassExample{ Stringstr=newString(″good″); char[]ch={′a′,′b′,′c′}; publicstaticvoidmain(Stringargs[]){ Exampleex=newExample(); ,ex,ch); } publicvoidchange(Stringstr,charch[]){ str=″testok″; ch[0]=′g′; } } andabc andgbc okandabc okandgbc 5. 下列哪个选项的java源文件代码片段是不正确的B A.package testpackage; public class Test{ } B.import .*; package testpackage; public class Test{ } C.import .*; class Person{ } public class Test{ } D.import .*; import .*; public class Test{ } 6. 以下程序段执行后将有(C)个字节被写入到文件afile中。 try{ FileOutputStream fos=new FileOutputStream(“”); DataOutputStream dos=new DataOutputStream(fos);

java期末考试复习题及答案

《Java程序设计》课程试卷 1.使用Java语言编写的源程序保存时的文件扩展名是( B )。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为( C )。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。 (A)封装(B)继承(C)覆盖(D)重载 5.在类的定义中构造函数的作用是( D )。 (A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( B )。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是( A )。 (A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符( D )。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为( B ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java

相关文档