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;k 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;i 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 { 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文件的