文档库 最新最全的文档下载
当前位置:文档库 › JAVA题库及答案

JAVA题库及答案

JAVA题库及答案
JAVA题库及答案

第1章 Java语言概述

习题一

一、简答题

1.Java语言的诞生日是哪一天?它有哪些特点与优势?

2.Java语言程序分为哪几种?Java Application程序和Java Applet程序的主要区别是什么?

3.Java Application程序在结构上有哪些特点?如何编译、运行?被编译后生成什么文件?该文件机器可以直接识别吗?如何执行?

4.安装JDK后如何对JAVA_HOME、PATH和CLASSPATH环境变量进行设置?它们的作用是什么?

5.Java程序在书写上应注意哪些事项?有哪些编码规范?

6.为什么要对程序进行注释?Java中有哪几种注释?文档注释符与多行注释符有何不同?

二、选择题

1.下面关于Java Application 程序结构特点描述中,错误的是(D)。

A.一个Java Application程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。

B.Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java。

C.组成Java Application程序的多个类中,有且仅有一个主类。

D.一个.java文件中定义多个类时,允许其中声明多个public类。

2.编译Java程序后生成的面向JVM的字节码文件的扩展名是(B)。

A..java B..class C..obj D..exe

3.下面关于Java 语言特点的描述中,错误的是(A)。

A.Java是纯面向对象编程语言,支持单继承和多继承。

B.Java支持分布式的网络应用,可透明地访问网络上的其他对象。

C.Java支持多线程编程。

D.Java程序与平台无关、可移植性好。

4.Java SE的命令文件(java、javac、javadoc等)所在目录是(C)。

A.%JAVA_HOME%\jre B.%JAVA_HOME%\lib

C.%JAVA_HOME%\bin D.%JAVA_HOME%\demo

5.下列关于运行字节码文件的命令行参的描述中,正确的是(C)。

A.命令行的命令字被存放在args[0]中。

B.数组args[]的大小与命令行的参数的个数无关。

C.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中。

D.第一个命令行参数被存放在args[1]中。

6.paint()方法使用哪种类型的参数? (A)

A.Graphics B.Graphics2D C.String D.Color

7.Java的核心包中,提供编程应用的基本类的包是(B)。

A.java.util B.https://www.wendangku.net/doc/9811271731.html,ng C.java.applet D.java.rmi

8.编译Java程序时,用于指定生成class文件位置的选项是(A)。

A.-d B.-g C.-verbose D.-nowarn

9.下列标识符(名字)命名原则中,正确的是(C)。

A.类名的首字母小写 B.接口名的首字母小写

C.常量全部大写 D.变量名和方法名的首字母大写

10.下面哪些选项是正确的main方法说明?(D)

A.void main() B.private static void main(String args[]) C.public main(String args[]) D.public static void main(String args[]) 11.下面哪种注释方法能够支持javadoc命令?(C)

A.// B./*...*/ C./**...*/ D./**...**/

三、判断题

1.Java语言具有较好的安全性和可移植性及与平台无关等特性。(√)

2.Java语言的源程序不是编译型的,而是编译解释型的。(√)

3.Java Application程序中,必有一个主方法main(),该方法有没有参数都可以。(√)

4.java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。(√)5.Java程序中不区分大小写字母。(×)

6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。(√)7.System类中的println()方法分行显示信息,而print()方法不分行显示信息。(√)

8.当前路径的标识是“.”。(√)

9.java命令不区分大小写,而javac命令区分大小写。(×)

10.printf()和 format()方法使用指定格式字符串和参数,将格式化字符串写入到Pr intStream类型的输出流(System.out对象)中。(√)

11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。(×)

四、编程题

1.分别用UltraEdit、NetBeans、Eclipse、JBuilder和JCreator编写一个Java App lication程序,使该程序运行后输出字符串“Nothing is too difficult if you put you r head into it .”。

2.编写一个具有交互功能的Java Application程序,提示从键盘输入应付金额和实付金额后,计算并输出找零或欠付金额。

3.编写一个Java Applet程序,使该程序运行后输出字符串“Don’t put off till tom orrow what should be done today.”。

第2章 Java语言基础

习题二

一、填空题

1.已知:int a =8,b=6; 则:表达式++a-b++的值为(3)。

2.已知:boolean b1=true,b2; 则:表达式! b1 && b2 ||b2的值为(false)。

3.已知:double x=8.5,y=5.8; 则:表达式x++>y--值为(true)。

4.已知:int a[ ]={2,4,6,8}; 则:表达式(a[0]+=a[1])+ ++a[2]值为(13)。

5.执行int x, a = 2, b = 3, c = 4; x = ++a + b++ + c++; 结果是(x=10,a=3, b=4,c=5)。

6.Java中的显式类型转换既能(从低类型向高类型转换)也能从高类型向低类型转换,而隐式类型转换只有前者。

7.在Java中,字符串和数组是作为(对象)出现的。

8.执行下列程序代码的输出结果是(10,11,11)。

int a = 10; int i, j; i = ++a; j = a--;

System.out.printf("%d,%d,%d", a, i, j);

9.执行完boolean x=false; boolean y=true; boolean z=(x&&y)&&(!y) ; int f=z= =false?1:2;

这段代码后,z与f的值分别是(false)和(1)。

二、选择题

1.下面哪些标识符在Java语言中是合法的?(AB)

A.persons$ B.TwoUsers C.*point D.instanceof F.end-line

2.下列(D)是合法标识符。

A.2end B.-hello C.=AB D.整型变量

3.已知int i = 2 147 483 647; ++i; 则i的值等于(A)。

A.- 2 147 483 648 B.2 147 483 647 C.2 147 483 648 D.-1 4.若x = 5,y = 8,则表达式x|y的值为(B)。

A.3 B.13 C.0 D.5

5.若定义有变量float f1,f2 = 8.0F,则下列说法正确的是(B)。

A.变量f1,f2均被初始化为8.0 B.变量f1没有被初始化,f2被初始化为8.0 C.变量f1,f2均未被初始化 D.变量f2没有被初始化,f1被初始化为8.0 6.基本数据类型short的取值范围是(B)。

A.(-256)~ 255 B.(-32 768)~ 32 767 C.(-128)~ 127 D.0~65 5 35

7.下列(B)是不能通过编译的语句。

A.double d = 545.0; B.char a1 = “c”; C.int i = 321; D.float f1 =4 5.0f;

8.若定义有short s; byte b; char c; 则表达式s * b + c的类型为(C)。

A.char B.short C.int D.byte

9.下列循环语句的循环次数是(B)。

int i=5;

do { System.out.println(i--);

i--;

}while(i!=0);

A.5 B.无限 C.0 D.1

10.下列代码哪几行会出错?(C)

1) public void modify() {

2) int I, j, k;

3) I = 100;

4) while (I > 0) {

5) j = I * 2;

6) System.out.println(" The value of j is " + j);

7) k = k + 1;

8) I--;

9) }

10 }

A.line 4 B.line 6 C.line 7 D.line 8

11.下列关于数组的定义形式,哪些是错误的?(ABC)

A.int[ ]c=new char[10]; B.int[ ][3]=new int[2][ ];

C.int[ ]a; a=new int; D.char b[ ]; b=new char[80];

12.执行String[] s=new String[10];语句后,哪些结论是正确的?(BC)

A.s[0] 为未定义 B.s.length 为10

C.s[9] 为 null D.s[10] 为 ""

13.下列关于Java语言的数组描述中,错误的是(D)。

A.数组的长度通常用length表示 B.数组下标从0开始

C.数组元素是按顺序存放在内存的 D.数组在赋初值和赋值时都不判界

14.下面的表达式哪些是正确的? (ACE)

A.String s="你好";int i=3; s+=i;

B.String s="你好";int i=3; if(i==s){ s+=i};

C.String s="你好";int i=3; s=i+s;

D.String s="你好";int i=3; s=i+;

E. String s=null; int i=(s!=null)&&(s.length()>0)?s.length():0;

15.下列代表十六进制整数的是(C)。

A.012345 B.2008 C.0xfa08 D.fb05

16.在switch(expression)语句中,expression的数据型不能是(C)。

A.char B.short C.double D.byte

17.下列说法正确的是(AC)。

A.表达式“1+2>3”的值是false B.表达式“1+2||3”是非法的表达式

C.表达式“i+j=1”是非法的表达式D.表达式“1+2>3”的值是true

18.指出正确的表达式(B)。

A.byte=128; B.long l=0xfffL; C.Boolean=null; D.double=0.9239d;

19.public class T18 {

static int arr[] = new int[10];

public static void main(String a[]) {

System.out.println(arr[1]);

}

}

哪个语句是正确的?(C)

A.编译时将产生错误 B.编译时正确,运行时将产生错误

C.输出零 D.输出空

20.若String s = "hello"; String t = "hello"; char c[] = {'h','e','l','l', 'o'} ; 则下列哪些表达式返回true?(AB)

A.s.equals(t); B.t.equals(new String("hello"));

C.t.equals(c); D.s==t;

21.执行下面的代码段:

switch(m){ case 0: System.out.println("case 0");

case 1: System.out.println("case 1"); break;

case 2:

default: System.out.println("default");

}

下列m的哪些值将引起"default"的输出?(CD)

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

22.下列关于“<<”和“>>”的运算,哪些是正确的?(AC)

A.0000 0100 0000 0000 0000 0000 0000 0000<<5 的运行结果是

1000 0000 0000 0000 0000 0000 0000 0000

B.0000 0100 0000 0000 0000 0000 0000 0000<<5的运行结果是

1111 1100 0000 0000 0000 0000 0000 0000

C.1100 0000 0000 0000 0000 0000 0000 0000>>5的运行结果是

1111 1110 0000 0000 0000 0000 0000 0000

D.1100 0000 0000 0000 0000 0000 0000 0000>>5的运行结果是

0000 0110 0000 0000 0000 0000 0000 0000

三、判断题

1.Java语言使用的是Unicode字符集,每个字符在内存中占8位。(×)

2.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。(√)3.所有的变量在使用前都必须进行初始化。(×)

4.已知byte i = (byte)127; i = i +1;这两个语句能被成功编译。(√)

5.String str="abcdefghi"; char chr=str.charAt(9); (×)

6.char[] chrArray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrArray [6]; (√)

7.int i,j; boolean booleanValue=(i==j); (×)

8.int intArray[]={0,2,4,6,8}; int length=int Array.length();(×)

9.String str="abcedf"; int length=str.length; (×)

10.short shortValue=220; byte byteValue=shortValue; (×)

11.int[] intArray[60]; (×)

12.char[] str="abcdefgh"; (×)

13.说明或声明数组时不分配内存大小,创建数组时分配内存大小。(√)

14.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。(√)四、分析题

1.分析下面的程序,写出运行结果。

public class Exercises5_1 {

String str = new String("Hi !");

char[] ch = { 'L', 'i', 'k', 'e' };

public static void main(String args[]) {

Exercises5_1 ex = new Exercises5_1();

ex.change(ex.str, ex.ch);

System.out.print(ex.str + " ");

System.out.print(ex.ch);

}

public void change(String str, char ch[]) {

str = "How are you";

ch[1] = 'u';

}

}

运行结果是:(Hi ! Luke)

2.分析下面的程序,写出运行结果。

public class Exercises5_2 {

public static void main(String[] args) {

int n = 1, m, j, i;

for (i = 3; i <= 30; i += 2) {

m = (int) Math.sqrt((double) i);

for (j = 2; j <= m; j++)

if ((i % j) == 0)

break;

if (j >= m + 1) {

System.out.print(i + " ");

if (n % 5 == 0)

System.out.print("\n");

n++;

}

}

}

}

运行结果是:()

3 5 7 11 13

17 19 23 29

3.分析下面的程序,写出运行结果:

public class Exercises5_3 {

public static void main(String args[]) {

String str1 = new String();

String str2 = new String("String 2");

char chars[] = { 'a', ' ', 's', 't', 'r', 'i', 'n', 'g' };

String str3 = new String(chars);

String str4 = new String(chars, 2, 6);

byte bytes[] = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 };

String str5 = new String(bytes);

StringBuffer strb = new StringBuffer(str3);

System.out.println("The String str1 is " + str1);

System.out.println("The String str2 is " + str2);

System.out.println("The String str3 is " + str3);

System.out.println("The String str4 is " + str4);

System.out.println("The String str5 is " + str5);

System.out.println("The String strb is " + strb);

}

}

运行结果是:()

The String str1 is

The String str2 is String 2

The String str3 is a string

The String str4 is string

The String str5 is 0123456789

The String strb is a string

五、改错题

1.找出下面代码的错误部分,说明错误类型及原因,并更正。

public int m1 (int number[20]){

number = new int[20];

for(int i=0;i

number[i] = number[i-1] + number[i+1];

return number;

}

改正后程序:

public int[] m1(int number[]) {

// number = new int[20];

for (int i = 1; i < number.length - 1; i++)

number[i] = number[i - 1] + number[i + 1];

return number;

}

2.找出下面代码的错误部分,说明错误类型及原因,并更正。

(1)int x = 1;

while (x <= 10);

{ i++; }

改正后程序:

int x = 1, i = 0;

while (x <= 10)

{

i++;

}

(2) switch (n) {

case 1: system.out.println(""The name is 1");

case 2: system.out.println(""The name is 2");

break;

}

改正后程序:

int n = 1;

switch (n) {

case 1:

System.out.println("The name is 1");

break;

case 2:

System.out.println("The name is 2");

break;

}

六、简答题

1.Java的关键字有哪些?

2.标识符有何用途?Java中定义标识符的规则有哪些?

3.Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点是什么?字节型和字符型数据有何区别?长度为32位的基本数据类型有哪些?

4.整型常量有哪三种表示形式?浮点型变量有哪两种表示形式?布尔型常量可以转换成其他数据类型吗?

5.在Java 语言中,表示字符串常量和字符常量时应注意哪些问题?

6.在Java转义字符表示中,ASCII码值对应的字符如何表示?Unicode字符集中对应的字符如何表示?

7.什么是表达式语句?什么是空语句?什么是块语句?可以把块语句视为一条语种吗?

8.if语句中,<条件表达式>一定是逻辑型表达式吗? switch语句中,<语句序列>里一定有break语句吗?

9.while循环语句与do-while循环语句有何不同?

10.for循环语句中,关键字for后面括号内的表达式是否可以使用多个用逗号分隔的表达式?for-each语句的特点是什么?

11.break语句和continue语句有哪两种形式?

12.创建数组元素为基本数据类型的数组时,系统都会指定默认值吗?布尔型的默认值是什么?

13.在Java中怎样定义和使用一维数组、二维数组?

14.字符串类String 和StringBuffer类有何不同?

15.Java中的数组实际上是一个隐含的“数组类”的对象,而数组名实际上是该对象的一个引用,这种说法对吗?

16.字符数组与字符串有本质的不同,而字符串实际上是String类和StringBuffer 类的对象,这种说法对吗?

七、编程题

1.编写一个程序,求1!+2!+…+10!的值。

2.编程求100以内的全部素数。

3.使用异或运算符“^”实现两个整数的交换。

4.编写一个程序,打印输出下列5×5螺旋方阵:

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

5.给出任意两个日期,编程计算它们相距的天数。

6.编程输出下列图形:

*

***

*****

***

*

7.编程验证哥德巴赫猜想,即任何大于6的偶数可以表示为两素数之和,如10=3+7。

8.百鸡百钱问题,公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,公鸡、母鸡和小鸡各买多少?

9.编写一个程序,利用数组把10个数用直接交换方法从小到大排序。

10.编写一个程序,用选择法对数组a[]={9, 5, 3, 12, 22, 35, 88, 11, 90, 1}进行由小到大的排序。

11.找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有)。

12.编写一个程序,打印输出10行杨辉三角形。

13.编写一个程序,实现字符串的大小写字母的相互转换。

14.编写一个程序,找出两个字符串中所有相同的字符。

15.编写一个程序,对字符串数组按字典序重新排列。

16.编写一个程序,分析输出字符串中的单词,并统计单词个数。

17.编写一个程序,将字符串“.ymene tsrow sih si nam yrevE”反转。

第3章 Java语言面向对象基础

习题三

一、填空题

1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。

2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。

3.模型应具有(抽象性)、(可理解性)、(精确性)、(确定性)和廉价性等基本特性。

4.UML定义了(用例图)、(静态图)、(交互图)、行为图和实现图五类模型图。

5.在UML类图中分别用(+)、(#)、(~)和(-)表示属性与方法的公有、保护、默认和私有访问控制权限。

6.在UML中,类之间主要有(关联)、(依赖)、(聚集)、(泛化)和实现五种关系。

7.构造方法的方法名与(类名)相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个(默认构造)方法。

8.在方法体内定义的变量是(局部变量),其前面不能加(public),且必须(初始化)。

9.数组元素作实参时对形参变量的数据传递是(单向值传递),数组名作实参时对形参变量的数据传递是(双向引用传递)。

10.对象作方法形参时,方法实参也用对象,实现(引用)调用。

11.(new)是一个特殊的方法,用于创建一个类的实例。

12.对象拷贝有(对象引用复制)、(浅复制)和(深复制)三种。

13.(类)方法不能直接访问其所属类的(实例)变量和(实例)方法,只可直接访问其所属类的(类)变量和(类)方法。

14.(类)变量在内存中只有一个拷贝,被该类的所有对象共享;每当创建一个实例,就会为(实例)变量分配一次内存,(实例)变量可以在内存中有多个拷贝,互不影响。

15.Java使用固定于首行的(package)语句来创建包。

16.在运行时,由java解释器自动引入,而不用import语句引入的包是(https://www.wendangku.net/doc/9811271731.html,ng)。

17.发布Java应用程序或类库时,通常可以使用JDK中自带的(JAR)命令打包。二、简答题

1.名词解释:OO、OOSE、OOA、OOD、OOP;抽象、对象、类、实例、方法、属性、消息、接口、封装、继承、多态性;模型、UML、类图、对象图、用例图、顺序图、协作图、状态图、活动图、包图、构件/组件图、部署图。

2.简述面向对象的基本思想、主要特征和基本要素。

3.为什么要对类进行封装?封装的原则是什么?

4.类的封装性、继承性和多态性各自的内涵是什么?

5.简述依赖、关联和聚集的区别。

6.什么是对象?什么是类?二者有何关系?

7.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?

8.Java中成员变量定义的一般格式是什么?成员变量有哪些修饰符?

9.Java中成员方法定义的一般格式是什么?成员方法有哪些修饰符?

10.简述构造方法的特点与作用。

11.Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?

12.什么是类变量(静态变量)?什么是实例变量?它们的存储特性、访问方法、主要区别是什么?

13.什么是类方法(静态方法)?什么是实例方法?它们的存储特性、访问方法、主要区别是什么?

14.什么是包?如何创建包?如何引用包?

15.Import语句和package语句的功能分别是什么?

16.举例说明JAR包的创建、加载与运行方法。

三、选择题

1.下面关于封装性的描述中,错误的是(D)。

A.封装体包含属性和行为 B.被封装的某些信息在外不可见

C.封装提高了可重用性 D.封装体中的属性和行为的访问权限相同

2.下面关于类方法的描述,错误的是(B)。

A.说明类方法使用关键字static B.类方法和实例方法一样均占用对象的内存空间C.类方法能用实例和类名调用 D.类方法只能处理类变量或调用类方法

3.下面关于包的描述中,错误的是(A)。

A.包是若干对象的集合B.使用package语句创建包

C.使用import语句引入包D.包分为有名包和无名包两种

4.下述哪些说法是正确的?(BC)

A.用static关键字声明实例变量B.实例变量是类的成员变量

C.局部变量在方法执行时创建D.局部变量在使用之前必须初始化

5.下面哪些代码段是正确的Java源程序?(BCD)

A.import java.io.*; B.import java.io.*;

package testpackage; class Person{/* do something... */}

public class Test{/* do something... */} public class Test{/* do so mething... */}

C.import java.io.*; D.package testpackage;

import java.awt.*; public class Test{/* do somethin g... */}

public class Test{/* do something... */}

四、判断题

1.类是一种类型,也是对象的模板。(√)

2.类中说明的方法可以定义在类体外。(×)

3.实例方法中不能引用类变量。(×)

4.创建对象时系统将调用适当的构造方法给对象初始化。(√)

5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值。(√)

6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。(√)

7.对象可作方法参数,对象数组不能作方法参数。(×)

8.class是定义类的惟一关键字。(√)

9.Java语言会自动回收内存中的垃圾。(√)

五、分析题

分析下面的程序,写出运行结果。

import java.awt.*;

import java.applet.*;

class MemberVar {

static int sn = 30;

final int fn;

final int fk = 40;

MemberVar() {

fn = ++sn;

}

}

public class Exercises5_1 extends Applet {

public void paint(Graphics g) {

MemberVar obj1 = new MemberVar();

MemberVar obj2 = new MemberVar();

g.drawString("obj1.fn=" + obj1.fn, 20, 30);

g.drawString("obj1.fk=" + obj1.fk, 20, 50);

g.drawString("obj2.fn=" + obj2.fn, 20, 70);

g.drawString("obj2.fk=" + obj2.fk, 20, 90);

}

}

运行结果是:()

obj1.fn=31

obj1.fk=40

obj2.fn=32

obj2.fk=40

六、改错题

1.下面的程序中有若干个语法错误,找出后请改正。

public class MyMainClass{

public static void main( ) {

TheOtherClass obj = new TheOtherClass("John Smith","Male","UK");

System.out.println(https://www.wendangku.net/doc/9811271731.html,+' '+obj.gender+' '+obj.nationality);

}

System.out.println("The end of the program! ")

}

public class TheOtherClass{

private String name,gender,nationality;

public TheOtherClass(String name,String gender,String nationality)

{

https://www.wendangku.net/doc/9811271731.html,=name;

this.gender=gender;

this.nationality=nationality;

}

}

改正后程序:

public class MyMainClass {

public static void main(String args[]) {

TheOtherClass obj = new TheOtherClass("John Smith", "Male", "UK");

System.out.println(https://www.wendangku.net/doc/9811271731.html, + ' ' + obj.gender + ' ' + obj.nationalit y);

System.out.println("The end of the program! ");

}

}

class TheOtherClass {

public String name, gender, nationality;

public TheOtherClass(String name, String gender, String nationality) {

https://www.wendangku.net/doc/9811271731.html, = name;

this.gender = gender;

this.nationality = nationality;

}

}

2.下面的程序中有若干个语法错误,找出后请改正。

public class Car{

private String carName;

public int mileage;

private static final int TOP_SPEED=50;

abstract void alert();

public static int getTopSpeed(){

return TOP_SPEED;

}

public static void setCarName(){

carName="Bensi";

}

public static void setMileage(){

mileage=180;

}

}

改正后程序:

public abstract class Car {

private String carName;

public int mileage;

private static final int TOP_SPEED = 50;

abstract void alert();

public static int getTopSpeed() {

return TOP_SPEED;

}

public void setCarName() {

carName = "Bensi";

}

public void setMileage() {

mileage = 180;

}

}

七、编程题

1.设计(用UML的类图表示)并实现一点类Point,该类的构成包括点的x和y两个坐标,其构造方法、设置和修改坐标、求解两点距离的方法等,编写应用程序生成该类的对象并对其进行操作。

2.设计(用UML的类图表示)并实现一个矩形类Rectangle,包括其构造方法、求解矩形面积和周长的方法等,实例化后输出相应的信息。

3.计算出Fibonacci数列的前n项,Fibonacci数列的第一项和第二项都是1,从第三项开始,每项的值都是该项的前两项之和。即:

F(n) = F (n-1) + F(n-2) n≥3

F(1) = F(2) = 1 n=1,2

4.参照“图3-4”实现Student类的定义,然后生成该类的对象后进行相关操作。

第4章 Java语言面向对象高级程序设计

习题四

一、填空题

1.在面向对象系统中,消息分为(公有消息)和(私有消息)两类。

2.类的访问控制符有(public)和(默认default)两种,(public)类具有跨包访问性而(default)类不能被跨包访问。

3.类成员的访问控制符有(public)、(protected)、(private)和默认四种。

4.public类型的类成员可被(同一类)、同一包中的(子类与非子类)和不同包中的(子类与非子类)的代码访问引用。

5.protected类型的类成员可被(同一类)、同一包中的(子类与非子类)和不同包中的(子类)的代码访问引用。

6.default类型的类成员只能被(同一类)、同一包中的(子类与非子类)的代码访问引用。

7.private类型的类成员只能被其所在类中的代码访问引用,它只具有(类)域访问性。

8.系统规定用(this())表示当前类的构造方法,用(super())表示直接父类的构造方法,在构造方法中两者只能选其一,且须放在第一条语句。

9.若子类和父类在同一个包中,则子类继承父类中的(public)、(protected)和(默认)成员,将其作为子类的成员,但不能继承父类的(private)成员。

10.若子类和父类不在同一个包中,则子类继承了父类中的(public)和(protected)成员,将其作为子类的成员,但不能继承父类的(默认)和(private)成员。

11.(子类对象)直接赋值给(父类对象)时,子类对象可自动转换为父类对象,(父类对象)赋值给(子类对象)时,必须将父类对象强制转换为子类对象。

12.Java的多态性主要表现在(方法重载)、(方法覆盖)和(变量覆盖)三个方面。

13.重写后的方法不能比被重写的方法有(更严格)的访问权限,重写后的方法不能比被重写的方法产生更多的异常。

14.Java语言中,定义子类时,使用关键字(extends)来给出父类名。如果没有指出父类,则该类的默认父类为(Object类)。

15.Java语言中,重载方法的选择是在编译时进行的,系统根据(参数个数)、(参数类型)和参数顺序寻找匹配方法。

16.实现接口中的抽象方法时,必须使用(完全相同)的方法头,并且还要用(publi c)修饰符。

17.接口中定义的数据成员均是(常量数据成员),所有成员方法均为(抽象方法)方法,且没有(构造)方法。

18.this代表(当前对象自身)的引用,super表示的是当前对象的直接父类对象。

19.如果一个类包含一个或多个abstract方法,则它是一个(abstract)类。

20.Java不直接支持多继承,但可以通过(接口)实现多继承。类的继承具有(传递)性。

21.没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能改变值的量称为常量,又称为(最终变量)。

22.一个接口可以通过关键字extends来继承(多个)其他接口。

23.接口中只能包含(public static final)类型的成员变量和(public abstract)类型的成员方法。

24.一般地,内部类又分为定义在方法体外的(成员类)和定义在方法体内的(局部类)两种。

25.静态内部类可直接通过外部类名引用,其一般格式是(new 外部类名.内部类构造方法( );)。

26.匿名类一般分为(语句匿名类)和(参数匿名)类两种。

27.面向对象的软件设计中,根据目的不同模式可分为(创建型)、(结构型)和(行为型)三种。

二、简答题

1.什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单继承?什么是多重继承?

2.如何创建一个类的子类?

3.若在一个public类中的成员变量及成员方法的访问控制符为protected,则此类中的成员可供什么样的包引用?

4.什么是多态?使用多态有什么优点?Java中的多态有哪几种?重载方法与覆盖方法分别属于哪种多态?

5.什么是重载方法?什么是覆盖方法?它们的主要区别是什么?

6.什么是成员变量的继承?什么是成员变量的覆盖?

7.举例说明什么是上转型对象,上转型对象的操作原则是什么?

8.简述接口定义的一般格式。

9.什么是接口?如何定义接口?接口与类有何区别?

10.一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?

11.比较接口与抽象类的异同。

12.什么是抽象类?什么是抽象方法?各自有什么特点?

13.什么是最终类?什么是最终变量?什么是最终方法?

14.简述内部类的类型。

15.简述在外部类的内部与外部对实例成员类实例化的方法。

16.简述定义语句匿名类和参数匿名的一般格式。

17.什么是适配器模式?什么是装饰模式?

三、选择题

1.下面关于类的继承性的描述中,错误的是(C)。

A.继承是在已有的基础上生成新类的一种方法

B.Java语言要求一个子类只有一个父类

C.父类中成员的访问权限在子类中将被改变

D.子类继承父类的所有成员,但不包括私有的成员方法

2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(B)。

A.默认 B.protected C.private D.public

3.在类的修饰符中,规定只能被同一包类所使用的修饰符是(B)。

A.public B.默认C.final D.abstract

4.下列关于子类继承父类的成员描述中,错误的是(C)。

A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。

B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。

C.子类中继承父类中的所有成员都可以访问。

D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。

5.定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,则下面哪些声明是正确的?(AB)

A.public class MyClass extends Object B.public class MyClass

C.private class MyClass extends Object D.class MyClass extends Object 6.下列关于继承性的描述中,错误的是(C)。

A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承 D.Java通过接口可使子类使用多个父类的成员7.下列关于抽象类的描述中,错误的是(C)。

A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的

C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类

8.设有如下类的定义:

public class parent {

int change() {}

}

class Child extends Parent { }

则,下面哪些方法可加入Child类中?(AB)

A.public int change(){ } B.int chang(int i){ }

C.private int change(){ } D.abstract int chang(){ }

9.下列关于构造方法的叙述中,错误的是(D)。

A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明

C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承

10.下面叙述中,错误的是(C)。

A.子类继承父类 B.子类能替代父类 C.父类包含子类 D.父类不能替代子类11.下列对多态性的描述中,错误的是(B)。

A.Java语言允许方法重载与方法覆盖 B.Java语言允许运算符重载

C.Java语言允许变量覆盖 D.多态性提高了程序的抽象性和简洁性12.下面关于接口的描述中,错误的是(A)。

A.一个类只允许继承一个接口 B.定义接口使用的关键字是interface

C.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现

D.接口实际上是由常量和抽象方法构成的特殊类

13.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?(C)

A.ArrayList myList=new Object(); B.ArrayList myList=new List();

C.List myList=new ArrayList(); D.List myList=new List();

14.下列哪些方法与方法public void add(int a){}为合理的重载方法?(A CD)A.public void add(char a) B.public int add(int a)

C.public void add(int a,int b) D.public void add(float a)

15.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是(C)。

A.public int MAX_LENGTH=100; B.final public int MAX_LENGTH=100;

C.public final int MAX_LENGTH=100; D.final int MAX_LENGTH=100;

四、判断题

1.Java语言中,构造方法是不可以继承的。(√)

2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。(×)

3.抽象方法是一种只有说明而无具体实现的方法。(√)

4.Java语言中,所创建的子类都应有一个父类。(√)

5.调用this 或super构造方法的语句必须放在第一条语句。(√)

6.一个类可以实现多个接口,接口可以实现“多重继承”。(√)

7.实现接口的类不能是抽象类。(√)

8.使用构造方法只能给实例成员变量赋初值。(√)

9.Java 语言不允许同时继承一个类并实现一个接口。(×)

五、分析题

1.分析下面的程序,写出运行结果。

public class Exercises6_1 extends TT{

public void main(String args[]){

Exercises6_1 t = new Exercises6_1("Tom");

}

public Exercises6_1(String s){

super(s);

System.out.println("How do you do?");

}

public Exercises6_1(){

this("I am Tom");

}

class TT{

public TT(){

System.out.println("What a pleasure!");

}

public TT(String s){

this();

System.out.println("I am "+s);

}

}

运行结果是:()

What a pleasure!

I am Tom

How do you do?

2.分析下面的程序,写出运行结果。

public class Exercises6_2 {

private static int count;

private String name;

public class Student {

private int count;

private String name;

public void Output(int count) {

count++;

this.count++;

Exercises6_2.count++;

Exercises6_2.this.count++;

System.out.println(count + " " + this.count + " "

+ Exercises6_2.count + " " + Exerci ses6_2.this.count++);

}

}

public Student aStu() {

return new Student();

}

public static void main(String args[]) {

Exercises6_2 g3 = new Exercises6_2();

g3.count = 10;

Exercises6_2.Student s1 = g3.aStu();

s1.Output(5);

}

}

运行结果是:()

3.分析下面的程序,写出运行结果。

class Exercises6_3 {

class Dog {

private String name;

private int age;

public int step;

Dog(String s, int a) {

name = s;

age = a;

step = 0;

}

public void run(Dog fast) {

fast.step++;

}

}

public static void main(String args[]) {

Exercises6_3 a = new Exercises6_3();

Dog d = a.new Dog("Tom", 3);

d.step = 29;

d.run(d);

System.out.println(" " + d.step);

}

}

运行结果是:()

30

4.分析下面的程序,写出运行结果。

class Aclass { void go() { System.out.println("Aclass"); } } public class Bclass extends Aclass {

void go() { System.out.println("Bclass"); }

public static void main(String args[]) {

Aclass a = new Aclass();

Aclass a1 = new Bclass();

a.go();

a1.go();

} }

运行结果是:()

Aclass

Bclass

六、改错题

1.找出下面代码的错误部分,说明错误类型及原因,并更正之。

public class Car {

private String carName;

public int mileage;

private static final int TOP_SPEED = 200;

abstract void alert();

public static int getTopSpeed() {

return TOP_SPEED;

}

public static void setCarName() {

carName = "奥迪";

}

public static void setMileage() {

mileage = 180;

}

}

错误:因为含有抽象方法的类,必须是抽象类;静态方法只能访问静态成员。更正:

public abstract class Car {

private String carName;

public int mileage;

private static final int TOP_SPEED = 200;

abstract void alert();

public static int getTopSpeed() {

return TOP_SPEED;

}

public void setCarName() {

carName = "奥迪";

}

public void setMileage() {

mileage = 180;

}

}

2.下列代码不能编译的原因是:()。

class A {

private int x;

public static void main(String args[]) { new B(); }

class B { B() {System.out.println(x); }

}

}

因为在A类的main方法中,还没有A的实例就要试图生成内部类的实例。

更正如下:

javaSE选择题50道判断题30道

一、不定项选择题:(50题) 1.下列关于JDK、JRE和JVM的描述,正确的是?D A.JRE中包含了JDK,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JDK中包含了JRE,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 2.以下关于JVM的叙述,正确的是?AC A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件 D.JVM支持Java程序运行,它能够直接运行Java源代码文件 3.JVM在执行一个Java类时,大致采用以下过程?A A.装载类一>校验类一>执行类中的代码 B.装载类一>执行类中的代码一>校验类 C.校验类一>装载类一>执行类中的代码 D.执行类中的代码一>装载类一>校验类 4.以下关于Java文件名的叙述,正确的有?AD A.Java源文件的扩展名应为.java B.Java字节码文件的扩展名应为.java C.一个Java源文件中只能包含一个Java类 D.Java源文件的文件名应与文件中被public修饰的类的类名一致 5.下列哪项不是int类型的字面量?C A.20 B.077 C.\u03A6 D.0xABBC 6.下列哪项不属于Java语言的基本数据类型?B A.int B.String C.double D.boolean 7.下列哪项不是有效的标识符?AC A.2test B.userName C.$car.text D._password

8.现有如下五个声明: Line1: int _hi=6; Line2:int $dollars=8; Line3: int %opercent=9; Line4: int big=Integer.getlnteger("7"); Line5: int a_really_really_really_long_variable_name=5 ; 哪行无法通过编译?B A.Line1 B.Line3 C. Line4 D. Line5 9.表达式:double d = 1-2/5*5+2*5;d的值是哪项?D C.9 D.11 10.现有代码片段: String s="123"; String s1=s+456; 请问s1的结果是哪项?A A.123456 B.579 C.编译错误 D.运行时抛出异常 11.现有: 1.class Test4 { 2. public static void main (String [] args) { 3.boolean x=false; 4.boolean y=true; 5.short z=42; 6. 7. if((z++==42)&&(y==true))z++; 8. if((x==false)||(++z==45))z++; 9. 10. System. out.println("z="+z); 11. } 12.} 结果为:C A. z=42

java100道选择题含答案

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( )

JAVA填空选择题库

一、选择题(共10道题,每道题有4个选项,只有一个选项是正确的;每道题2分,共计20分) 1.下面哪一个文件包含名为HelloWorld的类的字节码(B)。 A.HelloWorld.java B.HelloWorld.class C.HelloWorld.exe D.HelloWorld.javadoc 2.JDK6.0版本成功安装后,在指定的安装位置将出现jdk1.6.0_21目录,该目录下用于存放编译器、解释器等各类工具的子目录是(C)。 A.jre B.lib C.bin D.demo 3.编译运行以下程序后,关于输出结果的显示正确的是(D)。 public class Test{ public static void main(String args[ ]){ byte b=2, e=3; //---------------1 byte f=b+e; //----------------2 System.out.println(f); } } A.编译通过,运行时打印输出5B.编译通过,运行时打印输出23 C.编译不通过,在//1处有错误,不能这样定义变量 D.编译不通过,在//2处有错误,因为此处f必须是一个int类性的变量 4.类的设计要求它的某个成员变量不能被任何外部类直接访问,则使用下面的哪个修饰符能够获得需要的访问控制(A)A.private B.default C.protected D.public 5.已知给出以下代码,则下列选项中正确的是(C)。 public interface Top{ public void twiddle(String s); } A.public abstract class Sub implements Top{ public abstract void twiddle(String s){ } } C.public abstract class Sub implements Top{ } B.public class Sub extends Top{ public void twiddle(Integer i){ } } D.public class Sub implements Top{ public void twiddle(Integer i){ 6.下列哪个选项可以计算出角度为42度的余弦值(B)。 A.double d=Math.cos(42); B.double d=Math.cos(Math.toRadians(42)); C.double d=Math.conine(42) ; D.double d=Math.cos(Math.toDegrees(42)); 7.给定一个未完成的方法,代码如下: 1: 2:{ success = connect( ); 3:if (success==-1) { 4:throw new TimedOutException(); 5:} 6:} 已知TimedOutException不属于RuntimeException,那么在第一行的位置上填写哪段代码能够完成该方法的声明?(D)A.public void method() B.public void method() throw TimedOutException C.public void method() throws RuntimeException D.public void method() throws TimedOut Exception 8.当编译并运行下列代码时其运行结果是(A)。

Java高级编程选择题

1.Thread类用来创建和控制线程,一个线程从下面( )方法开始执行。 A.init() B.start() C.run() D.notifyAll() 2.实现线程体的方式除了继承Thread类,还可以实现( )接口。 A.Cloneable B.Runnable C.Iterable D.Serializable 3.哪个方法是实现Runnable接口所需的? A.wait() B.run() C.stop() D.update() 4.下面让线程休眠1分钟的正确方法是() A.sleep(1) B.sleep(60) C.sleep(1000) D.sleep(60000) 5.以下哪个最准确描述synchronized关键字? A.允许两线程并行运行,而且互相通信; B.保证在某时刻只有一个线程可访问方法或对象; C.保证允许两个或更多处理同时开始和结束; D.保证两个或更多线程同时开始和结束。 6.于Java语言的内存回收机制,下列选项中最正确的一项是( )。 A.Java程序要求用户必须手工创建一个线程来释放内存 B.Java程序允许用户使用指针来释放内存 C.内存回收线程负责释放无用内存 D.内存回收线程不能释放内存对象 7.在java程序中,下列关于线程的说法错误的是: ( ) A.run方法是运行线程的主体 B.多个进程运行时执行顺序是按顺序执行的 C.如果线程死亡,它便不能运行 D.在java中,高优先级的可运行线程会抢占低优先级线程 8.编写线程类,要继承的父类是: A.Object

B.Runnable C.Exception D.Thread 9.启动一个线程的方法是哪项? A . join ( ) B . runf ) C . start ( ) D . sleep ( ) 10.编写线程类,可以通过实现那个接口来实现? A.Runnable B.Throwable C.Serializable https://www.wendangku.net/doc/9811271731.html,parable 11.当一个处于阻塞状态的线程解除阻塞后,它将回到哪个状态? A.运行中状态 B.结束状态 C.新建状态 D.可运行状态 12.在网络编程中,为了定位一个进程,我们需要确定() A.端口号 B.IP地址 C.IP地址和端口号 D.都不是 13.为了从文本文件中逐行读取内容,应该使用哪个处理流对象? A.BufferedReader B.BufferedWriter C.Bufferedlnputstream D.Bufferedoutputstream 14.要使用java程序访问数据库,则必须首先与数据库建立连接,在建立连接 前,应加载数据库驱动程序,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 15.要使用java程序访问数据库,则必须首先与数据库建立连接,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 16.Java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句?

java选择题

1、Java属于以下哪种语言?() A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 2、在JDK安装目录下,用于存放可执行程序的文件夹是? A、bin B、jre C、lib D、db 3、下列Java命令中,哪一个可以编译HelloWorld.java文件? A、java HelloWorld B、java HelloWorld.java C、javac HelloWorld D、javac HelloWorld.java 4、以下关于java命令作用的描述中,正确的是 A、它专门负责解析由Java编译器生成的.class文件 B、它可以将编写好的Java文件编译成.class文件 C、可以把文件压缩 D、可以把数据打包 5、下面关于配置path环境变量作用的说法中,正确的是() A、在任意目录可以使用javac和java命令 B、在任意目录下可以使用class文件 C、在任意目录可以使用记事本 D、在任意目录下可以使用扫雷游戏 6、下面关于path和classpath的说法中,错误的是() A、path用来指定java 虚拟机(JVM) 所在的目录 B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件) 所在的目录 C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同 D、只要设置了classpath 这个环境变量系统就不会再在当前目录下查询某个类 7、下面关于classpath的说法中,错误的是()。 A、classpath和path环境变量的查看与配置的方式完全相同。 B、为了让Java虚拟机能找到所需的class文件,就需要对classpath环境变量进行设置。 C、从JDK5.0开始,如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。 D、在命令行窗口中配置了classpath后,重新打开新命令行窗口依然生效 8、下面哪种类型的文件可以在Java虚拟机中运行?() A、.java B、.jre C、.exe D、.class 9、阅读下段代码片段,选择正确的运行结果 public static void main(String[] args) {

Java选择题100道

期末不解释Java选择题100道(三)来源:井淼WILL的日志 1. 若a的值为3时,下列程序段被执行后,c的值是多少?( C ) if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4; A、1 B、2 C、3 D、4 2. 下面哪一个操作符的优先级最高?( D ) A、&& B、|| C、! D、( ) 3. 下列方法头中哪一个不与其他方法形成重载(overload)关系?( D ) A、void mmm() B、void mmm(int i) C、void mmm(String s) D、int mm() 4. 编译Java程序的命令是:( B ) A、appletviewer B、javac C、java D、javadoc 5. 编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A、.byte B、.class C、.html D、.exe 6. 执行语句int i = 1, j = ++i; 后i与j的值分别为( D )。 A、1与1 B、2与1 C、1与2 D、2与2

7. main方法是Java应用程序执行的入口点,关于main方法的方法头以下哪项是合法的?( B ) A、public static void main() B、public static void main(String[] args ) C、public static int main(String [] arg ) D、public void main(String arg[] ) 8. 下列哪个选项不是Java语言的特点?( D ) A、面向对象 B、高安全性 C、平台无关 D、面向过程 9. 下列哪个是合法的Java标识符?( B ) A、Tree&Glasses B、FirstJavaApplet C、*theLastOne D、273.5 10. 下面的选项中,哪一项不属于“汽车类”的行为( D )。 A、启动 B、刹车 C、减速 D、速度 11. 下面哪一个循环会导致死循环?( C ) A、for (int k = 0; k < 0; k++) B、for (int k = 10; k > 0; k--) C、for (int k = 0; k < 10; k--) D、for (int k = 0; k > 0; k++) 12. 有如下程序段: int a = b = 5; String s1 = "祝你今天考出好成绩!"; String s2 = s1; 则表达式a == b与s2 == s1的结果分别是:( A )。 A、true与true B、false与true C、true与false D、false与false

java基础选择题

练习01:请问,以下哪些是合法的变量名? 请选择一个正确答案: (1)_int (2)$marie (3)Integer (4)2much (5)选项(1)、(2)、(3)均正确 答(5) 练习02:请问,以下哪些是JA V A应用的入口程序main()的方法正确语法形式? 请选择一个正确答案: (1)p ublic static void main(Sting[]args) (2)s tatic public void main(String[]args) (3)p ublic void main(String args[]) (4)选项(1)、(2)均正确 (5)选项(1)、(2)、(3)均正确。 答(4) 练习03:请问,以下哪些是初始化数组的正确语法形式? 请选择一个正确答案: (1)i nt x[]={1,2,3};

(2)i nt x[3]={1,2,3}; (3)i nt[]x={0,0,0}; (4)c har[]x={…a?,?b?}; (5)选项(1),(3),(4)均正确。 答(5) 练习04:请问,以下哪些是字节型数据的的取值范围? 请选择一个正确答案: (1)0,+255 (2)-127..+128 (3)-128..+127 (4)0..65535 (5)-32767..+32768 答(3) 练习05:请问,以下哪些描述是正确的? 请选择一个正确答案: (1)int是32位的带符号型整型值。 (2)short型是16位的带符号整形值。 (3)char型是16位的Unicode编码字符。 (4)float型是64位的浮点值。 (5)选项(1),(2),(3)均正确。

JAVA测试题(三套含答案)

<测试一> 1.在单一文件中import、class和package的正确出现顺序是:A A.package, import, class B.class, import, package C.import, package, class D.package, class, import 2.public static void main方法的参数描述是:A,D A.String args[] B.Strings args[] C.String args D.String []args 3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,D A.float f=1.3; B.char c="a"; C.byte b=257; D.boolean b=null; E.int i=10; 4.编译,运行下列代码后的结果是:D public class Test { public static void main (String args []) { int age; age = age + 1; System.out.println("The age is " + age); } } A.编译,运行后没有输出 B.编译,运行后输出:The age is 1 C.能通过编译,但运行时产生错误 D.不能通过编译 4.下面那些关键字不是JAVA的关键字B A if B then C goto D while E case 5.下面那些不是合法的变量定义:A,F A.2variable B.variable2 C. _whatavariable

D. _3_ E. $anothervar F. #myvar 6.内部数据类型byte的取值范围是B A.0 - 65, 535 B.(–128) – 127 C.(–32,768) – 32,767 D.(–256) – 255 7.下列哪些表达式返回true AB A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) 8.声明公用的abstract方法的正确格式是A A.public abstract void add(); B.public abstract void add() {} C.public abstract add(); D.public virtual add(); 9.下面的代码能打印出的结果为:C int i=1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println("default"); } A.one B.one, default C.one, two, default D.default 10.下面的代码能打印出的结果为:B int i=9; switch (i) { default: System.out.println("default");

java程序设计试题库

《Java语言程序设计基础教程》 练习思考题参考答案 第1章Java程序设计概述 1、1单项选择题 1.编译Java Application源文件将产生相应得字节码文件,扩展名就是什么 A、、java ???? B、、class ?C、、html??? D、、exe 解答:B 2.Java语言具有许多优点与特点,下列选项中,哪个反映了Java中“一次编 译,随处运行”得特点. ?A、简单性????B、平台无关性 C、面向对象性???? D、安全性 解答:B 3.Java语言具有许多优点与特点,下列选项中,哪个反映了Java中并行机制得 特点。 ?A、多线程???B、平台无关性 C、面向对象性??? D、安全性 解答:A 4。在Java语言中,下列哪些语句关于内存回收得说明就是正确得? ?A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存; C.内存回收程序允许程序员直接释放内存; D.内存回收程序可以在指定得时间释放内存对象 解答:B 5.一个Java源文件中最多只能有多少个public类。 ?A、1个?B、2个

C、3个? D、任意多个 解答:A 6。下面哪一个不就是Java语言所具有得特点。 A、没有全局变量,在类得定义外部没有任何得变量定义; ?B、不直接支持指针操作,而使用更安全得引用类型; C、支持子类对父类得多继承; D、具有自动垃圾收集功能; 解答:C 7。下面哪一个不就是Java开发工具包JDK得组成部分. ?A、Java得编译器; B、Java得解释器;? ?C、Java得API继承类库; ?D、Eclipse开发工具; 解答:C 8。JDK提供得编译器就是()。 ?A、java、exe???B、javac、exe C、javap、exe??? D、javaw、exe 解答:B 9。作为Java应用程序入口得main方法,其声明格式可以就是() A、public voidmain(String[]args) B、public static void main(String []args) C、public static void Main(String* args) D、public int main(String []args) 解答:B 10.下列说法正确得就是( A ) A、JAVA程序得main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、JAVA程序得main方法中如果只有一条语句,可以不用{}(大括号)括起来 11。下列哪些语句关于Java内存回收得说明就是正确得? ( B) A、程序员必须创建一个线程来释放内存

java_web选择题

第1题. 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 正确答案为:B 第2题. 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 正确答案为:D 第3题. 有关会话跟踪技术描述正确的是(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期 C. 在禁用Cookie时可以使用URL重写技术跟踪会话 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示 正确答案为:ABC 第4题. 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http : // www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http : // www . svse . com . cn”); D. response . sendRedirect();

正确答案为:C 第5题. EL表达式,${10 mod 3},执行结果为: A. 10 mod 3 B. 1 C. 3 D. null 正确答案为:B 第6题. 自定义标签的作用是 A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 正确答案为:C 第7题. request.getRequestDispatcher().forward(request,response)称之为 A. 流转 B. 转发 C. 重定向 D. 导航 正确答案为:B 第8题. 有关Servlet的生命周期说法正确的有(多选)

JAVA笔试题--Java选择题100道

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;}

java选择题库

11111111111111 单选题第一套 表1 考核知识点一览表 知识点内容题型题数(实际)题目名称 1 JA V A应用程序单选 1 1-1-1-1 2 类单选 1 3 JA V A关键字单选 1 4 JA V A变量和数据类型单选 2 1-1-2-1,1-1-3-1 5 环境单选0 6 运算符与表达式单选 2 7 流程控制单选 1 8 数组单选 1 9 重载单选 1 10 构造函数单选 1 11 抽象类单选 1 12 继承单选 1 13 对象单选 1 14 覆盖与重载单选 1 1-1-1-1下面的main()方法的定义哪些是正确的?() (A)public static void main(String args){} (B)public static void main(String[]){} (C)public static void main(String[] args){} (D)public static void MAIN(String[] xyz){} 答案:C 1-1-2-1用于定义简单数据类型的一组关键字是() (A)Student,float,main,public (B)byte,boolean,int,float (C)long,extends,float,double (D)class,float,short,import 答案:B 1-1-3-1以下变量定义中正确的是() (A)int I=123a (B)float f=7.8f (C)char c=’abc’ (D)String str=’d’ 答案:B 1-1-4-1 for(;;)是( ) (A)循环结构 (B)分支结构 (C)顺序结构 答案:A

二级java选择题

1、下列关于栈叙述正确的是______。 A、栈顶元素最先能被删除 B、栈顶元素最后才能被删除 C、栈底元素永远不能被删除 D、以上三种说法都不对 2、下列数据结构中,属于非线性结构的是______。 A、循环队列 B、带链队列 C、二叉树 D、带链栈 3、下列数据结构中,能够按照"先进后出"原则存取数据的是______。 A、循环队列 B、栈 C、队列 D、二叉树 4、对于循环队列,下列叙述中正确的是______。 A、队头指针是固定不变的 B、队头指针一定大于队尾指针 C、队头指针一定小于队尾指针 D、队头指针可以大于队尾指针,也可以小于队尾指针 5、算法的空间复杂度是指______。 A、算法在执行过程中所需要的计算机存储空间 B、算法所处理的数据量 C、算法程序中的语句或指令条数 D、算法在执行过程中所需要的临时工作单元数 6、下列选项中不属于结构化程序设计原则的是______。 A、可封装 B、自顶向下 C、模块化 D、逐步求精

7、软件详细设计产生的图如下: 该图是______。 A、N-S图 B、PAD图 C、程序流程图 D、E-R图 8、在学生管理的关系数据库中,存取一个学生信息的数据单位是__。 A、文件 B、数据库 C、字段 D、记录 9、数据库设计中反映用户对数据要求的模式是______。 A、内模式 B、概念模式 C、外模式 D、设计模式 10、有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是______。 A、自然连接 B、交 C、投影 D、并 11、下列特点中,____是Java虚拟机执行的特点之一。

A、字节代码 B、多进程 C、静态链接 D、编译 12、Java语言有多种实现机制,下列___技术属于垃圾回收机制。 A、字节编译 B、内存跟踪 C、语法检查 D、堆栈上/下溢检查 13、以下___字符串是Java中合法的标识符。 A、super B、3number C、#number D、$number 14、执行以下语句后,str2的值是 ___。 String str1="abc"; String str2=str1.concat("cde"); A、abcde B、abccde C、cdeabc D、edccba 15、如果类中的成员变量只能被同一包访问,则使用以下__约束符。 A、无访问控制符 B、public C、protected D、final 16以下___表达式是不合法的。 A、String x="Hello"; int y=9; x+=y; B、String x="Hello"; int y=9; if(x==y) { } C、String x="Hello"; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 17、下面标识符中__是不合法的。

Java_笔试选择题

一、选择题(每题4分,共80分) 1. 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( ) A. .java B. .class C. .html D. .exe 2. main 方法是Java Application 程序执行的入 口点,关于main 方法的方法头以下哪项是合法的( ) A. public static void main() B. public static void main( String args[] ) C. public static int main( String [] args ) D. public void main( String args[] ) 3. 下面哪个是short 型的取值范围:( ) A. -27 -- 27-1 B. 0 -- 216-1 C. -215 -- 215 -1 D. -231 -- 231 -1 4. 以下哪项关键字能够作为Interface 内定义的 Method 的修饰符?( ) A. public B. final C. abstract D. protected 5. 一个函数定义的返回值是float ,它不能在 return 语句中返回的值的类型是( ) A. char B. float C. long D. double 6. 下面哪项是不合法的标识符:( ) A. $persons B. TwoUsers C. *point D. _endline 7. 下面不属于JAVA 关键字的是( ) A. instanceof B. finally C. sizeof D. volatile 8. 下面程序的输出为:( ) public class ArrayTest{ public static void main (String[] args){ Object[] ov; String[] sa = { "Green", "Blue", "Red" }; ov = sa; System.out.println("Color=" + ov[1]); } } A. 存在编译错误 B. 输出Color=Blue C. 输出Color=Green D. 运行时抛出异常 9. 字符串t 中的字符为( ) String s = "hypertext"; String t = s.substring(2, 5); A. "yper" B. "ype" C. "pert" D. "per " 10. 有如下程序,请选择一个正确的结果( ) class Superclass { } class Subclass extends Superclass { } Superclass a = new Superclass(); Subclass b = new Subclass(); 选择一个正确的来解释下面的语句:b = a; A. 编译非法 B. 编译正确,但运行时可能非法 C. 运行时正确 11. 以下哪个方法声明能够被加入到Child 类中, 编译正确?( ) public class Parent { public int addValue( int a, int b) { return a+b; } } class Child extends Parent { } A. int addValue( int a, int b ){// do something...} B. public void addValue (){// do something...} C. public void addValue( int b, int a ){// do something...} D. public int addValue( int a, int b )throws MyException {//do

java经典选择题100例及答案

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)对象是类的抽象 (C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符()。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。 (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(B).java和.class (C).class和.class(D) .java和.java 12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 (A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A) package,import,class(B) class,import,package (C) import,package,class(D) package,class,import 14.下面哪个是非法的: (A) int I = 32;(B) float f = 45.0; (C) double d = 45.0;(D) char c = ‘u’;//符号错 15.Java语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB (D) Unicode 16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是 (A) public (B) protected (C) private (D) static 17.下面关于main方法说明正确的是 (A) public main(String args[ ]) (B) public static void main(String args[ ]) (C) private static void main(String args[ ]) (D) void main() 18.哪个关键字可以对对象加互斥锁?( ) (A) transient (B) synchronized (C) serialize (D) static 19.关于抽象方法的说法正确的是( ) (A)可以有方法体(B) 可以出现在非抽象类中 (C) 是没有方法体的方法(D) 抽象类中的方法都是抽象方法 20.java.io包的File类是 (A)字符流类(B) 字节流类 (C) 对象流类(D) 非流类 21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String args B、String args[] C、Char arg D、StringBuffer args[] 22.以下代码段执行后的输出结果为() int x=-3;int y=-10; System.out.println(y%x); A、-1 B、2 C、1 D、3 23.以下关于继承的叙述正确的是()。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 24. 若有定义:byte[] x={11,22,33,-66}; 其中0≤k≤3,则对x数组元素错误的引用是() A)x[5-3] B)x[k] C)x[k+5] D)x[0] 25.paint()方法使用哪种类型的参数? () A、Graphics B、Graphics2D C、String D、Color 26.以下哪个不是Java的原始数据类型() A、int B、Boolean C、float D、char 27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为() A)隐藏 B)重写 C)重载 D)Java不支持此特性 28.以下有关构造方法的说法,正确的是:() A.一个类的构造方法可以有多个 B.构造方法在类定义时被调用 C.构造方法只能由对象中的其它方法调用。 D.构造方法可以和类同名,也可以和类名不同 29.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。 A、init() B、start() C、destroy() D、stop() 30.给出下面代码,关于该程序以下哪个说法是正确的?()public class Person{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]);} } A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空 31、有以下方法的定义,请选择该方法的返回类型()。ReturnType method(byte x, double y) { return (short)x/y*2; } A、byte B、short C、int D、double 32.下列类定义中哪些是合法的抽象类的定义?() A、abstract Animal{abstract void growl();} B、class abstract Animal{abstract void growl();} C、abstract class Animal{abstract void growl();} D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};} 33.有以下程序片段,下列哪个选项不能插入到行1。() 1. 2.public class Interesting{ 3.//do sth 4. } A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ } 34. 设有下面两个赋值语句: a = Integer.parseInt(“12”); b = Integer.valueOf(“12”).intValue(); 下述说法正确的是()。

相关文档