一、简答题
2、Java程序是由什么组成的?Java 源文件的命名规则是怎样的?
答:一个Java 程序是由若干个类组成的。但只能有一个类是public 类。
Java源文件命名规则是:源文件名必须与其中的public 类的名字相同,扩展名是java;
如果源文件中没有public 类,那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了。
3、Java语言与Java技术的关系如何?Java语言包括哪两部分?
答:Java语言是Java技术的基础。Java语言包括语法规则和Java类库两部分。
4、开发与运行Java程序需要经过哪些主要过程?
答:源程序编辑、字节码编译和解释运行。
5、为什么一个Java文件编译后可以获得多个字节码文件?
答:这是因为一个源文件中可有多个类,文件经过编译后,每个类就生成一个字节码文件(扩展名为class)。
7、面向对象的开发方法与传统的面向过程的开发方法有什么不同?
答:传统的面向过程的开发方法是把现实世界的问题转化成计算机逻辑,
而面向对象技术是计算机逻辑来模拟现实世界的问题。
8、什么是对象、类和实体?它们之间的关系如何?
试述下面的说法映射到面向对象的计算机逻辑中分别对应什么概念。
(1)计算机92班(2)计算机92班的同学刘利(3)大学生(4)X大学的大学生(5)班级
答:对象是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现;
类是同种对象的集合与抽象。
(1)班级类的对象(2)大学生类的对象(3)大学生类(4)大学生类的子类(5)班级类9、对象有哪些属性?在计算机逻辑中如何描述这些属性?
答:对象有状态、行为、标志三个属性;
在计算机逻辑中分别用对象的变量、方法和对象名来描述这三个属性。
10、面向对象的开发包括哪些过程?
答:面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的开发(OOP)、面向对象的维护。
11、面向对象程序设计方法有哪几个最重要的特点?
答:抽象、封装、继承、多态。
12、什么是父类(超类)?什么是子类?父类、子类间属性有何关系?
答:当两个类具有继承关系时,被继承的类称为父类或超类;继承了父类或超类的所有数据和操作的类称为子类。父类是所有子类的公共属性的集合,而每一个子类则是父类的特殊化,是在公共属性的基础上的功能、内涵的扩展和延伸。
13、什么是封装?
答:封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其它部分只有通过包裹在数据外面的被授权的操作,才能够与这个抽象数据类型交流和交互。
14、使用继承有什么好处?什么是单重继承?什么是多重继承?Java采用的是单重继承还是多重继承?
答:使用继承的主要好处是使得程序结构清晰,降低了编码和维护的工作量。只有一个单一父类称为单重继承。一个类可以有一个以上的父类称为多重继承。Java采用的是单重继承。
15、什么是多态?实现多态有哪些方式?
答:一个程序中同名的不同方法共存的情况称为多态。实现多态的方式有覆盖和重载。
16、什么是覆盖多态?什么是重载多态?覆盖多态和重载多态分别如何区分不同的同名方法?
答:子类对继承自父类的方法的重新定义就称为方法的覆盖,这种多态称为覆盖多态;类对自身已有的同名方法的重新定义称为重载,这种多态称为重载多态。覆盖多态以对象名或类名为前缀来区分不同的同名方法;而重载多态则是使用不同的参数列表来区分不同的同名方法。
17、类及类成员的访问控制符有哪些?
答:类成员:public,protected,friendly(default),private
类:public,final,abstract,protected(不加任何说明的缺省值)
18、构造函数特殊在哪里?构造函数什么时候执行?被谁调用?
答:构造函数的特殊性在于它既可以从父类那里继承,也可以相互重载。
构造函数在创建新对象时执行,由系统自动调用。
21、关键字static可以修饰哪些类的组成部分?
答:可以修饰属性、方法、静态初始化器。
22、什么是静态初始化器?静态初始化器与构造函数有什么不同?
答:静态初始化器是由关键字static引导的一对大括号括起的语句组,其作用与类的构造函数有些相似,p都是用来完成初始化的工作,但静态初始化器在三点上与构造函数有根本的不同:
(1)构造函数是对每个新创建的对象初始化,
而静态初始化块是对类自身进行初始化,只在类的第一个对象创建之前执行一次。
(2)构造函数是在用new运算符产生新对象时由系统自动执行,
而静态初始化块则是在它所属的类加载入内存时由系统调用执行。
(3)不同于构造函数,静态初始化块不是方法,没有方法名、返回值和参数列表。23、静态属性有什么特点?类对象可以访问或修改静态属性吗?
答:静态属性是类的属性,不专属于某个方法,类对象可以访问或修改静态属性。24、设某程序创建了类MyClassl的两个对象,试写出静态初始化器和构造函数执行的前后次序与次数。
答:先执行类MyClassl的静态初始化器一次,再执行构造函数两次。
25、抽象方法有什么特点?抽象方法的方法体在何处定义?
答:抽象方法的特点是用abstrac t修饰符修饰,只有方法头没有具体的方法体。
抽象方法在定义该方法的抽象类的非抽象子类中定义。
26、final修饰符可以用来修饰什么?被final修饰符修饰后有何特点?
答:final修饰符可用来修饰类、属性、方法和终结器。
被final修饰符修饰的类没有子类。被final修饰符修饰的属性在程序整个执行过程中都不能改变。被final修饰符修饰的方法是功能和内部语句不能更改的最终方法。被final 修饰符修饰的终结器(以称析构器——finalize()方法,是在对象被删除前进行收尾工作的方法)也是不能更改的。
27、哪些修饰符不能组合使用?
答:abstract与final(课本P62,final方法可以被继承但是不能被修改,但被final 修饰符修饰的类没有子类),abstract与private,abstract与static,构造函数不能是静态的,因为构造函数是创建对象时自动调用。
28、书写语句完成下面的功能。
(1)定义一个类,其名称为MyClass,类体为空,它可以被所有的其他类访问。
(2)将对象Objectl的属性fieldl在屏幕上显示出来。
答:(1)public class MyClass{} (2)System.out.print(Object1.field1);
29、书写语句完成下面的功能。
(1)调用对象Objectl的方法methodl,把返回值赋值给变量Hold。
(2)定义一个整型属性Mine,使得只有这个类本身可以访问它。
答:(1) Hold=Object1.method1(); (2) private int Mine;
30、书写语句完成下面的功能。
(1)为类Classl定义一个整型变量field2,使得所有其他类都可以访问它。
(2)定义一个无形式参数无返回值的方法method2,使得使用类名Classl作前缀就可以调用它。
答:(1) public class Class1{public int field2;} (2) static void method2() 类的静态方法
31、书写语句完成下面的功能。
(1)为类Class2编写构造函数的方法头,该构造函数不接受形式参数。
(2)为类Class2编写构造函数的方法头,该构造函数接受两个整型形式参数。
答:(1) Class2() (2) Class2(int c1,int c2)
32、书写语句完成下面的功能。
(1)创建类Classl的一个对象Objectl,定义这个类的一个引用Refl,把对象Objectl 的引用赋给Ref1。
(2)为类Classl创建一个静态整型变量s_data。
答:(1) Class1 Object1=new Class1();左边创建了一个对象Class1 Ref1=Object1; 右边创建了一个引用
(2) static int s_data;
33、Java中如何定义继承关系?写出定义类库中的类java.awt.Frame的子类MyFrame的类头的语句。
答:Java中是通过extends关键字定义继承关系的,其语句的一般格式是:class 子类extends 父类。
import java.awt.*;class MyFrame extends Frame
34、设父类SuperClass中定义了公共整型属性SuperProperty,SuperClass的子类SubClass 中定义了公共整型属性SubProperty,则属性SubClass.SuperProperty是否存在?来自何处?
答:存在,这个属性是从其父类那里继承来的。
35、什么是多重继承?Java是否支持多重继承?Java采取什么机制来替代多重继承?
答:一个子类有多个父类的情况称为多重继承,Java不支持多重继承,Java用实现接口的方法替代多重继承。
36、什么是属性(域)的隐藏?
答:子类重新定义一个与从父类那里继承来的属性完全相同的属性,称为属性的隐藏。37、一个类里是否可以有同名属性共存的情况?是否最多只能有两个同名的属性。
答:子类重新定义父类的同名属性可以实现同名属性共存,若此子类的同名属性又被其子类所隐藏,可以有更多的同名属性共存。
38、一个类里有同名属性共存的情况下,如何分别操纵这些同名的属性?
答:使用子类定义的方法将操纵子类定义的属性;使用继承自父类的方法将操纵父类定义的属性。
39、子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?此时子类中还
能找到父类原来的方法吗?
答:这种情况称为方法的覆盖,此时,在子类中已不能找到父类原来的方法,它的内存位置已经被替代。
40、同名的不同方法共存的情况称为什么?如何区分这些同名方法?
答:这种情况称为方法的重载。不同类的同名方法用类名区分,
同类的同名方法用形式参数数目、顺序和类型区分。
41、Java中的多态有哪些方式?
答:Java中的多态有两种方式,第一种是子类对父类方法的覆盖,第二种是同类中方法的重载。
42、“重载中,两个同名方法只要返回类型或参数列表不同即可互相分辨”这种说法是否正确?为什么?
答:不正确,仅仅返回类型不同不能区分同名方法,必须参数列表不同。
43、试解释this和super两个关键字,其中this指代的是一个类还是一个具体的对象?
答:this表示的是当前对象本身,即this代表了当前对象的一个引用。super表示的是当前对象的父类对象,是当前对象的直接父类对象的引用。this指代的是一个具体对象。
44、子类SubClass重新定义并覆盖了父类SuperClass中的方法methodl(),如何使子类能够调用父类原先定义的方法methodl()? 答:super.methodl();
45、构造函数可以继承吗?子类继承父类的构造函数应遵循哪些原则?
答:子类可以继承父类的构造函数,构造函数的继承原则有:
(1)子类无条件地继承父类的不含参数的构造函数;
(2)如果子类自己没有构造函数,则它将继承父类的无参数构造函数作为自己的构造函数,如果子类自己定义了构造函数,则在创建新对象时,它将先执行继承自父类的无参数构造函数,然后再执行自己的构造函数。(3)对于父类的含参数的构造函数,子类可以通过在自己构造函数中使用super关键字来调用它,但这个调用语句必须是子类构造函数的第一个可执行语句。
46、一个构造函数如何调用同类的其他构造函数?如何调用父类的构造函数?
答:在同类中使用this,调用父类的构造函数使用super。
47、什么是包?如何创建包?为什么要使用包?包物理地对应什么?
答:包是相关类的松散集合。使用package语句可以创建包。使用包可以方便相关的类共同工作,也方便其他包中的类引用它们。包物理地对应文件夹,其中应保存包中类的字节码文件。
48、试写出一个语句创建一个名为MyPackage的包,这个语句应该放在程序的什么位置?
答:package MyPackage;应该在程序第一句。
49、试写出引用MyPackage中所有类的语句和引用MyPackage包中的一个类MyClassl。
答:引用MyPackage中所有类的语句是import MyPackage.*;只能引入类引用MyPackage包中的一个类MyClass的语句是import MyPackage.MyClassl;
50、什么是接口?它起到什么作用?
答:接口可看成是一种特殊的类,但接口不是类课本P61,是用来实现类间多重继承功能的结构。
51、接口中包括什么?接口中的各成员的访问控制符是一样的吗?是什么?
答:接口中包括常量与抽象方法。接口中的属性成员的访问控制符都是public static final,
接口中的所有方法的访问控制符都是public abstract,都是公共方法。
52、创建接口使用什么关键字?接口可以有父接口吗?试书写语句创建一个名为MyInterface的接口,它是实现了MySuperInterfacel和MySuperInterface2两个接口的子接口。
答:创建接口使用interface关健字,一个类声明实现实现接口在类头处使用用implements关健字,
接口可以有父接口,用extends关健字实现继承课本P61。
Interface MyInterface implements MySuperInterfacel,MySuperInterface2
54、实现接口的类是否必须覆盖该接口的所有抽象方法?
答:如果这个类是非抽象类的话,就必须覆盖该接口的所有抽象方法。
55、实现接口的抽象方法时,方法头应该与接口中定义的方法头完全一致,但是有时需要增加一个public修饰符,为什么?
答:接口的抽象方法的访问限制符都己指定为public,所以类在实现方法时,必须显式地使用public修饰符,否则将被系统警告为缩小了接口中定义的方法的访问控制范围。
56、程序中的错误分为哪两类?分别应如何排除?
答:编译错误和运行错误。排除编译错误可以借助于编译器的错误提示,排除运行错误要使用断点、单步运行等用户控制流程的调试手段。
58、写出三个常见的系统定义的异常,它们都是什么类的子类?
答:三个常见的系统异常是InterruptedException,ClassNotFoundException ,IOException 。
它们都是Exception类的子类。
59、用户程序如何抛出自己的异常?系统定义的异常如何抛出?
答:用户程序使用throw关键字抛出异常。系统定义的异常由系统在合适的时刻自动抛出。
62、阅读下面的程序片段并回答问题。
class Classl
{
int fieldl;
private int field2;
void methodl()
{
System.out.println(“我是Classl的第一个方法”);
}
void method2()
{
System.out.p dntln(“我是Classl的第二个方法”);
}
}
class Class2 extends Classl
{
int fieldChildl;
int fieldl;
void methodChildl()
{
System.out.pnntln(“我是Class2的第一个方法”);
}
void methodl()
{
S ystem.out.println(“我是Class2的第二个方法”);
}
}
(2)Classl有哪些方法和属性?Class2有哪些方法和属性?其中哪些与C1assl的方法和属性有关,是什么关系?
答:(2)Classl包括属性fieldl和field2,方法methodl和method2;Class2包括自身定义的属性fieldChildl和fieldl以及从父类继承的属性fieldl,方法包括Class2自身定义的methodChildl和methodl及其从父类继承的method2。
65、Java中最基础的类库是什么?谁是所有类的根类?做算术运算应该使用什么类?
答:Java中最基础的类库是https://www.wendangku.net/doc/bb6484414.html,ng;Object类是所有类的根类;做算术运算应该使用Math类。
67、为程序建立图形用户界面通常需要哪些步骤?
答:(1)设计图形用户界面的层次组织;
(2)设计并实现图形用户界面的外观;
(3)设计并实现图形用户界面的事件响应。
68、Java的图形界面的容器共有几种常用的布局管理策略?面板既是容器也是组件
答:有五种常用的布局,它们是FlowLayout、BorderLayout、CardLayout、GridLayout、null
69、对话框Dialog对象根据其性质不同,可以划分为哪两种类型?缺省情况下创建的对话框属于哪种类型?
答:可划分为有模式对话框和无模式对话框两种类型,缺省情况下创建的对话框是无模式的。
70、有模式的对话框最突出的特点是什么?如果一个对话框的目的在于警告或提醒用户(例如在用户删除某组件之前的确认),这个对话框应该是有模式的还是无模式的?
答:有模式对话框的特点是阻断其父组件接受事件和消息的渠道。如果一个对话框的目的在于警告或提醒用户,那么这个对话框应该是有模式的。
71、试述流的概念,最基本的输入输出流类是什么?
答:流是指在计算机的输入与输出之间运动的数据的序列。
最基本的输入输也流类是InputStream和OutputStream
72、写出下面这些输入输出流类的输入输出操作的格式特点。·
(1)InputStream和OutputStream
(2)DataInputStream和DataOutputStream
(3)FileInputStream和FileOutputStream
(4)PrintStream
(5)RandomAceessFile
答:(1)一个字节一个字节地输入输出数据。
(2)按照不同的数据类型输入输出。
(3)同InputStream和OutputStream
(4)把数据转化成字符串输出。
(5)同DataInputStream和DataOutputStream
73、程序与磁盘文件交互数据之前应该先完成什么操作?答:先建立与该文件交换数据的输
入输出流对象。
74、什么情况下创建FileInputStream对象可能引发IOException?
答:在指定的文件不存在的情况下创建FileInputStream对象可能引发IOException。
75、简述程序、进程和线程三个概念。线程有哪几个基本的状态?
答:程序是一段静态的代码,它是应用软件执行的蓝本。
进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。
线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索。
线程有新建、就绪、运行、阻塞、死亡五个基本状态。
76、在程序中使用多线程可以用哪两种基本方法?写出Runnable接口所包含的方法
答:可以使用派生Thread子类和实现Runnable接口。Runnable接口只有一个run()方法。
77、哪些情况下一个活动的线程会终止?答:执行其stop()方法或其run()方法运行完毕。
78、叙述一种引起死锁的情况。答:当两个或多个线程相互等待对方占据的同步资源时就会引起死锁。
二、单选题
1、类变量的修饰符是static、类方法的修饰符是static
2、使用super关键字调用父类的构造方法时,super必须是子类构造方法中的头一条语句。
4、判断两个字符串tom和jerry相等的表达式是tom.equals(jerry)
5、TextField类的方法getText( )获取文本的类型是(B)
A、一个字符
B、字符串
C、int型数值
D、float型数值
6、TextField类的一个构造方法TextField(String s,int x),其中的参数x是指定(D)
A、允许输入字符的个数
B、文本框内的空格数
C、参数s的长度
D、文本框的长度
7、按钮按下的事件监视器接口是ActionListener,ActionListener接口只有一个方法actionPerformed( )
设置ActionEvent事件监视器的方法是addActionListener( )即将监听器添加到事件源中用的是addActionListener( ),
8、设置ItemEvent事件监视器的方法是addItemListener( ),ItemListener接口只有一个方法itemStateChanged( )
9、设置TextEvent事件的监视器的方法是addTextListener( ),TextListener接口只有一个方法,这个方法是textValueChanged( )
13、(鼠标事件)MouseListener接口有五个方法,这个五方法是mousePressed( ) 、mouseReleased()、mouseEntered()、mouseExited()、mouseClicked()
14、(鼠标移动事件)MouseMotionListener接口有两个方法,这个两方法是mouseDragged( ) 、mouseMoved()
15、TextField类的对象文本框上引发ActionEvent事件的操作是(D)
A、改变文本框中的字符
B、在文本框内单击
C、在文本框内双击
D、在文本框内按回车键
16、TextArea类的对象文本区上引发TextEvent事件的操作是(A)
A、改变文本区中的文本的内容
B、在文本区内单击
C、在文本区内双击
D、鼠标在文本区内移动
17、CheckBox类可以创建两种选择框:单选和复选,创建”单选”选择框的构造方法是( B )
A、Checkbox()
B、Checkbox(String s, Boolean b, CheckboxGroup g)
C、Checkbox(String s)
D、Checkbox(String s,Boolean b)
18、Checkbox类的方法getState() 可以返回选择框的选中状态,如果是选中,该方法的返回值是(A )
A、true
B、false
C、1
D、0
21、List创建的对象是滚动列表,当用鼠标单击滚动列表的某个选项后就发生( D )、List创建的对象是滚动列表,当用鼠标双击滚动列表的某个选项后就发生( A )、菜单项(MenuItem)上发生的事件是( A )
A、ActionEvent事件
B、MouseClick事件
C、MouseEvent事件
D、ItemEvent事件
24、Runnable接口只有一个方法,这个方法是(B )
A、start()
B、run()
C、init()
D、begin()
25、启动线程,即使线程从新建状态转入就绪状态并进入就绪队列排队的方法是(A )
A、start()
B、run()
C、init()
D、begin()
26、线程的sleep方法的功能是(B )
A、使线程死亡
B、线程暂时放弃CPU资源
C、线程休息一会,但不放弃CPU资源
D、线程结束
27、当多个线程调用同一方法时,为使线程同步,该方法应使用修饰关键字(C )
A、protected
B、void
C、synchronized
D、public
29、建立客户端、服务器端套接字的构造方法名是( A、B )
A、Socket()
B、ServerSocket()
C、UrlSocket()
D、UdpSocket()
三、判断题
1、如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。(√)
2、如果定义的类中没有给出构造方法,系统也不会提供构造方法。(╳)系统给出与类同名的构造方法。
3、可以通过类名直接访问类变量。(√)
4、实例方法既能被对象调用,又能用类名直接调用。(╳)实例方法只能通过对象来调用。
5、类方法既能被对象调用,又能用类名直接调用。(√)
6、一个类的所有对象共享类变量。(√)即类变量是一个类只有一个的
10、多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。(√)
11、Java不允许使用int型变量指定数组的大小。(╳)
与C语言不同,Java允许使用int型变量指定数组的大小。
42、FileInputStream使用字节流读取文件,而FileReader使用字符流读取文件。(√)
43、RandomAccessFile类创建的流既可以作为源也可以作为目地的。(√)
74、利用File对象不但可以判断一个文件或目录是否存在、是否可读可写、是否是文件、是否是目录,而且可以执行创建子目录、列举目录中的文件、获得文件长度、删除文件、修改文件名字等操作。(√)
75、打开一个文件输入输出流不需使用try-catch结构。(╳)打开文件必须使用try-catch结构。
47、如果try块中没有语句产生异常,则在执行完try块中的全部语句后,再进入try块后面
的catch块。(╳)
不产生异常就不进入catch块。
48、一个try块都必须有至少一个catch块与之对应,当一个try块有多个catch块与之对应时,应该把参数为父类异常对象的catch块排在后面。(√)
12、容器本身也是一个组件,因此,可以把一个容器添加到另一个容器中实现容器的嵌套。(√)
17、Panel类的实例及它的子类的实例都是容器。(√)
18、Canvas类的实例及它的子类的实例都是容器。(╳)Canvas画布,可在其中绘画,不是容器类。
21、用GridLayout布局的容器调用add方法将组件加入到容器中时,可以直接设定在某个网格单元中添加组件。(╳)只能按网格顺序添加组件。
19、一个容器设置布局的方法是setLayout(布局对象)。(√)
66、一个容器中可以混合使用多种布局策略。(√)
63、使用BorderLayout的容器最多只能放置5个组件,如果要放置更多的组件,则需要使用多层容器。(√)
64、使用BorderLayout和GridLayout布局策略的容器,其中的所有空间都被组件占满,没有任何空隙。(╳)
组件间可以设置横向和纵向空隙。
65、使用GridLayout布局策略的容器中,所有的组件都有相同大小。(√)
22、Java Applet小程序类及其子类所创建的对象默认的布局是BorderLayout。(╳)是FlowLayout布局。
23、Panel类及其子类所创建的对象默认的布局是FlowLayout。(√)
24、Frame类及其子类所创建的对象默认的布局是BorderLayout。(√)
25、Dialog类及其子类所创建的对象默认的布局是FlowLayout。(╳)是BorderLayout布局。
27、下拉列表Choice类的方法select(int index)可以把下拉列表中索引值是index的选项设置成选中状态。(√)
69、新创建的Frame窗框对象,会自动显示在屏幕上。(╳)必须用setVisible(true)方法才能显示在屏幕上。
70、使用add()方法可以向容器中添加组件,使用remove()方法可以将组件从容器中移出。(√)
28、组件调用方法setSize(int w,int h)可以设置组件的大小。(√)
29、组件调用方法setLocation(int x,int y)可以设置组件在容器中的位置。(√)
30、组件调用方法setBounds(int x,int y,int w,int h)可以设置组件在容器中的位置和组件的大小。(√)
31、组件调用方法setBackground(Color c)可以设置组件上的字体的颜色。(╳)是设置组件背景颜色。
字体是前景色
14、文本框(TextField类的对象)和文本区(textArea类的对象)的不同之处是二者对事件的处理不同。(╳)
二者的文本处理方式与方法也不同。
15、文本区(textArea类)的方法setText(String s)和append(String s)的功能是相同的。(╳)SetText(String s)方法将在文本区中重写文本s并覆盖原先的文本,而append(String s)只是在文本区尾部追加文本s。
67、可以使用append()方法把一个字符串添加到一个TextField中原有字符串的后面。(√)
54、Label、TextField和TextArea对象都拥有方法setText(),用来设置其中的文本内容。(√)16、标签的功能只是显示文本,不能动态地编辑文本。(√)
35、Menu 是MenuItem的子类。(√)
71、Menu对象中只能加入MenuItem对象。(╳)还可以加入Menu对象,以便设置子菜单。
73、MenuItem也可以添加到MenuBar上。(╳)只能添加到Menu上。
33、将菜单条放在窗口上的方法是setMenuBar(MenuBar bar)。(√)
34、菜单放在菜单条里,菜单项放在菜单里。(√)
36、对话框必须要依赖于某个窗口或组件。(√)
37、有模式对话框处于激活状态时,程序仍能激活它所依赖的窗口或组件。(╳)
按有模式对话框定义,不能激活其依赖的窗口。
72、设一个窗口中包含一个按钮,当用户点击该按钮时会弹出一个无模式对话框,则当窗口关闭时该对话框也随之关闭。(√)
55、对于一个Button对象,可以调用方法getLabel()获取其上的标签,从而判断是哪个按钮。(√)
56、一个Checkbox对象既可以作为一个复选按钮,也可以作为一个单选按钮组中的一个按钮。(√)
57、一个复选按钮实现的是“二选一”的结构,一个单选按钮组实现的是“多选一”的结构。(√)
58、List对象可以实现“多选一”结构,也可以实现“多选多”结构,完全由创建List对象时的参数确定。(√)
59、所有的鼠标事件都由实现了MouseListener监听接口的监听者来处理。(╳)
鼠标移动等由MouseMotionListener接口监听处理。
60、当用户鼠标移入Applet的区域范围时触发mouseEnter()方法,当用户鼠标移出Applet 的区域范围时触发mouseExit()方法。(√)
61、调用KeyEvent对象的方法getKeyChar()可以获得用户操作的键盘按键的字符值,调用getKeyText()可以获得用户操作的一些特殊字符,例如“F3”等。(√)
62、鼠标点击在屏幕上任何位置处,都可以激活mouseClicked()方法。(╳)
49、Java中画圆和画椭圆使用的是相同的方法。(√)
32、组件调用repaint()方法时,会自动调用update()方法,而update()方法的功能是清除paint()以前所画的内容。(√)
50、调用画矩形方法需要给出的是矩形左上角和右下角的坐标。(╳)
给出左上角座标及矩形有长度和宽度。
44、客户端和服务器端呼叫的端口号必须相同。(√)
78、进程是程序的一次动态执行过程。(√)
39、一个进程在其执行过程中,可以产生多个线程。(√)
40、Java中编程实现多线程应用有两个途径:一种是用Thread类的子类创建线程,另一种是用Thread类创建线程。(√)
41、用Thread类创建线程时,创建目标对象的类必须实现Runnable方法。(√)
76、一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run0方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run() 方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。(√)
77、下面的语句将线程对象mt的优先级设置为12:mt.setPriority(12);(√)
78、某程序中的主类不是Thread的子类,也没有实现Runnable接口,则这个主类运行时不能控制主线程睡眠。(╳)
79、sleep()和wait()方法都使当前运行线程放弃处理器和它所占用的同步资源管理。(╳)
sleep()方法是,而wait()方法不是。
80、挂起、阻塞或等待的线程都能够恢复运行,但是停止运行的线程将不可能再复生。(√)
四、写出下列程序或程序片段的运行结果
4、
import java.util.*;
public class E1
{
public static void main(String args[])
{
String s=”I am Wanglin,she is my friend,she is a student”;
StringTokenizer fenxi=new StringTokenizer(s,” ,”);
int n=fenxi.countTokens();
while(fenxi.hasMoreTokens())
{
String s1=fenxi.nextToken();
System.out.print(s1+“ ”);
}
System.out.println();
System.out.println(“count=”+n);
}
}
答:运行结果:I am Wanglin she is my friend she is a student
count=11
8、public class UseRef
{
public static void main(String args[])
{
MyClass1 myobj,myref;
myobj=new MyClass1(-1);
myref=myobj;
System.out.println(”the original data is:”+myobj.getData());
myref.setData(10);
System.out.println(”now the data is:”+myobj.getData());
}
}
class MyClass1
{
int data;
MyClass1(int d)
{
data=d;
}
int getData()
{
return data;
}
void setData(int d)
{
data=d;
}
}
答:运行结果为:the original data is :-1
now the data is:10
11、public static void main(String args[])
{
char a[][]=new char[3][3];
for(int i=0;i for(int j=0;j if(i>=j) a[i][j]=?*?; else a[i][j]=??;