搜索
您的当前位置:首页正文

二级java试题

来源:二三娱乐
import java.awt.*;

import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.Timer;

public class Java_3{

public static void main(String[] args){

ActionListener listener = new TimePrinter(); //*********Found********

Timer t = new Timer(1000, listener); t.start();

JOptionPane.showMessageDialog(null, \"退出程序?\"); System.exit(0); } }

//*********Found********

class TimePrinter implements ActionListener{ //*********Found********

public void actionPerformed(ActionEvent event){ i++;

System.out.println(i);

Toolkit.getDefaultToolkit().beep(); }

int i = 0; }

Java 的图形用户界面是事件驱动的,并且由各种各样的监听器 (Listener) 负责捕捉各种事件。通常由组件类提供的一个 addXXXXXListener 的方法来完成添加监听器。这里添加的ActionListener监听者是处理动作事件。当事件发生时,引发的事件将被此事件的监听者监听到,并引发ActionListener类的actionPerformed(ActionEvent e)方法响应动作事件,语句System.exit(0);用于正常退出程序。

在Java中实现的所谓多维数组,实际上是由一维数组\"焊接\"成的\"数组的数组\"。

由for循环控制数组元素的输出,但输出元素必须控制在数组长度之内,第二个for循环控制的是列的输出,所以本空填\"aTriangle[i].length\"。

由于要输出整个数组,所以,第二个空应该填\"aTriangle[i][k]\"。 具体程序如下: public class Java_2 {

public static void main(String[] args) { int[][] aTriangle = new int[6][]; int i = 0; int j = 6; int k = 0;

for ( i = 0; i < aTriangle.length; i++) { aTriangle[i]=new int[j]; //创建数组。 //给每个数组元素赋值并在一行中打印输出。 //*********Found********

for(k=0;kSystem.out.print(aTriangle[i][k]+\" \"); } j--;

System.out.println(); //换行。 } } }

下列数据结构中,属于非线性结构的是______。

A、循环队列

B、带链队列

C、二叉树

D、带链栈

如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。本题中循环队列、带链队列和带链栈都是线性结构,二叉树是非线性结构。 故本题答案为C。

对于循环队列,下列叙述中正确的是______。

A、队头指针是固定不变的

B、队头指针一定大于队尾指针

C、队头指针一定小于队尾指针

D、队头指针可以大于队尾指针,也可以小于队尾指针

所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。

在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。 循环队列主要有两种基本运算:入队运算与退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,排头指针就进一。当rear或front的值等于队列的长度+1时,就将rear或front的值置为1。一般情况下,rear大于front,因为入队的元素肯定比出队的元素多。特殊的情况是rear到达数组的上限之后又从数组的低端开始,此时,rear是小于front的。 故本题答案为D。

数据流程图(DFD图)是______。

A、软件概要设计的工具

B、软件详细设计的工具

C、结构化方法的需求分析工具

D、面向对象方法的需求分析工具

常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。 故本题答案为C。

下列选项中不属于结构化程序设计原则的是______。

A、可封装

B、自顶向下

C、模块化

D、逐步求精

结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。 故本题答案为A。

数据库管理系统中负责数据模式定义的语言是______。

A、数据定义语言

B、数据管理语言

C、数据操纵语言

D、数据控制语言

数据定义语言(DDL):该语言负责数据的模式定义与数据的物理存取构建。 数据操纵语言(DML):该语言负责数据的操纵,包括查询及增、删、改等操作。

数据控制语言(DCL):该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 故本题答案为A。

在E-R图中,用来表示实体联系的图形是______。

A、椭圆形

B、矩形

C、菱形

D、三角形

在E-R图中用矩形表示实体集,用椭圆形表示属性,用菱形表示联系。 故本题答案为C。

下列程序段的输出结果是______。 int data =0; char k='a',p='f';

data=p-k;

System.out.println(data);

A、0 B、a C、f D、5

在Java中整型、浮点型、字符型被视为简单数据类型,可以进行混合运算,当类型不一致时,需要进行类型转换。从低位类型到高位类型会进行自动转换,而从高位类型到低位类型需要进行强制类型的转换。表达式\"p-k\"中包含char类型的数据,因此变量p和k自动会转换为int类型,然后参与运算,表达式的值为int类型,把它赋给int类型的变量data,输出结果为5。 故本题答案为D。

下列数中为八进制的是______。

A、27

B、0x25

C、026

D、028

八进制数的基数为8,八进制数就是逢8进1,八进制数采用0-7这八个数字来表示一个数,一个数如果要指明它采用八进制,必须在它前面加上一个0。 故本题答案为C。

下列方法中,不属于Throwable类的方法是______。

A、printMessage

B、getMessage

C、toString

D、fillStackTrace

Throwable类是Java语言中所有错误和异常类的超类。只有当对象是此类(或其子类之一)的实例时,才能通过Java虚拟机或者Java throw语句抛出。类似地,只有此类或其子类之一才可以是catch子句中的参数类型。选项A中printMessage()方法不是Throwable类的方法;选项B中getMessage()方法用来返回带参数构造函数创建异常时的参数内容;选项C中toString()方法用来返回异常的类名和getMessage()能得到的内容,两者用冒号分隔;选项D中fillStackTrace()方法用在重新抛出异常时对堆栈的跟踪。

故本题答案为A。

下列程序的输出结果是______。 public class Test {

public static void main(String[] args){ int [] array={2,4,6,8,10};

int size=6; int result=-1; try {

for(int i=0;icatch(ArithmeticException e){ System.out.println(\"Catch---1 \"); }

catch(ArrayIndexOutOfBoundsException e){ System.out.println(\"Catch---2 \"); }

catch(Exception e){

System.out.println(\"Catch---3\"); } }

A、Catch---1

B、Catch---2

C、Catch---3

D、以上都不对

Java使用try语句包括可能抛出异常的代码段,用catch语句指明要捕获的异常相应的处理代码。Java预定义了一些常见异常类,如:

①ArithmeticException,算术异常,如整数除法中,如果除数为0,则发生该类异常;

②ArrayIndexOutofBoundsException,数组索引越界异常,当对数组的索引值为负数或大于等于数组大小时抛出。但是本题程序中缺少一个\,所以程序编译不通过,更无法运行。如果加上\则本题程序执行到第i=6次循环时,会发生数组下标越界异常,即输出:Catch---2。 故本题答案为D。

下列程序的功能是将一个整数数组写入二进制文件。在程序的下划线处应填入的选项是______。 import java.io.*; public class XieShuzu {

public static void main(String[] a) { int [] myArray = {10,20,30,40}; try {

DataOutputStream dos = new DataOutputStream( new FileOutputStream(\"ints.dat \") ); for(int i=0;i(\"已经将整数数组写入二进制文件:ints.dat \"); } catch(IOException ioe)

{ System.out.println(\"IO Exception \"); } } }

A、writeArray

B、writeByte

C、writeInt

D、writeDouble

处理字节流有DataOutputStream类,数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流,可提供一些对Java基本数据类型写入的方法,写入int、double和boolean等的方法。本题要求将一个整数数组写入到二进制文件中,所以需要调用writeInt()方法,将一个int值以4-byte值形式写入基础输出流中,先写入高字节。 故本题答案为C。

下列叙述中,错误的是______。

A、内部类的名称与定义它的类的名称可以相同

B、内部类可用abstract修饰

C、内部类可作为其他类的成员

D、内部类可访问它所在类的成员

内部类具有如下几个属性:1、类名只能在定义的范围内被使用,内部类的名称必须区别于外部类;2、内部类可以使用外部类的类变量和实例变量,也可以使用外部类的局部变量;3、内部类可以定义为abstract类型;4、内部类可以是一个接口,这个接口必须由另一个内部类来实现;5、内部类可以被定义为private或protected类型。当一个类中嵌套另一个类时,访问保护并不妨碍内部类使用外部类的成员;6、被定义为static型的内部类将自动转化为顶层类,它们不能再使用局部范围中或其他内部类中的数据和变量;7、内部类不能定义static型成员,而只有顶层类才能定义static型成员;8、内部类可作为其他类的成员,而且可访问它所在类的成员。

故本题答案为A。

下列Java语句从指定网址读取html文件,在下划线处应填上的选项是______。 Reader in = new ______ (new URL(urlString).openStream());

A、Reader

B、DataOutputStream

C、ByteArrayInputStream

D、InputStreamReader

Java语句从指定网址读取html文件,即打开URL的连接并返回一个从该连接读入的InputStream。代码如下:

Reader in=new InputStreamReader(new BufferedInputStream(url.openStream())); 故本题答案为D。

用鼠标点击菜单项(MenuItem)产生的事件是______。

A、MenuEvent

B、ActionEvent

C、KeyEvent

D、MouseEvent

ActionEvent指示发生了组件定义的动作的语义事件。当特定于组件的动作(比如按钮点击、菜单选择、选择列表项、在文本域中键入enter)发生时,由组件生成此高级事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。 故本题答案为B。

下列不属于逻辑运算符的是______。

A、!

B、||

C、&& D、|

逻辑运算符用于布尔逻辑运算。逻辑与运算符(&&)、逻辑或运算符(||)、逻辑非运算符(!)能生成一个布尔值(true或false)。选项A)为逻辑非运算符,选项B)为逻辑或运算符,选项C)为逻辑与运算符,选项D)为按位或运算符,属于位运算符。 故本题答案为D。

当使用SomeThread t = new SomeThread()创建一个线程时,下列叙述中正确的是______。

A、SomeThread类是包含run()方法的任意Java类

B、SomeThread类一定要实现Runnable接口

C、SomeThread类是Thread类的子类

D、SomeThread类是Thread类的子类并且要实现Runnable接口

线程是彼此相互独立的、能独立运行的子任务,并且每个线程都有自己的调用栈。创建线程有两种方法。一种方法是将类声明为Thread的子类,使用继承创建线程,通过new命令创建一个线程对象后,该线程对象就处于创建状态。创建一个新的线程对象语句为SomeThread t=new SomeThread()。创建线程的另一种方法是声明实现Runnable接口的类。线程的所有活动都是通过线程体来实现的,类Thread是在java.lang包中定义的,创建一个新的线程对象语句为SomeThread t=new SomeThread(ThreadGroup group,Runnable target,String name)。

故本题答案为C。

在程序的下划线处应填入的选项是______。

public class Test ______ {

public static void main(String args[]){ Test t = new Test(); Thread tt = new Thread(t); tt.start(); }

public void run(){ for(int i=0;i<5;i++){ System.out.println(\"i=\"+i); } }

A、implements Runnable

B、extends Thread

C、implements Thread

D、extends Runnable

创建线程有两种方法。一种方法是将类声明为Thread的子类;另一种方法是声明实现Runnable接口的类。 ①继承Thread:

class PrimeThread extends Thread { long minPrime;

PrimeThread(long minPrime) { this.minPrime = minPrime; }

public void run() {

// compute primes larger than minPrime „„ } }

然后,下列代码会创建并启动一个线程: PrimeThread p = new PrimeThread(); p.start();

② 实现Runnable接口

class PrimeRun implements Runnable { long minPrime;

PrimeRun(long minPrime) { this.minPrime = minPrime; }

public void run() {

// compute primes larger than minPrime „„ } }

然后,下列代码会创建并启动一个线程: PrimeRun p = new PrimeRun(); new Thread(p).start(); A

为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下划线处依次填入的语句是______。 public class IntStack{ private int idx = 0;

private int[] data = new int[8]; public ______ void push(int i){ data[idx]=i; idx++; ______ } „„ }

A、synchronized() notify()

B、synchronized this.wait()

C、synchronized this.notify()

D、Serializable sleep()

synchronized关键字可用来检测和获得对象锁,并设定临界区。为了防止对共享数据的访问发生错误,应该将访问共享数据的代码使用synchronized关键字设置成临界区。这样加锁进行保护。线程间的交互,wait()和notify(),线程调用x.wait(),则该线程将被放入对象x的wait pool,并且将释放x的对象锁。线程调用x.notify(),则对象x的wait pool中的一个线程将移入lock pool,等待x的对象锁,一旦获得便可以运行。

本题部分程序代码如下: public class IntStack{ „„

public synchronized void push(int i){ //加上互斥锁 „„

this.notify();//通知其它线程把数据出栈 } }

故本题答案为C。

在HTML文件的标志中作为可选属性的是______。

A、Applet主类的文件名

B、Applet显示区域的宽度

C、Applet主类的路径

D、Applet显示区域的高度

本题考查的是HTML的Applet标记。

对于支持Java的浏览器,如果在解析一个HTML文件时遇到标记,就按照width和height属性的值,为Applet保留一定大小的显示空间,并根据code指定Applet的字节码文件,用户可以通过网络获得该文件。最简单的HTML文件为。 故本题答案为C。

如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是______。

A、sleep()方法的时间到

B、获得了对象的锁

C、线程在调用t.join()方法后,线程t结束

D、wait()方法结束

阻塞状态是指线程因为某些原因放弃CPU,暂时停止运行。根据产生的原因可分为对象锁阻塞、等待阻塞和其他阻塞。状态相应变迁如下:线程调用了sleep()方法、join()方法时,线程进入其他阻塞状态;由于调用sleep()方法而进入其他阻塞状态的线程,睡眠时间到时将进入可运行状态;由于调用t.join()方法而进入其他阻塞状态的线程,当t线程结束或等待时间到时,进入可运行状态;对象锁阻塞状态下的线程当获得对象锁后,将进入可运行状态。 故本题答案为D。

运行下列程序时,若没有test.dat文件,则______。 import java.io.*; public class Test{

public static void main(String[] args){ try{

RandomAccessFile raf=new RandomAccessFile(\"test.dat\ System.out.println(\"test.dat\"); }

catch(IOException ex){

System.out.println(\"exception\"); } }

A、输出exception

B、输出test.dat

C、输出IOException

D、无显示

在Java中提供了结构化的异常处理功能,其主要是通过try...catch语句来实现的。在Java中可以将可能产生异常的代码放入到try子句中,如果产生异常,将会执行catch子句。

在本程序执行过程中,由于找不到\"test.dat\",产生异常,转而执行catch子句,通过语句\"System.out.println(\"exception\");\",输出:exception。 故本题答案为A。

下列代码的下划线处应填入的是______。 import java.io.*; public class Chouti{

public static void main(String[] args) throws IOException{ InputStreamReader ir; BufferedReader in; ir=new ______(System.in); in=new BufferedReader(ir); System.out.println(\"请输入:\"); String str=in.readLine(); System.out.println(str); } }

A、BufferedReader

B、InputStreamReader

C、InputStream

D、OutputStream

InputStreamReader和BufferedReader都是字符类输入流,都是抽象类Reader的子类。

本程序的作用是读取用户输入的一行字符,再输出,由于程序中同时用到InputStreamReader和BufferedReader类的对象,所以输入的字符将被输出两次。根据语句\"InputStreamReader ir;\"和语句\"in=new BufferedReader(ir);\"可知,下划线处填\"InputStreamReader\"。 故本题答案为B。

如果要从一个HTML文件中提取名为message的参数的值,需要在Applet类的init()方法中使用的代码行是______。

A、String s=getParameter(\"message\")

B、String s=getParameter(\"MESSAGE\")

C、String s=Parameter(\"message\")

D、String s=getParameter(\"message\")或String s=getParameter(\"MESSAGE\")

Applet被下载时,在Applet的init()方法中使用getParameter()方法获取参数。getParameter()方法的入口参数是所取参数的名字(必须与标记中的name指示的名字相同),返回值是参数的值。另外,JAVA是严格区分大小写的,所以参数\"MESSAGE\"和参数\"message\"不同。

故本题答案为A。

1)FileInputStream用来从文件建立输入流,以顺序读取文件的内容。通过使用FileInputStream可以访问文件的一个字节、几个字节或整个文件。

为一个文件打开输入流FileInputStream,必须将文件名或文件对象传送给结构: FileInputStream myFileStream = new FileInputStream ( \"/etc/motd\");

本题由于是从文件data.dat中读出10个整数,故第一空\"DataInputStream in=new DataInputStream(new ______(\"data.dat\"));\"填\"FileInputStream\"。

2)程序中for循环的作用是通过10次循环将整型数组anArray中的10个整数相加,并将其和放在变量total中,故第二空\"total=______;\"填\"total+anArray[i]\"或写成\"anArray[i]+total\"。 具体程序如下: import java.io.*;

public class Java_2{

public static void main(String[] args) {

int[] anArray = new int[10]; // 声明并创建包含10个元素的整型数组。 int i = 0; int total=0; try{

// 从data.dat中读出10个整数,放在整型数组中。

//*********Found********

DataInputStream in=new DataInputStream(new FileInputStream(\"data.dat\")); while(in.available() != 0){ anArray[i++] = in.readInt(); }

in.close();

//将整型数组中的10个整数相加,并将这些数及其和显示输出。 for ( i = 0; i < anArray.length; i++){

//*********Found********

total=total+anArray[i]; if (iSystem.out.print(anArray[i]); System.out.print('+'); } else{

System.out.print(anArray[i]); }

}

System.out.println(\" = \"+total); }catch(IOException e1){} } }

1)由于本题求的是命令行参数指定的整数的阶乘,所以当命令行有参数输入时,需将其参数赋值给字符串变量num,故第一空\"num=_______;\"填\"args[0]\"。

2)由于变量num中存的是字符串,故要将字符串转化成数值才能求其阶乘,所以第二空\"int input=Integer.parseInt(______);\"填\"num\"。

3)本题通过while循环求出了命令行中输入的数的阶乘并存放于变量fact中,故第三空\"fact=______*x;\"填\"fact\"。 具体程序如下: public class Java_3 {

public static void main(String[] args) {

String num; if(args.length > 0) //*********Found******** num=args[0]; else

num = \"5\";

//*********Found********

int input=Integer.parseInt(num); int result = Java_3(input);

System.out.println(input+ \" 的阶乘是 \"+ result); }

public static int Java_3(int x) {

if( x < 0 ) return 0; int fact = 1; while(x > 1) {

//*********Found******** fact=fact*x; x = x-1; }

return fact; }

某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)______。

A、3

B、4 C、6 D、7

要满足该题的要求,则二叉树的每一层上都只能有一个结点,否则叶子结点数一定大于1。 故本题答案为D。 下列叙述中正确的是______。

A、一个逻辑数据结构只能有一种存储结构

B、数据的逻辑结构属于线性结构,存储结构属于非线性结构

C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。

故本题答案为D

下列选项中不属于结构化程序设计原则的是______。

A、可封装

B、自顶向下

C、模块化

D、逐步求精

结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。

故本题答案为A

负责数据库中查询操作的数据库语言是______。

A、数据定义语言

B、数据管理语言

C、数据操纵语言

D、数据控制语言

数据定义语言(DDL):该语言负责数据的模式定义与数据的物理存取构建。 数据操纵语言(DML):该语言负责数据的操纵,包括查询及增、删、改等操作。

数据控制语言(DCL):该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 故本题答案为C。 数据库管理系统是____B__。

A、操作系统的一部分

B、在操作系统支持下的系统软件

C、一种编译系统

D、一种操作系统

下列关于System类的叙述中,错误的是______。

A、System类是一个final类

B、System类不能实例化

C、System类中没有定义属性

D、System类主要提供了系统环境参数的访问

System类是一个final类,它不能被继承,同时它又是一个抽象类,所以也是一个不能被实例化的类,它主要提供标准输入输出、错误输出流、对外部定义的属性及环境变量的访问、加载文件和库的方法、还有快速复制数组的一部分的实用方法。 故本题答案为C。

在JDK目录中,Java程序运行环境的根目录是___D___。

A、bin

B、demo

C、lib

D、jre

下列适配器类中不属于事件适配器类的是______。

A、MouseAdapter

B、KeyAdapter

C、ComponentAdapter

D、FrameAdapter

Java语言为一些Listener接口提供适配器(Adapter)类。可以通过继承事件所对应的Adapter类,重写需要的方法,无关方法不用实现。 事件适配器--EventAdapter。

java.awt.event包中定义的事件适配器包括以下几个: ComponentAdapter:构件适配器 ContainerAdapter:容器适配器 FocusAdapter:焦点适配器 KeyAdapter:键盘适配器

MouseAdapter:鼠标适配器

MouseMotionAdapter:鼠标运动适配器 WindowAdapter:窗口适配器 故本题答案为D。

下列运算符中不能进行位运算的是______。

A、>>

B、>>>

C、<<

D、<<<

位运算符:

>>:按位右移,高位扩展,即算术右移; <<:按位左移;

>>>:添零右移,即逻辑右移; &:按位与; ︱:按位或; ^:按位异或; ~:按位取反。 故本题答案为D。

下列类中属于字节输入抽象类的是______。

A、FileInputStream

B、ObjectInputStream

C、FilterInputStream

D、InputStream

Java中处理字节流的抽象类有InputStream和OutputStream。其中字节输入流都是抽象类InputStream的子类。

ByteArrayInputStream以字节数组为输入流。

FileInputStream可对一个磁盘文件涉及的数据进行处理。 PipedInputStream是实现线程之间通信的一个类。 FilterInputStream过滤器输入流本身也是一个抽象类。

SequenceInputStream将多个输入流首尾连接,得到一个新的输入流。

ObjectInputStream类实现了ObjectInput接口,对象在传输前,要首先实现Serializable接口。 故本题答案为D。

能向内存直接写入数据的流是______。

A、FileOutputStream

B、FileInputStream

C、ByteArrayOutputStream

D、ByteArrayInputStream

FileOutputStream用于对磁盘文件涉及的数据流进行输出处理,即向一个文件对象中写入数据。 FileInputStream可对一个磁盘文件涉及的数据进行处理。

ByteArrayOutputStream字节数组输出流。这个类将一个字节数组作为输出流,而任何内存块都可以以字节数组的形式使用,故利用该类可以对内存进行写入操作。

ByteArrayInputStream以字节数组为输入流,它只能用于从内存中读取字节流。 故本题答案为C。

下面程序中需要对Employee的对象进行存储,请在下划线处填入正确选项______。 class Employee implements ______{ „„ }

A、Comparable

B、Serializable

C、Cloneable

D、DataInput

题目中出现了关键字:\"implements\",那么可以知道所要填的内容是接口。

接口是一种只含有抽象方法或常量的一种特殊的抽象类。通过java.io.Serializable接口序列化一个对象时,有关类的信息,比如它的属性和这些属性的类型,都与实例数据一起被存储起来。 故本题答案为B。 阅读下面程序 import java.io.*;

public class ByteStreamTest{

public static void main(String[] a){ int [] myArray = {10,20,30,40}; try{

DataOutputStream dos = new DataOutputStream for(int i=0;i(new _________________(\"ints.dat\")); dos.writeInt(myArray[i]); dos.close();

System.out.println(\"Have written binary file ints.dat\"); }

catch (IOException ioe){

System.out.println(\"IO Exception\"); } } }

为保证程序正确运行,在程序中下划线处应填入的代码是______。

A、FileOutputStream

B、ByteArrayOutputStream

C、BufferedOutputStream

D、FileWriter

本题中A选项的格式和内容是正确的;B选项,其构造函数的正确格式应该为:ByteArrayOutputStream(int),构造函数为一个整型变量或不带参数,不能是字符串;C选项,其构造函数正确格式为:BufferedOutputStream(OutputStream)或BufferedOutputStream(OutputStream,int),它不接受字符串作为其构造函数;D选项,其构造函数正确格式为:FileWriter(File)或,FileWriter(String),但FileWriter只用来对字符流进行操作,不满足DataOutputStream的要求。 故本题答案为A。

要在HTML文件中嵌入Applet,在标记中必须定义的是______。

A、Applet字节码文件的URL

B、Applet显示区域的高度和宽度

C、Applet字节码的文件名

D、B和C

Applet的运行环境是Web浏览器,所以不能直接通过命令行启动,必须建立HTML文件,告诉浏览器如何加载与运行Applet。在浏览器中指定该HTML文件的URL,就可以通过该HTML文件启动Applet运行。

HTML标志方法用于获取HTML文件中关于Applet的信息,如包含Applet的HTML文件的URL地址、通过HTML标志传给Applet的参数等。 故本题答案为A。

如果用户定义的Applet类中没有init()方法,则该程序______。

A、必须定义一个main()方法

B、无法通过编译

C、可以通过编译,但运行时将出错

D、可以通过编译,并且能够正常运行

Applet的关键方法init(),Applet运行时,首先由浏览器调用init()方法,通知该Applet已被加载到浏览器中,使Applet执行一些基本初始化。该方法经常被重写,实现设置布局管理器、数据初始化、放置一些构件等功能。但是,每个Applet必须至少实现init()、start()和paint()中的一个方法。 故本题答案为D。 阅读下面程序

class Test implements Runnable{

public static void main(String[] args){ Test t = new Test(); t.start(); }

public void run(){ } }

下列关于上述程序的叙述正确的是______。

A、程序不能通过编译,因为start()方法在Test类中没有定义

B、程序编译通过,但运行时出错,提示start()方法没有定义

C、程序不能通过编译,因为run()方法没有定义方法体

D、程序编译通过,且运行正常

Java中成员方法只在类中定义,用来处理该类数据。本题程序中并没有定义t.strat()方法,所以运行时就会报出start()没定义的错误。 故本题答案为A。

如果使用Thread t=new Test()语句创建一个线程,则下列叙述正确的是______。

A、Test类一定要实现Runnable接口

B、Test类一定是Thread类的子类

C、Test类一定是Runnable的子类

D、Test类一定是继承Thread类并且实现Runnable接口

线程的创建有两种方法:实现Runnable接口和继承Thread类。

(1)通过实现Runnable接口创建线程:当实现Runnable接口的类的对象用来创建线程后,该线程的启动将使得对象的run()方法被调用。通过这种方式创建线程的过程是:Runnable的一个实例作为参数传递给Thread类的一个构造方法,该实例对象提供线程体run()。

(2)通过继承Thread类创建线程:Thread类本身实现了Runnable接口,所以在java.lang的Thread类的定义中可以发现run()方法。因此,可以通过继承Thread类,并重写其中的run()方法定义线程体,然后创建该子类的对象,从而创建线程。 故本题答案为D。

下列方法中,声明抛出InterruptedException类型异常的方法是______。

A、suspend()

B、resume()

C、sleep()

D、start()

在Java语言中,有时一个方法生成一个异常,但该方法并不能确定如何处理异常,如找不到文件之类的异常,必须将异常传递给调用方法,由调用它的方法来处理,这时候方法用声明异常抛出,让异常对象可从调用栈向后传递,直到有相应的方法捕获它为止。

sleep()方法是使一个线程暂停运行一段固定的时间。在休眠时间内,线程将不运行。当一个线程正在等待、休眠或暂停了较长时间,而另一个线程用Thread类中的interrupt方法中断它时抛出该异常。

故本题答案为C。

下列选项中能正确创建一个InputStreamReader对象的是______。

A、new InputStreamReader(new FileInputStream(\"hello.txt\"));

B、new InputStreamReader(new FileReader(\"hello.txt\"));

C、new InputStreamReader(new BufferedReader(\"hello.txt\"));

D、new InputStreamReader(\"hello.txt\");

InputStreamReader是字节流通向字符流的桥梁,它的构造方法:InputStreamReader(InputStream in),创建一个使用默认字符集的InputStreamReader。

FileInputStream的构造方法:FileInputStream(File file),用来从文件中读取字节流。 因

InputStreamReader

\"new

InputStreamReader(new

FileInputStream(\"hello.txt\"));\"。 故本题答案为A。

若当前目录下不存在hello.txt文件,则下列程序运行后的结果是______。 import java.io.*; public class Test{

public static void main(String[] args){ try{

PrintWriter out=new PrintWriter(new FileOutputStream(\"hello.txt\")); String str=\"abcdefg\"; out.print(str); out.close(); }

catch(Exception e){

System.out.println(\"文件没有被发现!\"); } } }

A、将在屏幕上输出\"文件没有被发现!\"

B、生成hello.txt文件,并且文件的内容为\"abcdefg\"

C、正常运行,但没有生成hello.txt文件

D、生成hello.txt文件,但文件中无内容

FileOutputStream类的构造方法:FileOutputStream(File file)创建一个向指定File对象表示的文件中写入数据的文件输出流。PrintWriter类的构造方法:PrintWriter(OutputStream out)根据现有的OutputStream创建不带自动行刷新的新PrintWriter。

根据题意,当前目录下不存在hello.txt文件,语句\"PrintWriter out=new PrintWriter(new FileOutputStream(\"hello.txt\"));\"将生成一个名为hello.txt的文件,并创建一个指向hello.txt的文件输出流的打印对象的格式化表示形式。

\"String str=\"abcdefg\";\"创建String类的对象str,并指向字符串常量\"abcdefg\"。\"out.print(str);\"打印字符串。

因此,程序生成hello.txt文件,并且文件的内容为\"abcdefg\"。 故本题答案为B。

下列关于线程优先级与线程调度的描述中,错误的是______。

A、Java中的线程是有优先级的

B、新建线程将继承创建它的父线程的优先级

C、当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行

D、具有相同优先级的多个线程的调度一定是分时的

本题考查的是线程的调度与控制。

Java中的线程是有优先级的,选项A正确。新建线程将继承创建它的父线程的优先级,选项B正确。Java的线程调度策略是一种基于优先级的抢先式调度,这种调度策略的含义是:Java基于线程的优先级选择高优先级的线程进行运行。该线程(当前线程)将持续运行,直到它终止运行,或其他高优先级线程成为可运行的。在后一种情况,低优先级线程被高优先级线程抢占运行。选项C正确。 故本题答案为D。 本题的要求是:

完善该程序并进行调试,程序先显示一个输入窗口如下:

输入1个整数,显示的结果如下:

本题考查的是JOptionPane类。

Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。这些对话框都是模式对话框,可以采用showXXXDialog()来显示,如showConfirmDialog()显示确认对话框、showInputDialog()显示输入文本对话框、showMessageDialog()显示信息对话框、showOptionDialog()显示选择性的对话框。

Integer类的静态方法parseInt()的作用是将其它数据类型转换成整型。\"x = Integer.parseInt( xVal );\"是将外部传递的字符串数据xVal转换成整型后赋值给整型变量x。

具体程序如下:

import javax.swing.JOptionPane; public class Java_1{

public static void main( String args[] ){ int x, result; String xVal; //*********Found**********

xVal = JOptionPane.showInputDialog( \"输入第1个整数:\" ); //*********Found**********

x = Integer.parseInt( xVal ); result = x * x; //*********Found**********

JOptionPane.showMessageDialog( null, \"该数的平方是\" + result ); System.exit( 0 ); } }

本题的要求是:

1.以行的方式读入每个用户名及其密码信息,例如:user1 123456 (用户名和密码之间用一个空格隔开);

2.循环读入,直到用户输入\"quit\"或者\"QUIT\"结束;

3.程序结束前提示用户输入一个文件名来保存前面输入的所有用户名和密码。 本题涉及输入输出流的使用,需要导入java.io包,所以第一空填“io”。

System类是一个特殊类,它是一个final类,所有的方法都用类变量来调用,即对System类不能实例化,它主要提供了标准输入输出和系统环境的访问、设置。其中,它的属性“public static final InputStream in”表示标准输入。本题要求“以行的方式读入每个用户名及其密码信息”,所以第二空填“System.in”。 本题要求“循环读入,直到用户输入'quit'或者'QUIT'结束”,所以第三空填“quit”。

程序中创建了一个Vector对象v,先使用add()方法将从键盘输入的用户名和密码存入v中,然后新建一个文件,最后使用BufferedWriter类的write()方法将所有的用户名和密码显示出来写入该文件中。所以第四空填“tmp”。 具体程序如下: //*********Found********** import java.io.*; import java.util.Vector;

public class Java_2 {

public static void main(String args[]) {

Vector v=new Vector(); try {

//*********Found**********

BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String str = \"\";

System.out.println(\"请输入用户和密码信息,中间用空格隔开,输入quit退出:\"); //*********Found**********

while(!(str.equals(\"quit\")||str.equals(\"QUIT\"))) {

str = in.readLine(); if(isValid(str)) v.add(str); else {

if(!(str.equals(\"quit\")||str.equals(\"QUIT\"))) System.out.println(\"The string is NOT valid!\"); } }

System.out.println(\"请输入保存到的文件名:\"); str=in.readLine();

String curDir = System.getProperty(\"user.dir\"); File savedfile=new File(curDir+\"\\\\\"+ str );

BufferedWriter out = new BufferedWriter(new FileWriter(savedfile)); for(int i=0; iString tmp=(String)v.elementAt(i); //*********Found********** out.write(tmp); out.write(\"\\n\"); }

out.close(); }

catch (Exception e) {

System.out.print(\"ERROR:\"+e.getMessage()); } }

/**

* 判定输入的字符串是否符合规范 * @param s 输入的待校验的字符串 * @return 校验的结果,正确则返回为真 */

public static boolean isValid(String s) {

if(s.indexOf(\" \")>0) return true; else

return false; } }

本题的要求是:

在考生文件夹中存有文件名为Java_3.java文件,该程序完成以下功能:

1.点击上图中的\"JDialog\"按扭,弹出下图所示的对话框;

2.输入姓名、口令后,在上图文本框中显示下图所输入的数据。

Java语言为一些Listener接口提供了适配器(Adapter)类。可以通过继承事件所对应的Adapter类,重写需要的方法。WindowAdapter是窗口适配器,所以第一空填“WindowAdapter”。

Java的图形用户界面是事件驱动的,并且由各种各样的监听器(Listener)负责捕捉各种事件。通常由组件类提供的一个addXXXXXListener的方法来完成添加监听器。Frame(框架)是顶级窗口,可以显示标题,重置大小,关闭时,将产生WindowEvent事件,所以第二空填“addWindowListener”;JButton(按钮)是常用控件,使用ActionListener来监听其状态是否激活,所以第三空填“addActionListener”;第四空要求实现的功能是隐藏对话框,所以填“false”;第五空,使用Java_3类对象example来调用initGUI()方法,所以填“initGUI()”。 具体程序如下: import javax.swing.*;

import java.awt.*; import java.awt.event.*;

//*********Found**********

public class Java_3 extends WindowAdapter implements ActionListener {

private JFrame frame; private JTextField name; private JPasswordField pass; private JLabel nameLabel; private JLabel passLabel; private JPanel textPanel; private JPanel labelPanel; private JButton button; private JTextArea textArea;

public void initGUI() {

frame=new JFrame(\"Frame with Dialog\"); //*********Found********** frame.addWindowListener(this); button=new JButton(\"JDialog\"); //*********Found**********

button.addActionListener(this); textArea=new JTextArea(\"\

frame.getContentPane().add(textArea,BorderLayout.CENTER); frame.getContentPane().add(button,BorderLayout.NORTH);

frame.setSize(400,300); frame.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

final JDialog dia=new JDialog(frame,\"login information\"); JButton ok=new JButton(\"ok\");

ok.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

textArea.setText(\"\");

textArea.append(\"name:\"+name.getText()+\"\\r\\n\");

textArea.append(\"passWord:\"+new String(pass.getPassword())+\"\\r\\n\"); //*********Found**********

dia.setVisible(false); //隐藏对话框 } });

name=new JTextField(\"\ pass=new JPasswordField(\"\ pass.setEchoChar('*'); textPanel=new JPanel();

textPanel.setLayout(new GridLayout(2,1,10,10)); textPanel.add(name); textPanel.add(pass);

nameLabel=new JLabel(\"name\"); passLabel=new JLabel(\"passWord\"); labelPanel=new JPanel();

labelPanel.setLayout(new GridLayout(2,1,20,20)); labelPanel.add(nameLabel); labelPanel.add(passLabel);

dia.getContentPane().add(labelPanel,BorderLayout.WEST); dia.getContentPane().add(textPanel,BorderLayout.CENTER); dia.getContentPane().add(ok,BorderLayout.SOUTH); dia.setSize(200,130); dia.setVisible(true); }

public void windowClosing(WindowEvent event) {

frame.setVisible(false); System.exit(0); }

public static void main(String args[]) {

Java_3 example=new Java_3(); //*********Found********** example.initGUI(); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top