文档库 最新最全的文档下载
当前位置:文档库 › JAVA程序设计期末练习题

JAVA程序设计期末练习题

JAVA程序设计期末练习题
JAVA程序设计期末练习题

JAVA程序设计期末练习题

一.选择最合适的答案填空(每题2分,共16分)

( )1.applet程序必须重写方法。

A. run

B. applet

C. main

D. paint

( )2.定义类时冠以关键字,则表示不能用此类直接说明一个对象。

A. abstract

B. public

C. void

D. null

( )3.Java通过______ 直接将目标代码翻译成机器指令执行。

A. 编译器

B. 浏览器

C. 虚拟机

D. 操作系统

( )4.接口中能定义的成员为______ 。

A. 公共的类常量

B. 保护的对象常量

C. 私有的抽象方法

D. 公共的非抽象方法

( )5.类B1是类Thread的子类,对象b1属于类B1,则线程b1的线程体是______ 。

A. 类B1的run方法

B. 类B1的start方法

C. 类Thread的run方法

D. 类Thread的start方法

( )6.类B2安装了接口Runnable,对象b2属于类B2,则线程b2的线程体是______ 。

A. 类B2的run方法

B. 类B2的start方法

C. 类Thread的run方法

D. 类Thread的start方法

( )7.J2EE中使用MVC方法来构建系统,不包括的部分为____ 。

A. 表现层(视图)

B. 控制层

C. 虚拟机

D. 数据模型

( )8.____ 的通信机制可以实现在变量级上的信息共享。

A. 管道

B. 进程

C. socket

D. 线程

二.简要回答问题(14分)

1.用自己的观点,阐述Java中流的概念。并举例说明流的好处。2.Socket是什么?给出Java语言使用Socket的基本步骤。三.指出下列程序错误并说明原因(10分)

1、(4分)[提示:两个错误]

final class FirstClass {

private int a = 1;

int b = 2;

}

class SecondClass extends FirstClass {

public void method() {

System.out.println(a + b);

}

}

2、(6分)[提示:三个错误]

public class TestClass {

int n;

public static void main(string args[]) {

int i = 10;

n = i*10;

system.out.println("n= " + n);

}

}

四.程序阅读(共20分)

1.试分析下列代码执行的结果:

class Aclass{

Aclass(){

System.out.println("Aclass");

}

}

public class Bclass extends Aclass{

Bclass(){

System.out.println("Bclass");

}

public static void main(String args[]){

Aclass a=new Aclass();

Aclass a1=new Bclass();

}

}

2. 源程序user05.java的内容为:

import java.awt.*;

import java.applet.*;

public class user05 extends Applet implements Runnable

{ Font font = new Font(“TimesRoman”,Font.PLAIN,24);

Thread t; String str; int speed;

public void init()

{ String s = getParameter(“speed”);

speed = ( s = = null ) ? 400:Integer.parseInt(s);

s = getParameter(“str”);

str = ( s = = null ) ? “****”:s;

}

public void paint(Graphics g)

{ g.setFont(font);

if ( Math.random() < 0.5 ) g.setColor(Color.red);

else g.setColor(getBackground());

g.drawString(str,10,font.getSize()+10);

}

public void start(){ t = new Thread(this); t.start(); }

public void stop() { t.stop(); } public void run()

{ while(true)

{ try { Thread.currentThread().sleep(speed);

} catch( InterruptedException e ) { System.exit(0);}

repaint();

}

}

}

源程序[user05.html]的内容为:

若命令行输入为:appletviewer user05.html↙

写出程序功能、浏览器窗口输出。

答案:以红色闪烁的star出现在第一行

五.子程序设计(共30分)

说明:任意选做二题。多选者,第三题仅作为评分参考;

1.(10分)编写application源程序cp.java,满足:

①指定命令行输入为:java cp b01.txt b01.bak↙

②通过命令行参数读取文件名,将文件b01.txt的内容复制到文件b01.bak中;

③将读取文件的内容输出到屏幕上。

2.(10分) 编制一个applet和HTML文档,applet从这个HTML文档接收二个字符串:“2005年即将过去”、“2006年即将到来”,然后用两个线程在同一个文本框(TextField)内每隔十秒交替显示这二个字符串。

3.(10分) 写出一个方法判断是否对一个空串求第10字符之后的子串,如果是则抛出自定义的异常,并写出一个类,在适当的地方调用这个方法,然后捕获这个异常。

六.综合分析题(选做一题10分)

说明:任意选做一题。多选者,以卷面先列出的为判分依据;

1. 从Java的安全性角度分析:

[1] 为什么要抛弃象指针和释放内存等C++功能。

[2] 为什么Java虚拟机提高了系统的安全性。

2. 从Java的安全性角度分析:

[1] 说明Java与C语言的对数组的理解上的差异。

[2] 为什么Java虚拟机提高了程序的可以移植性。

3. 给出一个J2EE的技术构架图。说明2-3个容器的主要功能。

4. 描述一个框架,用抛出机制实现两段程序的交替执行。

4.答案

import java.io.*;

class test

{ public static void main(String[] args)

{

boolean b = true;

while(true)

{

try

{

if(b )

{

System.out.println("Section a");

}

else

{

int temp = 1/0;

}

}

catch(Exception e)

{

System.out.println("Section b");

}

finally

{

b = !b;

}

}

}

}

1、下列程序编译或运行的结果是。()D

public static void main(String args[]){

int a = 10;

int b,c;

if(a>50){

b=9;

}

c = b + a;

System.out.println(c);

}

A.10

B. 19

C.9

D.编译错误

2、下列语句片段中,four的值为() D

int three = 3;

char one = ‘1’;

char four = (char)(three+one);

A. 3

B. 1

C. 31

D. 4

1、下列哪个是JDK提供的编译器:(C)

A. java.exe

B. https://www.wendangku.net/doc/106511491.html,

C.javac.exe

D.javaw.exe

2、下列哪个是JAVA应用程序主类中正确的main方法:(C)

A. public void main (String args[])

B. static void main (String args[])

C. public void main (String args[])

D. public void Main (String args[])

3、关于Java中数据类型叙述正确的是:(B )

A、整型数据在不同平台下长度不同

B.boolean类型数据只有2个值,true和false

C.数组属于简单数据类型

D.Java中的指针类型和C语言的一样

4、设int x=1,float y=2,则表达式x / y的值是:(D )结果是0.5

A.0 B.1 C.2 D.以上都不是

5、以下语句有语法错的是:(A )

A.int x=1;y=2;z=3

B.for (int x=10,y=0;x>0;x++);

C.while (x>5);

D.for(; ;);

6、关于类和对象的叙述正确的是:(A )

A.Java的类分为两大部分:系统定义的类和用户自定义的类

B.类的静态属性和全局变量的概念完全一样,只是表达形式不同

C.类的成员至少有一个属性和一个方法

D.类是对象的实例化

7、以下有关构造方法的说法,正确的是:(A )

A.一个类的构造方法可以有多个

B.构造方法在类定义时被调用

C.构造方法只能由对象中的其它方法调用

D.构造方法可以和类同名,也可以和类名不同

8、以下有关类的继承的叙述中,正确的是:(D )

A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性

C.子类只能继承父类的非私有属性,不能继承父类的方法

D.子类不能继承父类的私有属性

9、下面关于File类的描述,不正确的是:(C )

A.File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作

B.可用public String getName() 命令获取文件的名字

C.public String getAbsolutePath() 获取文件的相对路径。

D.public long length() 获取文件的长度(单位是字节)

10、下面关于File类的描述,不正确的是:(C )

A.可用public boolean canRead() 判断文件是否是可读的

B.可用public boolean canWrite() 判断文件是否可被写入

C.可用public boolean isHidden() 隐藏指定文件

D.可用public boolean exits() 判断文件是否存在

11、void 的含义:(C )

A.方法体为空B.定义的方法没有形参

C.定义的方法没有返回值D.方法的返回值不能参加算术运算

12、关于Java中异常的叙述正确的是:(D )

A.异常是程序编写过程中代码的语法错误

B.异常是程序编写过程中代码的逻辑错误

C.异常出现后程序的运行马上中止

D.异常是可以捕获和处理的

13、所有的异常类皆继承哪一个类?(C )

A.java.io.Exception B.https://www.wendangku.net/doc/106511491.html,ng.Throwable C.https://www.wendangku.net/doc/106511491.html,ng.Exception D.https://www.wendangku.net/doc/106511491.html,ng.Error

14、下面关于内部类和异常类的描述,不正确的是:(D)

A. Java支持在一个类中声明另一个类,这样的类称作内部类。

B. 和某类有关的匿名类就是该类的一个子类,该子类没有明显的用类声明来定义,称作匿名类。

C. 和某接口有关的匿名类就是实现该接口的一个子类,该子类没有明显的用类声明来定义,称作匿名类。

D. Java使用try-catch语句来处理异常,将可能出现的异常操作放在try~catch语句的catch

部分,将发生异常后的处理放在try部分。

15、下面关于内部类和异常类的描述,正确的是:(c)

A. Java支持在一个类中声明另一个类,这样的类称作外嵌类。

B. 和某类有关的匿名类就是该类的一个父类,该父子类没有明显的用类声明来定义,称作匿名类。

C. 和某接口有关的匿名类就是实现该接口的一个子类,该子类没有明显的用类声明来定义,称作匿名类。

D. Java使用try-catch语句来处理异常,将可能出现的异常操作放在try~catch语句的catch

部分,将发生异常后的处理放在try部分。

16、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListener B.MouseListener C.MouseMotionListern D.ItemListener

17、执行以下代码后,y的值为:(C)

class Tom {

int x = 10,y;

void f() {

int x = 5;

y = x+x; //y得到的值是10,不是20。如果方法f 中没有“int x=5;”,y的值将是20

}

}

A. 20 B.15 C.10 D.5

18、执行以下代码后,y的值为:(B)

class Tom {

int x = 10,y;

void f() {

int x = 5;

y = x+this.x; //y 得到的值是15

}

}

A. 20 B .15 C .10 D .5

19、下面UML 图中,属于类实现接口关系的是: (b)

A. B.接口C. 继承 D.

20、下面UML 图中,属于依赖关系接口的是: (c)

二、判断题(T 为正确,F 为错误。每题2分,共20分)

1、标识符由字母、下划线、美元符号和数字组成,长度不受限制。(T )

2、标识符的第一个字符不能是数字字符。(T )

3、一维数组通过索引符访问自己的元素,需要注意的是索引从1开始。(F )

4、数组属于引用型变量,数组变量中存放着数组的首元素的地址。(T )

5、++x (--x )表示在使用x 之前,先使x 的值增(减)1。(T)

6、x++(x--)表示在使用x 之后,使x 的值增(减)1。(T )

7、成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关。(T )

8、JAVA 程序中,当一个方法不需要返回数据时,则不需要返回类型。(F )

9、如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private 的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private 的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。(T )

10、子类中有一部分方法是从父类继承的,这部分方法可以操作子类未继承的变量。(T )

11、Java程序中,一个类可以实现多个接口。使用关键字interface来定义一个接口。(T)

12、一个类通过使用关键字implements声明自己实现一个或多个接口。(T)

13、和某类有关的匿名类就是该类的一个子类,该子类没有明显地用类声明来定义,所以称作匿名类。(T)

14、异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误作出处理。(T)

15、Java把String类声明为final类,因此String类不可以有子类。(T)

16、Object类有一个public String toString()方法,一个对象通过调用该方法可以获得该对象的字符串表示。(T)

17、输入、输出流提供一条通道程序,可以使用这条通道读取源中的数据或把数据传送到目的地。(T)

18、java.io包为程序提供了相应的输入流或输出流,这些输入、输出流绝大部分都是InputStream、OutputStream、Reader或Writer的子类。(T)

19、JAVA允许一个类中编写若干个构造方法,但必须保证他们的参数不同,即参数的个数不同,或者是参数的类型不同。(T)

20、JAVA创建一个对象包括对象的声明和为对象分配变量两个步骤。(T)

三、填空题(每空2分,共20分)

1、____类______是Java程序中基本的结构单位。(类)

2、String s1=“China”; int n=s1.length( ); n的值为____5____。(5)

3、Java源程序文件和字节码文件的扩展名分别为____.java__和.class ______。(.java,.class)

4、一般Java程序的类体由两部分组成:一部分是_属性_,另一部分是_方法。(属性,方法)

5、Java中类成员的限定词有以下几种:______ private ____, public, ___protected_____,缺省。其中,public的限定的范围最大。(private, protected)

6、JAVA中,this指_____当前对象_,super指____父对象_____。(当前对象,父对象)2.1、以下方法fun的功能是求两参数之积。(return a*b)

int fun ( int a, int b ) { _____return a*b___; }

2.2、数组x定义如下:(3, 2)

int x[ ][ ]=new int[3][2]

则x.length 的值为_____3_______,x[0].length 的值为________2______。

3、扩展名为.Java的文件是___源程序文件__,扩展名为.class的文件是__字节码文_____。(源程序文件,字节码文件)

4、当程序需要处理时间时,使用__Date____类和__Calendar________类。(Date, Calendar)

5、String 类是______final____类, 不可以有子类。(final)

6、JAVA中,字类在其构造方法中调用父类的构造方法时需使用关键字___super____,父类的方法不允许被子类重写时需使用关键字______final____。(super ,final)

四、阅读程序,并填空(每空2分,共16分)

1、

public class ErrorO {

public static void main(String args[ ]) {

int a= 10,b = 0,c = 2017;

try{a = Integer.parseInt("5678");

b = Integer.parseInt("TEST3");

c = 7102;

_________ (NumberFormatException e) {

System.out.println("ERROR:"+e.getMessage());

}

System.out.println("a="+a+",b="+b+",c="+c);

}

}输出结果如下:

ERROR:For input string: “TEST3”

a=_______________, b=_______________, c=_________________

答案:catch , a=5678, b=0, c=2017

2、下面的代码是实现与接口SpeakHello有关的匿名类,请填空。

_______(1)_________ SpeakHello {

void speak();

}

class HelloMachine {

public void turnOn(SpeakHello hello) {

hello.speak();

}

}

public class Noname {

public static void main(String args[]) {

HelloMachine machine = new _________(2)_________ ();

machine.turnOn( new SpeakHello(){

public void _______(3)_______() {

System.out.____________ ("hello,you are welcome!");

}

}

);

}

}

输出结果:hello,you are welcome!

答案:println等输出命令, interface, HelloMachine, speak

五、综合题(第1题10分,第2题14分,共24分)

1、使用一个数组放着几个仓库对某商品的库存量。程序准备计算这几个仓库的库存量总和。在调试程序时使用了断言语句,如果发现库存量有负数,程序立刻结束执行。(10分)import java.util.Scanner;

public class ZongHeTi1 {

public static void main (String args[ ]) {

int [] score={-120,98,89,120,99};

int sum=0;

for(int number:score) {

assert number>0:"负数不能是库存量";

sum=sum+number;

System.out.println("总库存量:"+sum);

}

}

1.1、使用一个数组存放几种商品的销售数量,程序准备计算总商品的销售数量。在调试程序时使用了断言语句,如果发现销售数量有负数,程序立刻结束执行。(10分)

import java.util.Scanner;

public class ZongHeTi1 {

public static void main (String args[ ]) {

int [] score={-120,98,89,120,99};

int sum=0;

for(int number:score) {

assert number>0:"负数不能是销售数量";

sum=sum+number;

}

System.out.println("总销售数量:"+sum);

}

}

2、模板编程题(请按模板要求,在指定位置写出【代码】答案,否则无效。本题共14分)采用接口回调技术,实现ShowMessage接口中的“显示商标”方法

interface ShowMessage {

void 显示商标(String s);

}

class TV implements ShowMessage { //定义类TV实现了接口ShowMessage public void 显示商标(String s) {

System.out.println(s); //输出显示商标的参数内容

}

}

class PC implements ShowMessage {

public void 显示商标(String s) {

System.out.println(s);

}

}

public class Example6_3 {

public static void main(String args[]) {

ShowMessage sm; //声明接口变量

sm=new TV(); //接口变量中存放新建TV类对象的引用

sm.显示商标("长城牌电视机"); //采用接口回调输出“长城牌电视机”

sm=new PC(); //接口变量中存放新建PC类对象的引用

sm.显示商标("联想奔月5008PC机"); //采用接口回调输出“联想奔月5008PC机”

}

}

1. 下面哪些是Thread类的方法()

A start()

B run()

C exit()

D getPriority()

答案:ABD

解析:看Java API docs吧:https://www.wendangku.net/doc/106511491.html,/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。

2. 下面关于https://www.wendangku.net/doc/106511491.html,ng.Exception类的说法正确的是()

A 继承自Throwable

B Serialable CD 不记得,反正不正确

答案:A

解析:Java异常的基类为https://www.wendangku.net/doc/106511491.html,ng.Throwable,https://www.wendangku.net/doc/106511491.html,ng.Error和https://www.wendangku.net/doc/106511491.html,ng.Exception继承Throwable,RuntimeException和其它的Exception等继承Exception,具体的RuntimeException 继承RuntimeException。

扩展:错误和异常的区别(Error vs Exception)

1) https://www.wendangku.net/doc/106511491.html,ng.Error: Throwable的子类,用于标记严重错误。合理的应用程序不应该去

try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。

https://www.wendangku.net/doc/106511491.html,ng.Exception: Throwable的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。

2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).

checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。检查了的异常发生在编译阶段,必须要使用try…catch(或者throws)否则编译不通过。

unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。从语言本身的角度讲,程序不该去

catch这类异常,虽然能够从诸如RuntimeException这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。因此,面对Errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。

RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。

处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(IOException等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

3. 下面程序的运行结果是()

String str1 = "hello";

String str2 = "he" + new String("llo");

System.err.println(str1 == str2);

答案:false

解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是true了。

4.下列说法正确的有()

A.class中的constructor不可省略

B.constructor必须与class同名,但方法不能与class同名

C.constructor在一个对象被new时执行

D.一个class只能定义一个constructor

答案:C

解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。

5. 具体选项不记得,但用到的知识如下:

String []a = new String[10];

则:a[0]~a[9] = null

a.length = 10

如果是int []a = new int[10];

则:a[0]~a[9] = 0

a.length = 10

6. 下面程序的运行结果:()

public static void main(String args[]) {

Thread t = new Thread() {

public void run() {

pong();

}

};

t.run();

System.out.print("ping");

}

static void pong() {

System.out.print("pong");

}

A pingpong

B pongping

C pingpong和pongping都有可能

D 都不输出

答案:B

解析:这里考的是Thread类中start()和run()方法的区别了。start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run()。

7. 下列属于关系型数据库的是()

A. Oracle B MySql C IMS D MongoDB

答案:AB

解答:IMS(Information Management System )数据库是IBM公司开发的两种数据库类型之一;

一种是关系数据库,典型代表产品:DB2;

另一种则是层次数据库,代表产品:IMS层次数据库。

非关系型数据库有MongoDB、memcachedb、Redis等。

8. GC线程是否为守护线程?()

答案:是

解析:线程分为守护线程和非守护线程(即用户线程)。

只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。

守护线程最典型的应用就是GC (垃圾回收器)

9. volatile关键字是否能保证线程安全?()

答案:不能

解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对

volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时用volatile关键字修改之后,还是会存在并发的情况。

10. 下列说法正确的是()

A LinkedList继承自List

B AbstractSet继承自Set

C HashSet继承自AbstractSet

D WeakMap继承自HashMap

答案:AC

解析:下面是一张下载的Java中的集合类型的继承关系图,一目了然。

11. 存在使i + 1 < i的数吗()

答案:存在解析:如果i为int型,那么当i为int能表示的最大整数时,i+1就溢出变成负数了,此时不就

扩展:存在使i > j || i <= j不成立的数吗()

答案:存在

解析:比如Double.NaN或Float.NaN,感谢@BuilderQiu网友指出。

12. 0.6332的数据类型是()

A float

B double

C Float

D Double

答案:B

解析:默认为double型,如果为float型需要加上f显示说明,即0.6332f

13. 下面哪个流类属于面向字符的输入流( )

A BufferedWriter

B FileInputStream

C ObjectInputStream

D InputStreamReader 答案:D

解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。

面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。

面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。

总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流;

以Reader(输入)/Writer(输出)为后缀的是字符流。

扩展:Java流类图结构,一目了然,解决大部分选择题:

14. Java接口的修饰符可以为()

A private

B protected

C final

D abstract

答案:CD

解析:接口很重要,为了说明情况,这里稍微啰嗦点:

(1)接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;

(2)接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;

(3)接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量;

(4)接口的中的变量是所有实现类共有的,既然共有,肯定是不变的东西,因为变化的东西也不能够算共有。所以变量是不可变(final)类型,也就是常量了。

(5)接口中不可以定义变量?如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过实现接口的对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口A 中有一个public 访问权限的静态变量a。按照Java 的语义,我们可以不通过实现接口的对象来访问变量a,通过A.a = xxx; 就可以改变接口中的变量a 的值了。正如抽象类中是可以这样做的,那么实现接口A 的所有对象也都会自动拥有这一改变后的a 的值了,也就是说一个地方改变了a,所有这些对象中a 的值也都跟着变了。这和抽象类有什么区别呢,怎么体现接口更高的抽象级别呢,怎么体现接口提供的统一的协议呢,那还要接口这种抽象来做什么

呢?所以接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统一的属性。

通俗的讲,你认为是要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现implements)开放,接口是对开闭原则的一种体现。

所以:

接口的方法默认是public abstract;

接口中不可以定义变量即只能定义常量(加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。

注意:final和abstract不能同时出现。

15. 不通过构造函数也能创建对象吗()

A 是

B 否

答案:A

解析:Java创建对象的几种方式(重要):

(1) 用new语句创建对象,这是最常见的创建对象的方法。

(2) 运用反射手段,调用https://www.wendangku.net/doc/106511491.html,ng.Class或者https://www.wendangku.net/doc/106511491.html,ng.reflect.Constructor类的newInstance()实例方法。

(3) 调用对象的clone()方法。

(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。

(1)和(2)都会明确的显式的调用构造函数;(3)是在内存上对已有对象的影印,所以不会调用构造函数;(4)是从文件中还原类的对象,也不会调用构造函数。

16. ArrayList list = new ArrayList(20);中的list扩充几次()

A 0

B 1

C 2

D 3

答案:A

解析:这里有点迷惑人,大家都知道默认ArrayList的长度是10个,所以如果你要往list里添加20个元素肯定要扩充一次(扩充为原来的1.5倍),但是这里显示指明了需要多少空间,所以就一次性为你分配这么多空间,也就是不需要扩充了。

17. 下面哪些是对称加密算法()

A DES

B AES

C DSA

D RSA

答案:AB

解析:常用的对称加密算法有:DES、3DES、RC2、RC4、AES

常用的非对称加密算法有:RSA、DSA、ECC

使用单向散列函数的加密算法:MD5、SHA

18.新建一个流对象,下面哪个选项的代码是错误的?()

A)new BufferedWriter(new FileWriter("a.txt"));

B)new BufferedReader(new FileInputStream("a.dat"));

C)new GZIPOutputStream(new FileOutputStream("a.zip"));

D)new ObjectInputStream(new FileInputStream("a.dat"));

答案:B

解析:请记得13题的那个图吗?Reader只能用FileReader进行实例化。

19. 下面程序能正常运行吗()

public class NULL {

public static void haha(){

System.out.println("haha");

}

public static void main(String[] args) {

((NULL)null).haha();

}

}

答案:能正常运行

解析:输出为haha,因为null值可以强制转换为任何java类类型,(String)null也是合法的。但null强制转换后是无效对象,其返回值还是为null,而static方法的调用是和类名绑定的,不借助对象进行访问所以能正确输出。反过来,没有static修饰就只能用对象进行访问,使用null调用对象肯定会报空指针错了。这里和C++很类似。这里感谢@Florian网友解答。

20. 下面程序的运行结果是什么()

class HelloA {

public HelloA() {

System.out.println("HelloA");

}

{ System.out.println("I'm A class"); }

static { System.out.println("static A"); }

}

public class HelloB extends HelloA {

public HelloB() {

System.out.println("HelloB");

}

{ System.out.println("I'm B class"); }

static { System.out.println("static B"); }

public static void main(String[] args) {

new HelloB();

}

}

答案:

static A

static B

I'm A class

HelloA

I'm B class

HelloB

解析:说实话我觉得这题很好,考查静态语句块、构造语句块(就是只有大括号的那块)以及构造函数的执行顺序。

对象的初始化顺序:(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;(2)当static语句执行完之后,再执行main方法;(3)如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)。

下面稍微修改下上面的代码,以便更清晰的说明情况:

View Code

JAVA程序设计期末考试题(多套含答案)

《JA V A程序设计》期末考试试题(五) 一、单选题 1、当某一线程正处于休眠状态,而另一个线程用Thread 类中的interrupt() 方法中断它时,抛出的异常类型是()。 A) IOException B) RuntimeException C) InterruptedException D) ClassNotFoundException 2、下面的程序段的功能是( )。 File file1=new File("d:\\xxx\\yyy\\zzz"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录:e:\xxx\yyy\zzz C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对 3、应用程序的main方法中有以下语句,则输出的结果是( )。 String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"; int n = s.indexOf("#"); int k = s.indexOf("#", n+1); String s2 = s.substring(n+1, k); System.out.println(s2); A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz 4、关于下面的程序Test.java说法正确的是( )。 public class Test { String x="1"; int y; public static void main(String args[]) { int z=2; System.out.println(x+y+z); } } A)3 B)102 C) 12 D)程序有编译错误 5、应用程序的main方法中有以下语句,则输出的结果是( )。

JAVA程序设计习题库及答案

第一章JAVA语言概论 一、选择题 1。下列不属于java语言鲁棒性特点的是:A.java能检查程序在变异和运行时的错误 B。java 能运行虚拟机实现跨平台 C。java 自己操纵内存减少了内存出错的可能性D。java 还实现了真数组,避免了覆盖数据的可能2.java语言的执行模式是: A。全编译型 B.全解释型 C.半编译和半解释型 D.同脚本语言的解释模式 3.下列关于虚拟机说法错误的是: A。虚拟机可以用软件实现 B.虚拟机部可以用硬件实现 C.字节码是虚拟机的机器码 D.虚拟机把代码程序与各操作系统和硬件分开 4。java语言是1995年由()公司发布的 A.Sun B。Microsoft C.Borland D.Fox Software 5.下列不是虚拟机执行过程特点的是 A。双线程

B.多线程 C.动态链接 D.异常处理 6.java以JVM为基础,最下层是移植接口,由适配器和()组成A.网卡 B。Java os C。Java基本类 D。Java 应用程序和applet小程序 7。java程序的执行过程中用到一套JDK工具,其中javac.exe指A.java语言编译器 B.java字节码解释器 C.java文档生成器 D.java类分解器 8.java的API结构中,不属于类库主要包括的核心包的是 A.java包 B。javax C.javadoc包 D.org扩展包 9.每个java的编译单元可包含多个类或界面,但是每个编译单元最多只 能有()类或者界面是公共的 A.一个 B。两个 C。四个 D。任意多个

10.在当前的java实现中,每个编译单元就是一个以()为后缀的文件 A。java B.class C。doc D.exe 二、填空题 1. 1991年,SUN公司的Jame Gosling和Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个____软件,它是java的前身. 2. java是一个网络编程语言,简单易学,利用了____的技术基础,但又独立于硬件结构,具有可移植性、健壮性、安全性、高性能。 3. java可以跨平台的原因是____ 4. JVM的执行过程有三个特点:多线程,_____,异常处理; 5.JAVA程序的安全性体现在多个层次上,在_____,有语法检查;在解释层上,有字节码校验器、测试代码段格式和规则检查,访问权限和类型转换和法性检查,操作数堆栈的上溢或下溢,代码参数类型合法性等;在平台层上,通过配置策略,可设定访问资源域,而无需区分本地或远程。 6。 JAVA的产品主流操作系统平台是Solaris、_____和Macintosh. 7. JAVA系统运行时,通过______机制周期性的释放无用对象所使用的内存,完成对象的清除。 8。在JAVA语言中,将后缀名为______的源代码文件编译后形成后缀名为.c lass的字节码文件。 9。 JAVA语言的执行模式是半编译和______. 10. JAVA类库具有_____的特点,保证了软件的可移植性。 11。在编写执行JAVA程序的过程中需要用到一些工具,SUN公司为我们提供了一套JDK工具,它主要包括:javac.exe、java。exe、_____、ja vap.exe、jkb。exe 12.JAVA程序包括源代码(.java文件)、______、由归档工具jar生成的。jar文件、对象状态序列化.ser文件.

大学java期末考试试题和标准答案

《Java程序设计基础》期终考试试卷(模拟) (闭卷) 一、简单编程题(共50分) 在考试文件夹中新建一个应用程序proj1(应用程序地文件夹名称为proj1),按照以下要求编写程序代码. 1. 在程序中定义Person类,为该类编写如下字段、构造器、访问器、修改器和相应地其他方法.(20分) (1)在Person类中定义两个字段: 私有访问权限,类型为String地name字段; 私有访问权限,类型为int地age字段. (2)在Person类中定义构造器 构造器有两个参数,第一个参数地类型是String,名字为name.第二个地类型是int,名字是age.第一个参数地值赋给字段name,第二个参数地值赋给字段age. (3)为Person类地两个字段分别编写访问器方法,方法名称分别为getName和getAge.getName方法返回类型为String地name字段地值;getAge方法返回类型为int地age字段地值. (4)为Person类地两个字段分别编写修改器方法,方法名称分别为setName和setAge.setName方法有一个String类型地参数,方法中用该参数来设置字段name地值;setAge方法有一个int类型地参数,方法中用该参数来设置字段age地值,并且保证age 字段地值不能为负数,如果要将age设置为负数则给出错误提示. (5)为Person类写一个叫做toString地方法,该方法不需要参数,有返回值.它返回一个字符串,字符串中包含name字段和age字段地值,如果name字段地值是“Helen”,age字段地值是20,则返回字符串:“Name:Helen. Age:20”. 2. 在程序中定义Student类,Student类继承Person类.(10分) (1)在Student类中除了继承其超类Person地name字段和age字段外,它还有自己地字段String类型地school,该字段地访问权限为私有. (2)Student类地构造器有三个参数,第一个参数为name,String类型;第二个参数为age,int类型;第三个参数为school,String类型,这三个参数地值分别赋给三个字段name、age和school. (3)在Student类中重写其超类Person地toString方法,要求该方法返回地字符串不仅包含超类Person中地name字段和age字段地值,而且包含子类Student中地school 字段地值.如果name字段地值是“Helen”,age字段地值是20,school字段地值是“山西大学商务学院”,则返回地字符串为“School:山西大学商务学院Name:Helen. Age:20”. 3. 在程序中定义Test类,在Test类中定义一个main方法,在main方法中实现如下操作:(10分) (1)创建一个Person类地对象,它地name为“John”,age为18,对象名为person1; (2)创建一个Student类地对象,它地name为“Helen”,age为18,school为“MIT”,对象名为stuent1; (3)分别输出这两个对象地相关信息(调用它们地toString方法). 4. 分别为Person类和Student类编写文档注释,并生成应用程序地类文档.要求如下:(10分) (1)类地文档注释,包括类名、类地作者及版本号,作者地名字用考生地姓名标注,版本号使用考试地日期; (2)构造器和各个方法地文档注释,包括方法地名称、构造器和方法地功能说明,要求标注构造器和方法中地参数及返回值,并说明参数地类型、名称和返回值地类型. (3)文档注释完成后要使用BlueJ地JavaDOC工具生成应用程序地类文档. 二、代码改错(共20分)

大学java期末试卷2份(含答案)

Java大学考试试卷 一、选择题(每题2分,共30分) 1、Java中main()函数的值是。 A、 String B、int C、char D、void 2、如下字串是Java中的标识符。 A、 fieldname B、super C、3number D、#number 3、下面的代码段中,执行之后i 和j 的值是。 int i = 1; int j; j = i++; A、 1, 1 B、1, 2 C、2, 1 D、2, 2 4、已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面表达式的值与数组下标量总数相等。 A、 m.length() B、m.length C、m.length()+1 D、m.length+1 5、当浏览器返回到新URL的包含applet 的页面时调用以下函数。 A、 init() B、start() C、stop() D、destroy() 6、以下方法用于定义线程的执行体。 A、 start() B、init() C、run() D、main() 7、如果类中的成员变量可以被同一包访问,则使用如下约束符。 A、 private B、public C、protected D、final 8、以下约束符可用于定义成员常量。 A、 static B、final C、abstract D、No modifier can be used 9、下面方法与applet的显示无关。 A、 update() B、draw() C、repaint() D、paint() 10、请问如下方法可以将MenuBar加入Frame中。 A、 setMenu() B、setMenuBar() C、add() D、addMenuBar() 11、下面不是Java中的容器。 A、 ScrollPane B、Canvas C、Dialog D、Applet 12、下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File 构造函数中正确的路径和文件名的表示是。 File f=new File(填代码处); file=new FileReader(f); in=new BufferedReader(file); A) "1.txt" B) "d:\\my\\1" C) "d:\\my\\1.txt" D) "d:\ my\1.txt" 13、有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是。A) 2 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 2 14、下面的程序段执行后输出的结果是。 StringBuffer buf=new StringBuffer("Beijing2008"); buf.insert(7,"@"); System.out.println(buf.toString()); A) Beijing@2008B) @Beijing2008 C) Beijing2008@ D) Beijing#2008 15、.下面表达式可用得到x和y的最大值。 A) x>y?y:x B) xy?(x+y):(x-y) D) x==y?y:x; 二、多选题(每题至少有一个正确答案,多选少选都不给分,每题2分,共10分) 16、下面赋值语句是合法的。 A、float a = 2.0 B、double b = 2.0 C、int c = 2 D、long d = 2 17、下面语句是创建数组的正确语句。 A、 float f[][] = new float[6][6]; B、float []f[] = new float[6][6]; C、float f[][] = new float[][6]; D、float [][]f = new float[6][6]; 18、Java中如下约束符是正确的。 A、 private B、public C、protected D、protect 19. 下面事件监听器在Java中有事件适配器。 A、 MouseListener B、KeyListener C、ActionListener D、WindowListener 20、已知如下的命令执行 java MyTest a b c,语句是正确的。 A、 args[0] = "MyTest a b c" B、args[0] = "MyTest" C、args[0] = "a" D、args[1]= 'b' 填空题(每空格2分,共20分) 1. 创建类的对象时,使用运算符__________给对象分配内存空间。 2. 定义类的构造方法不能有返回值类型,其名称与____ _名相同。

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

《JA V A语言程序设计》期末考试试题及答案3 一、单项选择题 1、如下哪个是Java中的标识符() A、public B、super C、3number D、width 2、如下哪个是Java中的标识符( ) A、fieldname B、super C、3number D、#number 3、已知如下定义:String s = "story"; 下面哪个语句不是合法的( ) A、s += "books"; B、s = s + 100; C、int len = s.length; D、String t = s + “abc”; 4、如下哪个是Java中有效的关键字() A、name B、hello C、false D、good 5、下面的代码段执行之后count的值是什么( ) int count = 1; for (int i = 1; i <= 5; i++) { count += i; } System.out.println(count); A、5 B、1 C、15 D、16 6、定义一个类,必须使用的关键字是( ) A、public B、class C、interface D、static 7、定义一个接口必须使用的关键字是() A、public B、class C、interface D、static 8、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是() A、p.add(b); B、p.add(b,"North"); C、p.add(b,"South"); D、b.add(p,"North"); 9、声明并创建一个按钮对象b,应该使用的语句是() A、Button b=new Button(); B、button b=new button();

《JAVA语言程序设计》期末考试试题及答案(应考必备题库)

《JA V A语言程序设计》期末考试试题及答案2(应考必备题库) 一.判断题 1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(×)1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(×3.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(×)4.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。(×)5.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch 中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。(√)6.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。(√)7.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。(×)8.静态初始化器是在其所属的类加载内存时由系统自动调用执行。(√)9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。(×) 二.单项选择题 1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?() A、String args B、String ar[] C、Char arg D、StringBuffer args[] 2.以下关于继承的叙述正确的是()。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 3.paint()方法使用哪种类型的参数? () A、Graphics B、Graphics2D C、String D、Color 4.以下哪个不是Java的原始数据类型() A、int B、Boolean C、float D、char

Java web期末考试题

第1页(共7页) 天津师范大学期末考核 2015—2016 学年第2学期 期末考核试卷 科目:Java Web 应用开发 学院:计信学院 专业:计算机科学 一、 单选题:(每小题2分,共10分) 1. 下列语句属于声明语句的是( A )。 A .<%! Int a = 4;%> B.<% int a=4;%> C .<%--int a=4-- %> D. <%@ int a=4%> 得分 2. 一个servlet 的生命周期不包括( B )方法? A .init( )方法 B. invalidate( )方法 C .service( )方法 D .destroy( )方法 得分 3. Application 对象的作用域是( B )。 A . 一次会话 B. 整个应用程序 C . 一次请求 D . 整个页面 得分 4. 下面对servlet 中重定向说法描述错误的是( D )。 A .使用的是HttpServletResponse 接口的sendRedirect()方法 B. 源组件的响应结果不会发送给客户端 C .sendRedirect()方法后的代码仍会执行 D .源组件和目标组件共享ServletRequest 对象

第2页(第7页) 得分 5. 有一个JavaBean 组件,类名为Student ,此JavaBean 组件的获得访问方法是getTotalScore,其功能是获得某个学生几门功课的总分,返回值保留一位小数,则以下关于getTotalScore 的声明正确的是( B )。 A .public int getTotalScore() B. public float getTotalScore() C .protected int getTotalScore() D .protected float getTotalScore() 得分 2. 3. Sevlet 过滤器核心对象放置在javax.servlet 包中,其名称为 4.

Java程序设计习题附答案(一)

Java程序设计题库 第一部分绪论 1、下列关于Java语言的特点,描述错误的是(C) A.Java是跨平台的编程语言B.Java支持分布式计算 C.Java是面向过程的编程语言D.Java支持多线程 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B) A、安全性 B、多线性 C、跨平台 D、可移植 3、Java JDK中调试器的命令是(C)。 A、javac B、java C、jdb D、avah 4、运行jar文件中class文件需要在java命令后面加的参数为(A)。 A、-cp B-g C-d D-verbose 5、下面哪项在java中是不合法的标识符?(C) A、$user B、point C、You&me D、_endline 6、下面关于Java语言说法正确的是(ABCD)。 A、Java语言是面向对象的、解释执行的网络编程语言。 B、Java语言具有可移植性,是与平台无关的编程语言。 C、Java语言可对内存垃圾自动收集。 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。 7、在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。( B) A、源, HTML B、源, 字节代码 C、字节代码, 源 D、HTML, 字节代码 8、Java的JVM是指(B)。 A、由Java操作的家用设备(通常是一个漂亮的小烤箱) B、Java字节代码的解释程序 C、Java源代码的编译器 D、运行Java 所需的硬件设备 9、在Java中,关于CLASSPA TH环境变量的说法不正确的是(A)。 A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B、编译器用它来搜索各自的类文件。 C、CLASSPATH是一个目录列表。 D、解释器用它来搜索各自的类文件。 10、一个可以独立运行的Java应用程序(D)。

中南民族大学《Java语言程序设计》期末试卷A卷

科目序号:6002 A卷 《Java语言程序设计》期末试卷 (试卷总分:100分,考试时间:120分钟,答案写在答卷纸上) 一.判断题(每题1分,共10分) 1.无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件。(X )2.Java的各种数据类型所占用的内存长度与具体软硬件环境有关。(X )3.静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。(O )4.与C语言不同的是,Java语言中的数组元素下标总是从1开始。(X )5.在Java的方法中定义一个常量要用const关键字。(X )6.Java有两类程序:Java Application和Java Applet,其中Java Applet程序只能在图形界面中工作,而Java Application程序只能在字符界面中工作。(X)7.在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。(X )8.程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(X )9.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out 和标准错误输出System.err。(O )10.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。(O ) 二.单项选择题(每题2分,共40分) 1.编译Java Applet 源程序文件产生的字节码文件的扩展名为( B)。 A、java B、class C、html D、exe 2.Java application中的主类需包含main方法,main方法的返回类型是什么?(D ) A、int B、float C、double D、void 3.以下哪个方法用于定义线程的执行体?( C ) A、 start() B、init() C、run() D、synchronized() 4.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?(D ) A、init() B、start() C、destroy() D、stop() 5.下面哪个不是Java中的容器? ( A ) A、Canvas B、ScrollPane C、Applet D、Dialog 6.以下标识符中哪项是不合法的( A ) A、const B、$double C、hello D、BigMeaninglessName 7.以下哪个关键字可以用来为对象加互斥锁?(D )

Java程序设计期末考试试题

Java程序设计期末考试试题、试卷、习题A卷 一、选择题。本题共20小题,每题2分,满分40 分。 1、在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行……… () A)init() B)start() C)destroy() D)stop() 2、有以下方法的定义,请选择该方法的返回类型() ReturnType method(byte x, double y) { return (short)x/y*2; } A)byte B)short C)int D)double 3、以下哪项可能包含菜单条()。 A)Panel B)Frame C)Applet D)Dialog 4、Java application中的主类需包含main方法,main方法的返回类型是什么?()A)int B)float C)double D)void 5、Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( ) A)String args B)String ar[] C)Char arg D)StringBuffer args[] 6、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。 A). java B) .class C) . html D) .exe 7、设int型变量x = 1 , y = 2 , z = 3,则表达式y+=z--/x++ 的值是( )。 A)3 B)3. 5 C)4 D)5 8、不允许作为类及类成员的访问控制符的是( )。 A)public B)private C)static D)protected 9、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A)static void method( ) B)public void method( ) C)final void method( ) D)abstract void method( ) 10、以下哪一个不是JAVA的标准数据流( )。 A)标准输出数据流B)标准输入数据流C)标准错误数据流D)标准运算数据流 11.设有下面两个赋值语句:( ) a = Integer.parseInt(“123”); b = Integer.valueOf(“123”).intValue(); 下述说法正确的是()。 A)、a是整数类型变量,b是整数类对象。B)、a是整数类对象,b是整数类型变量。C)、a和b都是整数类对象并且值相等。D)、a和b都是整数类型变量并且值相等。 12、下列代表十六进制整数的是( ) A)0123 B)1900 C)fa00 D)0xa2

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程序设计期末考试题

Java程序设计期末考试题 一、选择题 下列说法中,不正确的是( A ) A) 一个java源程序编译通过后,得到的结果文件数也只有一个。 B) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。 C) 一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java。 D) 一个java源程序可以包含多个class类。 请问,以下哪些描述是正确的? 请选择所有正确答案: (1)如果package语句存在,则必须出现在源文件的非空白首行。(2)如果import语句存在,则必须出现在源文件的非空白首行。(3)如果main()方法存在,则必须出现在源文件的非空白首行。(4)如果在源文件中声明了一个public接口,则其名称必须和源文件名一致。 请问,以下哪些是Java中的合法标识符? 请选择所有正确答案: (1)my-id (2)my_id

(3)101ids (4)id101 请问,以下哪些是合法的标识符? 请选择所有正确答案: (1)%abcd (2)$abcd (3)1abcd (4)package (5)_a_long_name 以下哪个不是Java的关键字?() A、FALSE B、const C、this D、void 以下哪个不是Java的关键字?() A、TRUE B、goto C、this D、void Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。 A、8 B、16

C、32 D、64 请问一下哪些修饰符用于声明一个常量?请选择一个正确答案:static final abstract public 给出以下代码,该程序的运行结果是什么? public class Example{ final int x=0; Example(){ x=1; } final int aMethod(){ return x; } } 请选择所有正确答案: 代码编译错误,因为非final类中存在final方法。 代码编译成功。

java程序设计习题集

Java程序设计习题集 第一章Java基础知识 §1.1Java概述 1.完成在Windows 2000操作系统下环境变量的配置 2.创建一个Java程序,输出自己的基本信息:名字和年龄。 3.概述Java语言的版本发展过程。 4.简述Java语言的运行机制。 5.在自己的机器上用JDK开发运行环境完成第一个Java程序的编辑、编译、运行过程。 6.简述Java语言的特点,Java虚拟机的概念及作用。 §1.2 Java基本语法 1.什么是变量?什么是常量? 2.什么叫表达式,Java语言中共有几种表达式? 3.下面哪些表达式不合法?为什么? HelloWorld 2Thankyou _First -Month 893Hello non-problem HotJava implements $_MyFirst 4. 以下的选项中能正确表示Java语言中的一个整型常量的是( )。 A) 12. B) -20 C) 1,000 D) 4 5 6 5. 以下选项中,合法的赋值语句是( )。 A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i ); 6. 若所用变量都已正确定义,以下选项中,非法的表达式是( )。 A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32 7. 若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A) 0 B) 4 C) 8 D) -4 8. 在Java语言中,逻辑常量只有true 和 ___________ 两个值。 9. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float 和 __________两种具体类型。 10. Java语言是( )。 A.面向问题的解释型高级编程语言 B.面向机器的低级编程语言 C.面向过程的编译型高级编程语言 D.面向对象的解释型高级编程语言 11. 下列的变量定义中,错误的是( )。 A) int i; B) int i=Integer.MAX_VALUE; C) static int i=100; D) int 123_$; 12. 以下的变量定义语句中,合法的是( )。 A) float $_*5= 3.4F; B) byte b1= 15678; C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L; 13. 以下字符常量中不合法的是( )。 A) '|' B) '\'' C) "\n" D) '我' 14. 若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。 A) b = a!=7 ; B) a = 7 + b + c=9; C) i=12.3* % 4; D) a = a + 7 = c + b;

java_期末考试试题(含答案)

1、如下哪个是Java中有效的关键字。( C、false ) 2、下面的代码段执行之后count的值是什么。( D、16 ) int count=1; for(int i=1;i<=5;i++){ count+=i; } System.out.println(count); 3、下列哪一个import命令可以使我们在程序中创建输入/输出流对象。( C、import java.io.*; ) 4、下列选项中,不属于Java语言特点的一项是。( C、编译执行 ) 5、阅读下列代码段,选出该代码段的正确的文件名。( D ) class A{ void methodl(){ System.out.println(”methodl in class A”):} } public class B{ void method2(){ System.out.println(”method2 in class B”):} public static void main(String args[]){ System.out.println(”main()in class B”): } } A、A .java B、A.class C、B.class D、B.java 6、下面哪条语句把方法声明为抽象的公共方法。( C.public abstract void method(){} 7、编译下面源程序会得到哪些文件。( D ) class A1{ }class A2{ } public class B{ public static void main(String args[ ]){ } } A、只有B.class文件 B、只有A1.Class和A2.class文件 C、有A1.class、A2.Class和B.class文件 D、编译不成功 8、定义类头时能使用的修饰符是(C、protected )。 A、private B、static C、protected D、abstract 9、为了区分重载多态中同名的不同方法,要求( A、形式参数个数或者类型不同 A、形式参数个数或者类型不同 B、返回值类型不同 C、调用时用类名或对象名做前缀 D、形式参数名称不同 10、float类型数据和double类型数据做加法,得到结果的类型是(C、double类型 )。 11、如果在编译Java程序时,编译结果报告说找不到要编译的代码,通常的错误不是如下的哪一项?(B、文件名拼写错误) 12、int类型被包装在如下的哪一个类中?( B、java.1ang.Integer ) 13、关于对下列代码段的描述,正确的一项是( C )。 catch(Exception e){ System.Err. println(“An exception was thrown”); throw e; } A、程序终止 B、编译出错 C、该异常不会被处理 D、该异常会继续被上层处理 14、下列说法中,错误的一项是( C )。 A、内部类是被定义于另一个类中的类 B、使用内部类实现监听器,在编程时比较容易实现 C、内部类对象可以访问外部类的成员方法和变量,包括私有成员

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

1234124JAVA语言程序设计考试试题及部分答案 一、单选题:(每题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} ; 其中O W 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

面向对象程序设计(JAVA)期末考试考试卷(A卷)

课程代码:座位号: 大学20 -20 学年度第二学期期末考试 《面向对象程序设计》试卷 : 学号: 专业: 学院: 班级: 20 年月日 一、单选题(10小题,共10分) 1.下列选项中,用于在定义子类时声明父类名的关键字是 【】 A.interface B. package C. extends D. class 2.在以下哪种情况下可以获得缺省构造器? 【】 A.当作任何类的定义时 B.当类没有其它构造器时 C.当定义至少一个构造器的时 D.从不需要 3.如果局部变量和成员变量同名,如何在局部变量作用域引用成员变量?【】 A.不能引用,必须改名,使它们的名称不相同 B.在成员变量前加this,使用this访问该成员变量 C.在成员变量前加super,使用super访问该成员变量 D.不影响,系统可以自己区分 4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【】 A.try子句B.catch子句 C.finally子句 D.throw子句 5.下面哪个流类属于面向字符的输入流【】 A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReader 6.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是【】。 A.java.applet B.java.awt C.java.util D.https://www.wendangku.net/doc/106511491.html,ng 7.下面程序定义了一个类,关于该类说确的是【】

Abstract class abstractClass{ …… } A. 该类能调用new abstractClass(),方法实例化为一个对象 B. 该类不能被继承 C. 该类的方法都不能被重载 D. 以上说法都不对 8.已知有下面类的说明: public class X5_1_1 extends x{ private float f =10.6f; int i=16; static int si=10; public static void main(String[] args) { X5_1_1 x=new X5_1_1(); } } 在main()方法中,下面哪条语句的用法是正确的?【】A.x.f B.this.si C .X5_1_1.i D.X5_1_1.f 9.下列说法中,错误的一项是【】 A.Thread类中没有定义run()方法 B.可以通过继承Thread类来创建线程 C.Runnable接口中定义了run()方法 D.可以通过实现Runnable接口创建线程 10.当一个Statement对象要执行一个查询类的SQL语句,调用的方法是【】 A. executeQuery B.execute C. executeUpdate https://www.wendangku.net/doc/106511491.html,mit 二、填空题(10小题,共10分) 1.Java应用程序中有多个类时,java命令后的类名必须是包含了___________ 方法的那个类的名字。 2.使用关键字修饰的代码,称为同步代码段 3.对象创建完后,通过使用运算符“ . ” , 对象可以实现对变量的访问和____________的调用。 4.Java中的非字符输出流都是抽象类____________的子类。

相关文档
相关文档 最新文档