JAVA设计模式期末考试复习

JAVA设计模式期末考试复习
JAVA设计模式期末考试复习

《JAVA设计模式》复习资料

一、单项选择题

1.设计模式起源于()

A、机械设计

B、建筑工程设计

C、水利工程设计

D、工业电力化设计2.“不要和陌生人说话”是()原则的通俗表述。

A、接口隔离

B、里氏替换

C、依赖倒置

D、迪米特3.目前常见的设计模式主要有()种。

A、23

B、21

C、32

D、28

4.以下关于单一职责原则的叙述不正确的是()。

A、单一职责原则的英文名称是Single Responsibility Principle.

B、单一职责原则要求一个类只有一个职责

C、单一职责原则有利于对象的稳定,降低类的复杂性

D、单一职责原则提高了类之间的耦合性

5.以下关于依赖倒置原则的叙述不正确的是()

A、依赖倒置原则的简称是DIP

B、高层模块不依赖于低层模块,低层模块依赖于高层模块

C、依赖倒置原则中高层模块和低层模块都依赖于抽象

D、依赖倒置原则实现模块间的松耦合

6.下面关于单例模式说法错误的是()

A、单例模式是指一个类只有一个实例

B、单例类从实现方式上分为懒汉式和饿汉式

C、单例类从功能上分为状态单例类和无状态单例类

D、可以通过继承的方式对单例类进行扩展得到功能更丰富的单例类

7.下面关于工厂方法模式说法错误的是()。

A、工厂方法模式使一个类是实例化延迟到其子类中

B、工厂方法模式中具有抽象工厂、具体工厂、抽象产品和具体产品4个角色

C、工厂方法模式可以处理多个产品的多个等级结构

D、工厂方法模式可以屏蔽产品类

8.在以下情况不适合使用责任职责链模式()

A、有多个对象可以处理请求,哪个对象处理该请求在运行时刻自动确定。

B、在需要用比较通用和复杂的对象指针代替简单的指针的时候。

C、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。

D、一个请求需要一系列的处理工作。

9.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式

A、结构型

B、创建型

C、行为型

D、以上都可以

10.以下用来描述适配器模式的是()

A、表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

B、定义一个用于创建对象的接口,让子类决定实例化哪一个类。

C、将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

D、动态地给一个对象增加一些额外的职责。

11.以下用来描述命令模式是()

A、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。

B、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化。

C、为其他对象提供一种代理以控制对这个对象的访问。

D、保证一个类仅有一个实例,并提供一个访问它的全局访问点。

12.以下关于创建型模式说法正确的是()

A、创建型模式关注的是对象的创建方法

B、创建型模式关注的是功能的实现方法

C、创建型模式关注的是组织类和对象的常用方法

D、创建型模式关注的是对象间的协作

13.以下用来描述装饰模式的是()

A、运用共享技术有效地支持大量细粒度的对象

B、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

C、将抽象部分与它的实现部分分离,使它们都可以独立地变化

D、动态地给一个对象添加一些额外的职责

14.不应该强迫客户依赖于它们不用的方法,是关于( )的表述。

A、开-闭原则

B、接口隔离原则

C、里氏替换原则

D、依赖倒置原则

15.以下用来描述外观模式的是( )

A、为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

B、定义一个用于创建对象的接口,让子类决定实例化哪一个类。

C、保证一个类仅有一个实例,并提供一个访问它的全局访问点。

D、在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。样以后就可将该对象恢复到原先保存的状态。

16.以下意图哪个是用来描述桥梁模式()

A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

B、将抽象部分与它的实现部分分离,使它们都可以独立地变化。

C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

D、动态地给一个对象添加一些额外的职责。

17.开闭原则的含义是一个软件实体()

A、应当对继承开放,对实现关闭.

B、应当对修改开放,对扩展关闭

C、应当对扩展开放,对修改关闭

D、以上都不对

18.以下哪个用来描述建造者模式()

A、定义一个用于创建对象的接口,让子类决定实例化哪一个类

B、保证一个类仅有一个实例,并提供一个访问它的全局访问点。

C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

D、运用共享技术有效地支持大量细粒度的对象。

19.以下哪个不属于设计模式的要素()

A、模式名称

B、问题

C、因素

D、环境

20.以下不属于结构型模式的是()

A、代理模式

B、工厂方法模式

C、适配器模式

D、享元模式

1-5 BDADB 6-10 DCBBC 11-15 AADBA 16-20 BCCCB 21.关于模式应用场景,在以下哪种情况适合使用组合模式()

A、你想使用一个已经存在的类,而它的接口不符合你的需求。

B、当一个类的实例只能有几个不同状态组合中的一种时。

C、你想表示对象的部分-整体层次结构。

D、一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变行为。22.Java的异常处理机制可理解为哪一种行为模式()

A、观察者模式

B、迭代器模式

C、职责链模式

D、策略(Strategy)模式

23.当创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。

A、结构型

B、创建型

C、行为型

D、以上都可以

24.以下哪个用来描述建造者模式()

A、定义一个用于创建对象的接口,让子类决定实例化哪一个类

B、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

C、保证一个类仅有一个实例,并提供一个访问它的全局访问点。

D、运用共享技术有效地支持大量细粒度的对象。

25.设计模式的两大主题是()

A、系统的维护与开发

B、对象组合与类的继承

C、系统架构与系统开发

D、系统复用与系统扩展

26.要依赖于抽象,不要依赖于具体,即针对接口编程,不要针对实现编程,是()的表述。

A、开闭原则

B、接口隔离原则

C、里氏替换原则

D、依赖倒置原则

27.以下意图哪个是用来描述桥梁模式()

A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

B、将抽象部分与它的实现部分分离,使它们都可以独立地变化。

C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

D、动态地给一个对象添加一些额外的职责。

28.以下意图哪个是用来描述抽象工厂模式()

A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

B、定义一个用于创建对象的接口,让子类决定实例化哪一个类。

C、将一个类的接口转换成客户希望的另外一个接口。

D、表示一个作用于某对象结构中的各元素的操作。

29.开闭原则的含义是一个软件实体()

A、应当对扩展开放,对修改关闭.

B、应当对修改开放,对扩展关闭

C、应当对继承开放,对修改关闭

D、以上都不对

30.对于违反里氏替换原则的两个类,可以采用的候选解决方案错误的是:()

A、创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。

B、将B到A的继承关系改组成委派关系。

C、区分是“Is-a”还是”Has-a”。如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系

D、以上方案错误

31.以下意图那个是用来描述ADAPTER(适配器)?()

A、将一个类的接口转换成客户希望的另外一个接口,本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

B、定义一个用于创建对象的接口,让子类决定实例化哪一个类。

C、表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

D、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。

32.“不要和陌生人说话”是()原则的通俗表述。

A、接口隔离

B、里氏替换

C、依赖倒置

D、迪米特

33.以下关于创建型模式说法正确的是()

A、创建型模式关注的是对象的创建

B、创建型模式关注的是功能的实现

C、创建型模式关注的是组织类和对象的常用方法

D、创建型模式关注的是对象间的协作

34.关于模式适用性,在以下情况不适合使用享元模式?()

A、一个应用程序使用了大量的对象。

B、完全由于使用大量的对象,造成很大的存储开销。

C、对象的大多数状态都可变为外部状态。

D、你想使用一个已经存在的类,而它的接口不符合你的需求。

35.适配器模式是()原则的典型应用。

A、合成聚合复用原则

B、里氏替换原则

C、依赖倒置原则

D、迪米特法则

21-25.CCBBD 26-30.DBAAD 31-35.ADADA

二、填空题

1、设计模式分为____创建型___、____行为型_____、_____结构型______三大类型。

2、设计模式中的六个主要原则主要包括:单一职责原则、依赖倒置原则、___里氏替换原则____、____接口隔离原则___、迪米特法则和开闭原则。

3、设计模式中,对迪米特法则进行应用的设计模式有外观模式和____中介者模式_____。

4、__装饰模式____模式用于动态地给一个对象添加一些额外的职责。

5、___外观模式____模式要求一个子系统的外表与其内部的通信必须通过一个统一的对象进行。

6、___桥梁模式___模式的定义是将抽象和现实解耦,使得两者可以独立地变化。

7、___观察者模式__模式定义对象间一种一对多的关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。

8、___行为____型模式主要用于描述对类或对象怎样交互和怎样分配职责。

9、组合模式属于___结构型____型模式、原型模式属于___创建型____型模式。

10、__模板方法__ 模式定义一个操作中的算法框架,将一些步骤延迟到子类中实现。

11、____装饰___ 模式用于动态地给一个对象添加一些额外的职责。

12、____外观____模式要求一个子系统的外表与其内部的通信必须通过一个统一的对象进行。

13、____策略____模式定义一组算法,将每个算法封装起来,并且使它们之间可以互换。

14、___备忘录___模式捕获一个对象的内部状态,并在该对象之外保存这个状态,以后可以将该对象恢复到原先保存的状态。

15、____适配器___模式将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

16、____规格模式____模式是策略模式和组合模式的扩展。

1、创建型、行为型、结构型

2、里氏替换原则、接口隔离

3、中介者模式

4、装饰模式

5、外观模式

6、桥梁模式

7、观察者模式

8.行为9.结构型、创建型10.模板方法11、装饰

12、外观

13、策略14、备忘录15、适配器16、规格模式

三、简答题

1、简述依赖倒置原则的三层含义、在Java当中的体现和优点。

答:

接口隔离原则有如下两种定义:

客户端不应该依赖它不需要的接口;

类间的依赖关系应该建立在最小的接口上

接口隔离原则的具体的含义如下:

(1)一个类对另外一个类的依赖性应当是建立在最小的接口上的

(2)一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。因此使用多个专门的接口比使用单一的总接口要好

(3)不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。即不要强迫客户使用它们不用的方法,否则这些客户就会面临由于这些不使用的方法的改变所带来的问题。

2、简述工厂方法模式的定义和角色

答:

(1)概念

定义一个创建产品对象的工厂接口,让子类决定实例化哪个子类

(2)4个角色:

抽象工厂(Creator)角色:该角色是工厂方法模式的核心,与应用系统无关,任何在创建对象的工厂类必须实现这个接口。

具体工厂(Concrete Creator)角色:该角色实现了抽象工厂接口,含有与应用密切相关的逻辑,并且受到应用程序的调用以创建产品对象。多个具体工厂分别对应生产多个具体产品。

抽象产品(Product)角色:该角色负责定义产品的共性,实现对产品最抽象的定义。

具体产品(Concrete Product)角色:该角色实现抽象产品角色所声明的接口,工厂方法模式所创建的每一个对象都是某个具体产品角色的实例。

3、简述模板方法模式的定义和角色和优点

答:

(1)概念

定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

(2)模板方法角色:

抽象模板(Abstract Template)角色:该角色定义一个或多个抽象操作,以便让子类实现;这些抽象操作是基本操作,是一个顶级逻辑的组成步骤。还需要定义并实现一个或几个模板方法,实现对基本方法的调度,完成固定的逻辑。

具体模板(Concrete Template)角色:该角色实现抽象模板中定义的一个或多个抽象方法,每一个抽象模板角色都可以有任意多个具体模板角色与之对应,分别给出这些抽象方法的不同实现,从而使得顶级逻辑的实现各不相同。

4、简述代理模式的定义和角色

答:

(1)定义:为其他对象提供一种代理以控制对这个对象的访问。

(2)代理模式3个角色:

抽象主题(Subject)角色:该角色是真实主题和代理主题的共同接口,以便在任何可以使用真实主题的地方都可以使用代理主题。

代理主题(Proxy Subject)角色:也叫做委托类、代理类,该角色负责控制对真实主题的引用,负责在需要的时候创建或删除真实主题对象,并且在真实主题角色处理完毕前后做预处理和善后处理工作。

真实主题(Real Subject)角色:该角色也叫做被委托角色、被代理角色,是业务逻辑的具体执行者。

5、简述中介者模式的定义和角色含义。

答:

(1)定义:用一个中介对象封装一系列对象(同事)的交互,中介者使各对象不需要显式的相互作用,从而使其耦合松散,而且可以独立的改变它们之间的交互。

(2)中介者模式角色:

抽象中介者(Mediator)角色:该角色定义出同事对象到中介者对象的统一接口,用于各同事角色之间的通信。

具体中介者(Concrete Mediator)角色:该角色实现抽象中介者,它依赖于各个同事角色,并通过协调各同事角色实现协作行为。

抽象同事(Colleague)角色:该角色定义出中介者到同事对象的接口,同事对象只知道中介者而不知道其余的同事对象。

具体同事(Concrete Colleague)角色:该角色实现抽象同事类,每一个具体同事类都清楚自己在小范围内的行为,而不知道大范围内的目的。

6、简述策略模式的定义和角色含义。

答:

(1)定义:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。

(2)策略模式角色:

环境(Context)角色:该角色也叫上下文角色,起到承上启下的作用,屏蔽高层模块对策略、算法的直接访问,它持有一个Strategy类的引用。

抽象策略(Strategy)角色:该角色对策略、算法进行抽象,通常定义每个策略或算法必须具有

的方法和属性。

具体策略(Concrete Strategy)角色:该角色实现抽象策略中的具体操作,含有具体的算法。

7、简述设计模式的10要素。

答:(1)模式名称,简洁反映设计模式的问题、解决方案和效果

(2)问题,解释了设计问题和问题的前因后果

(3)环境或初始环境,说明模式的使用范围,也叫前提条件

(4)解决方案,描述模式设计的组成部分,各部分职责和协作方式

(5)效果,描述使用效果和使用模式应权衡的问题

(6)举例,使用一个或几个应用示例说明特定的环境、以及模式如何应用到环境中,最终得到什么效果

(7)末态环境,模式应用到系统之后的状态,包括好结果和坏结果,以及新状态含有的其他问题

(8)推理,推理解释模式的步骤、规则

(9)其他有关模式,描述现有系统中此模式与其他模式的动态和静态关系。如相互依赖或替换。

(10)已知应用。

8、简述依赖倒置原则

答:

包括三层含义:

高层模块不应该依赖底层模块,两者都依赖其抽象

抽象不依赖细节

细节应该依赖于抽象

依赖倒置原则在Java中的体现:

模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生

接口或抽象类不依赖于实现类

实现类依赖于接口或抽象类

优点:

依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提

高代码的可读性和可维护性

9、简述中介者模式的各个组成角色的作用

答:

中介者模式包括4个角色:

抽象中介者(Mediator)角色:定义出同事对象到中介者对象的统一接口,用于各同事角色之间的通信。

具体中介者(Concrete Mediator)角色:实现抽象中介者角色,依赖于各个同事角色,并协调各同事角色实现协作行为。

抽象同事(Colleague)角色:定义中介者到同事对象的接口。

具体同事(Concrete Colleague)角色:实现抽象同事类,每一个具体同事类只清楚自己在小范围内的行为,而不知道大范围内的目的。

四、综合编程题

1、课本第215页,【示例8.3】

2、课本第222页,【示例8.6】

3、分析下面的类图,说明该应用使用了什么设计模式,给出其定义,说明这种设计模式主要涉

及哪几个角色,各有什么作用。

答:是装饰模式,定义为动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。

装饰模式的4个角色:

●抽象构件(Component)角色:用于规范需要装饰的对象(原始对象)。

●具体构件(Concrete Component)角色:实现抽象构件接口,定义一个需要装饰的原始

类。

●装饰(Decorator)角色:持有一个构件对象的实例,并定义一个与抽象构件接口一致的接

口。

●具体装饰(Concrete Decorator)角色:负责对构件对象进行装饰。

2、依据类图写出程序实现代码。

见课本第76页,【示例4.2】

Java基础知识问答题

Java 基础知识问答题 包含的模块 本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM,如下图所示:

共包含208 道问答题,本文的宗旨是为读者朋友们整理一份基础知识的简单大纲,下面一起进入主题吧。 Java 基础 1. JDK 和JRE 有什么区别?

?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。 ?JRE:Java Runtime Environment 的简称,Java 运行环境,为Java 的运行提供了所需环境。 具体来说JDK 其实包含了JRE,同时还包含了编译Java 源码的编译器Javac,还包含了很多Java 程序调试和分析的工具。简单来说:如果你需要运行Java 程序,只需安装JRE 就可以了,如果你需要编写Java 程序,需要安装JDK。 2. == 和equals 的区别是什么? == 解读 对于基本类型和引用类型== 的作用效果是不同的,如下所示: ?基本类型:比较的是值是否相同; ?引用类型:比较的是引用是否相同; 代码示例: String x = "string"; String y = "string"; String z = new String("string"); System.out.println(x==y); // true System.out.println(x==z); // false System.out.println(x.equals(y)); // true System.out.println(x.equals(z)); // true 代码解读:因为x 和y 指向的是同一个引用,所以== 也是true,而new String()方法则重写开辟了内存空间,所以== 结果为false,而equals 比较的一直是值,所以结果都为true。 equals 解读

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.设计模式起源于() A、机械设计 B、建筑工程设计 C、水利工程设计 D、工业电力化设计 2.“不要和陌生人说话”是()原则的通俗表述。 A、接口隔离 B、里氏替换 C、依赖倒置 D、迪米特 3.目前常见的设计模式主要有()种。 A、23 B、21 C、32 D、28 4.以下关于单一职责原则的叙述不正确的是()。 A、单一职责原则的英文名称是Single Responsibility Principle. B、单一职责原则要求一个类只有一个职责 C、单一职责原则有利于对象的稳定,降低类的复杂性 D、单一职责原则提高了类之间的耦合性 5.以下关于依赖倒置原则的叙述不正确的是() A、依赖倒置原则的简称是DIP B、高层模块不依赖于低层模块,低层模块依赖于高层模块 C、依赖倒置原则中高层模块和低层模块都依赖于抽象 D、依赖倒置原则实现模块间的松耦合 6.下面关于单例模式说法错误的是() A、单例模式是指一个类只有一个实例 B、单例类从实现方式上分为懒汉式和饿汉式 C、单例类从功能上分为状态单例类和无状态单例类 D、可以通过继承的方式对单例类进行扩展得到功能更丰富的单例类 7.下面关于工厂方法模式说法错误的是()。 A、工厂方法模式使一个类是实例化延迟到其子类中 B、工厂方法模式中具有抽象工厂、具体工厂、抽象产品和具体产品4个角色 C、工厂方法模式可以处理多个产品的多个等级结构 D、工厂方法模式可以屏蔽产品类 8.在以下情况不适合使用责任职责链模式() A、有多个对象可以处理请求,哪个对象处理该请求在运行时刻自动确定。 B、在需要用比较通用和复杂的对象指针代替简单的指针的时候。 C、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。 D、一个请求需要一系列的处理工作。 9.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式 A、结构型 B、创建型 C、行为型 D、以上都可以 10.以下用来描述适配器模式的是() A、表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 B、定义一个用于创建对象的接口,让子类决定实例化哪一个类。 C、将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些

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

《JA V A语言程序设计》期末考试试题及答案1(应考必备题库) 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。 4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。 5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage 的包的语句是package MyPackage ; , 该语句应该放在程序的位置为:应该在程序第一句。 7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120。

《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语言程序设计二级考试模拟试卷

Java语言程序设计二级考试模拟试卷一 (考试时间90分钟,满分100分) 一、选择题(1~20题每题2分,20~30题每题3分,计70分) 在下列各题的A、B、C、D、四个选项中,只有一个选项是确定的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 1、下列叙述中正确的是()。 A、线性表是线性结构 B、栈和队列是非线性结构 C、线性链表是非线性结构 D、二叉树是线性结构 2、下列关于队列的叙述中正确的是()。 A、在队列中只能插入数据 B、在队列中只能删除数据 C、队列是先进先出的线性表 D、队列是先进后出的线性表 3、设有下列二叉树: 对此二叉树前遍历的结果是()。 A、ABCDEF B、DBEAFC C、ABDECF D、DEBFCA 4、设树T的度为4,其中度为1、2、3、4的结点个数分别是4,2,1,1。则T中的叶子结点数是()。 A、8 B、7 C、6 D、5 5、结构化程序设计主要强调的是()。 A、程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性 6、下面对对象概念描述错误的是()。 A、任何对象都必须有继承性 B、对象是属性和方法的封装体 C、对象间的通讯靠消息传递 D、操作是对象的动态属性 7、在软件测试中,以发现各模块内部可能存在的各种错误为目的的测试是()。 A、集成测试 B、单元测试 C、黑盒测试 D、白盒测试 8、软件需求分析阶段的工作,可以分为四个方面,需求获取、需求分析、编写需求规格说明书以及()。 A、阶段性报告 B、需求评审 C、总结 D、信息隐藏 9、在关系数据库中,用来表示实体之间联系的是()。 A、树结构 B、网结构 C、线性表 D、二维表 10、在关系数据库中,当数据的存储结构改变时,其逻辑结构可以不变,因次,基于逻辑结构的应用程

java设计模式选择题复习

工厂系列模式的优缺点: 1.让用户的代码和某个特定类的子类的代码解耦 用户不必知道它所使用的对象是怎样创建的,只需知道该对象有哪些方法 2.抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱耦 MVC模式是不是一种设计模式?为什么 MVC不是设计模式,应该是框架/架构模式,因为它的定义是抽象的,没有足够的细节描述使你直接去实现,而只能根据MVC的概念和思想,用几个设计模式组合实现。 举出一个生活中使用装饰者模式的例子,用程序实现思路 举个生活中的例子,俗话说“人在衣着马在鞍”,把这就话用装饰者模式的语境翻译一下,“人通过漂亮的衣服装饰后,男人变帅了,女人变漂亮了;”。对应上面的类图,这里人对应于ConcreteComponent,而漂亮衣服则对应于ConcreteDecorator; 设计模式如何分类,每一个类别都有什么特征? 设计模式分为3类,分别是:创建型模式、行为型模式、结构型模式。 创建型特点:避免用户直接使用new运算符创建对象。 行为型特点:怎样合理的设计对象之间的交互通信,以及怎样合理的为对象分配职 结构型特点:主要用于处理类或对象的组合 Java jdk中使用了哪些设计模式 1.单例 2.静态工厂 3.工厂方法 4.抽象工厂 5.构造者 6.原型 7.适配器8桥接9.组合10.装饰器11.外观12.享元 页脚内容1

14.代理15.迭代器16.观察者17.协调者18.模板方法19.策略20.责任链21.命令22.空对象25.解释器 面向对象的设计原则有哪些? 开闭原则、面向抽象的原则(依赖倒转原则)、多用组合少用继承原则、高内聚-低耦合原则。 观察者模式的推拉有什么不同?使用场景 推,具体主题将变化后的数据全部交给具体观察者。场景:当具体主题认为具体观察者需要这些变换后的数据时,往往采用推数据方式; 拉,具体主题不将变化后的数据交给具体观察者,而是提供获得这些数据的方法。场景:当具体主题不知道具体观察者是否需要这些变换后的数据时,往往采用拉数据的方式。 策略模式和工厂模式有什么不同? 策略模式定义了一系列算法,将他们一个个封装,并且他们之间可以相互替换; 工厂模式定义一个创建对象的接口,让子类决定实例化哪一个类 5观察者模式的推拉有什么不同?适用场景 现在要说的分歧在这里: “推”的方式是指,Subject维护一份观察者的列表,每当有更新发生,Subject会把更新消息主动推送到各个Observer去。 “拉”的方式是指,各个Observer维护各自所关心的Subject列表,自行决定在合适的时间去Subject获取相应的更新数据。 “推”的好处包括: 页脚内容2

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设计模式-期末整理

第四章 命令模式 命令模式: 将一个请求封装为一个对象,从而使用户可用不同得请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作(在命令模式中,当一个对象请求另外一个对象调用其方法时,不和被请求的对象直接打交道,而是把这种请求封装到一个称为“命令”的对象中,其封装手段是将“请求”封装在一个命令对象的一个方法中,命令模式的核心就是使用命令对象来方法调用。) 命令模式的四个角色: 接收者(Receiver ):接收者是一个类的实例,负责执行与请求相关的操作 命令接口(Command ):命令是一个接口,规定了用来封装“请求”的若干个方法。如execute ()、undo ()。 具体命令(ConcreteCommand ):是实现命令接口的实例 请求者(Invoke ):是一个包含Command 接口变量的类的实现 单向关联 命令模式的优点: 1:请求者不与接收者直接交互联系(即请求者不包含接收者的引用),他们之间无耦合关系 2:满足开闭原则。如在增加新的具体命令和接收者时,不必修改请求者的代码,反之在增加新的请求者时,也不必修改具体命令和接收者的代码 3:由于请求者的请求被封装到了具体命令中,这个命令在需要时可重复使用,使用命令模式可以记录日志 4:使用命令模式可以是“请求”排队,因此可以按一定的顺序执行这些命令 第五章 观察者模式 观察者模式: 定义对象间一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并自动更新。(观察者模式是关于多个对象 想知道一个对象中数据变化情况的一种成熟模式。观察者模式中有一个称为“主题”的对象和多个称作“观察者”的对象,“主题”和“观察者”间是一种一对多的依赖关系,当“主题”发生变化时,所有的“观察者”得到通知。) 《interface 》 Comman d +execute ():void Invoke command :Command +executeCommand ():void Receiver command:Command +action():void ConcreteCommand Receiver:Receiver +execute():void

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 程序设计》模拟试题四 一、选择题(每小题2分,共20分) 1. 以下哪个是合法的标识符? ( C ) A. 7star B. else C. my$ D. super 2. 设有对象obj 具有属性a 则访问该属性的方法为( A )。 A. obj.a B. a.obj() C. a.obj D. obj.a() 3. 下列关于关键字this 和super 的说法正确的是( C )。 A. this 是调用父类的方法和变量 B. super 是调用本类中的方法 C. super 是调用父类的方法和变量 D. 没有区别 4. 以下关于重载(overload )的定义哪个正确?( B ) A.在一个类中,定义了多个具有相同名字的方法,但这些方法有不同的输出参数。 B.在一个类中,定义了多个具有相同名字的方法,但这些方法有不同的输入参数。 C.在一个类中,定义了多个具有相同名字的方法,并且这些方法有相同的输入参数。 D.在一个方法体中定义了多行代码。 5. 有如下代码段: int i=2; int j=3; if((i==2)||(j++==3)) i++; if((j==4)||(i++==3)) j++; System.out.printf("i="+i+"j="+j); 该程序运行的结果为: ( C )。 A .i=4,j=4 B.i=3,j=5 C .i=4,j=5 D.以上都不是 6. Java 程序用以下哪个命令可编译源文件? ( D ) A. Java B. appletviewer C. Javadoc D. Javac 7. 以下说法正确的个数为 ( B )。 ①构造方法中this 语句必须放在第一句; ②构造方法中super 语句不一定放在第一句; ③final 修饰的变量只能赋值一次; ④static 修饰的变量在该对象的一个实例中被修改,在另一个实例中也可以取得该变量的新值。 A. 1 B. 2 C. 3 D. 4 8. 下列修饰词,可以用来定义接口中方法的为 ( C )。 A. private B. protected C. public D.以上都不是 9. 关于继承的说法正确的是( B )。 A.子类将继承父类所有的属性和方法。 B.子类将继承父类的非私有属性和方法。 C.子类只继承父类public 方法和属性 D.子类只继承父类的方法,而不继承属性 10. 下列关于Java 程序中数组的使用说法正确的是( A )。 A.数组必须在使用前定义 B.同一个数组中的元素类型必须不同 C.数组是一种特殊的变量不需在使用前声明 D.数组的元素不可以是数组 评分标准:本题为单项选择题,每小题2分,共10道小题,共20分;每小题选对给2分,选错、多选、不选不给分也不扣分。 二、填空题(每空1分,共10分) 1. Java 的特点有: 简单性、可靠性和安全性、面向对象、平台无关和解释执行、分布式、多线 程等 (不少于4条)。 评分标准:只要写出四条即可给1分,不写或少于四条不给分,也不扣分。 2. Java 的注释有以下三种: 单行注释(//)、多行注释(/* */)、文档注释(/** */) 。 评分标准:本题答案不唯一,只要写出3条即可给1分,不写或少于3不给分,也不扣分。备注:不写汉字,只写括号中的符号也算正确,或者汉字和符号的组合也对。 3. 建立文件”file.txt ”的字节输入流的语句是 FileInputStream in=new FileInputStream (”file.txt ”) 。 评分标准:本题正确给1分,不正确或不写、错误不给分也不扣分。备注:本题答案不唯一,只要是表达出使用字节流类进行文件的字节输入即可,变量名可以不同,只要符合标识符的定义即可。 4. Java 中所有类都是类 Object 的子类。 评分标准:本题正确给1分,不正确或不写、错误不给分也不扣分。备注:首字母必须大写,否则算错不给分,写对象也算正确。 5. Throwable 的两个直接子类是 Error 、 Exception ,在方法头部声明方法可能会 抛出异常使用 throws 关键字。 评分标准:本题正确给3分,不正确或不写、错误不给分也不扣分。备注:Error 、Exception 的首字母必须大写,否则算错不给分;写出对应的汉语也算正确。 6. abastract 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在 抽象类中定义。 final 方法是不能被当前类的子类重新定义的方法。 评分标准:本题正确给2分,不正确或不写、错误不给分也不扣分。备注:写出对应的汉语也算正确,例如,抽象和最终。 7. 按照功能组织类和接口的名称空间称为 package 。 评分标准:本题正确给1分,不正确或不写、错误不给分也不扣分。备注:写出对应的汉语也算正确,例如,包。 三、简答题(每小题5分,共20分) 1. 有如下程序: Moveable.java 文件中有如下代码 interface Moveable{ void move(int x,int y); void jump(int x, int y); } Monkey.java 中如下代码: class Monkey implements Moveable{ public void jump(int x,int y){ System.out.printf(“I am jumping from %d to %d ”,x,y); } 专业班级: 姓名: 学号: …………………………密………………………………封………………………………线…………………………

最新java设计模式考试题资料

1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D都不是 3、Open-Close原则的含义是一个软件实体( a ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( a )模式。 A.创建型 B.结构型 C行为型 D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A, 委派 B.继承 C创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 7、设计模式的两大主题是( d ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8、单子模式中,两个基本要点( a b )和单子类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9、下列模式中,属于行为模式的是( b ) A.工厂模式 B观察者 C适配器以上都是 10、“不要和陌生人说话” 是( d )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对象尽可能少的了解 11、构造者的的退化模式是通过合并( c )角色完成退化的。 A.抽象产品 B产品 C创建者 D使用者

《JAVA程序设计》期末考试试题汇总

《JA V A程序设计》期末考试试题 汇总 (适用于计科11) 喻思远 2012-12-3

前言: 同学们,JA V A考试就要来咯,现在我给大家一份复习资料,这份资料是我从网上找的,是各高校历年的期末试题,然后经过我的删选而得的。主要题型是单选题,填空题,判断题,读程序题,写程序题。 其中需要注意注意的是,最后的写程序题,本套题目中相对较少,我们的期末考试考的写程序题应该是书上的原题,因此我过两天再给大家说下具体可能考的写程序题目。还有,这份题目中可能有些题目重复了或很相似,对于这种出现次数多的题目,同学们要更加引起重视。这个题库题目较多,不要求大家能够看完每道题,只希望把看到的掌握好。大家一定要结合课本来复习,毕竟这个题不是老师给的,不会像c++那样都是原题。 最后,我想说明一点,我给这个题库只是想给大家一个复习的思路,知道考什么知识点,然后进行复习。 加油,同学们,JA V A考试的成功一定会眷顾你!!!

《JA V A程序设计》期末考试试题(一) 一、单选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. privates C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。 4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。 5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage 的包的语句是package MyPackage ; ,

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版)习题 第1章软件设计模式基础 1.1 软件设计模式概述 1.2 UML中的类图 1.3 面向对象的设计原则 一、名词解释 1.一个软件实体应当对扩展开放,对修改关闭,即在不修改源代码的基础上扩展 一个系统的行为。 2.一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 3.在软件中如果能够使用基类对象,那么一定能够使用其子类对象。 4.是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结, 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 二、单选择题 1.( A ) 2.( A ) 3. ( A ) 4. ( D ) 5. ( D ) 6.( A ) 7. ( D ) 8.( D ) 9.( D ) 10.( E ) 11.( C ) 12.( C ) 13. ( A ) 三、多选择题 1.( A、B、C、D ) 2. ( A、B ) 3.( A、D ) 4.( A、B、C、D ) 四、填空题 1.依赖倒转、迪米特法则、单一职责 2.模式名字、目的、问题、解决方案、效果、实例代码 3.超类、子类 4.开闭 5.用户 6.依赖倒转 7.组合/聚合 8.结构型、行为型 9.依赖倒转 10.开闭 11.需求收集是否正确、体系结构的构建是否合理、测试是否完全 12.人与人之间的交流 13.接口 14.名称、目的、解决方案 15.对象组合、类继承

16.对象组合 17.对象组合、类继承 18.抽象类的指针 五、简答题 1.答:设计模式按类型分为以下三类: 1)创建型设计模式:以灵活的方式创建对象集合,用于管理对象的创建。 2)结构型设计模式:将己有的代码集成到新的面向对象设计中,用于处理类或对象的组合。 3)行为型设计模式:用于描述对类或对象怎样交互和怎样分配职责。 2.答:设计模式的主要优点如下: 1)设计模式融合了众多专家的经验,并以一种标准的形式供广大开发人员所用,它提供了一套通用的设计词汇和一种通用的语言以方便开发人员之间沟通和交 流,使得设计方案更加通俗易懂。 2)设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式使得重用成功的设计更加容易,并避免那些导致不可重用的设计方案。 3)设计模式使得设计方案更加灵活,且易于修改。 4)设计模式的使用将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本。 5)设计模式有助于初学者更深入地理解面向对象思想,一方面可以帮助初学者更加方便地阅读和学习现有类库与其他系统中的源代码,另一方面还可以提高软件的设计水平和代码质量。 3.答:设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效 果、实例代码和相关设计模式,其中的关键元素包括模式名称、问题、解决方案和效果。 4.答:正确使用设计模式具有以下优点: ⑴可以提高程序员的思维能力、编程能力和设计能力。 ⑵使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从 而缩短软件的开发周期。 ⑶使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。 5.答:根据类与类之间的耦合度从弱到强排列,UML中的类图有以下几种关系:依赖关 系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。

《JAVA程序设计》模拟题带答案(A卷)

《JAVA程序设计》模拟题 一.判断题 1.Java源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(对) 2.注释的作用是使程序在执行时在屏幕上显示//之后的内容。(错) 3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。(对) 4.由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。(错) 5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法(错) 6.java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。 (错) 7.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。(对) 8.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。(对) 9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个属性与赋值对象相同的新对象。 (错) 10.System类不能实例化,即不能创建System类的对象。(对) 11.一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所 以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。(对) 12.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。(错) 13.静态初始化器是在其所属的类加载内存时由系统自动调用执行。(对) 14.如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。(对) 15.所有的鼠标事件都由MouseListener监听接口的监听者来处理(错) 二.单项选择题 1.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( D )语句。 A、import java.awt.* ; B、import java.applet.* ; C、import java.io.* ; D、import java.awt.event.* ; 2. 关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是( B ) A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问 3. Java application中的主类需包含main方法,main方法的返回类型是什么?( D ) A、int B、float C、double D、void 4. 设有下面两个类的定义: class Person { class Student extends Person { long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){ } return score; } } 则类Person和类Student的关系是( A )。 A、包含关系 B、继承关系 C、关联关系 D、上述类定义有语法错误 5 . 容器Panel和Applet缺省使用的布局编辑策略是( A ) A、FlowLayout B、BorderLayout C、GridLayout D、CardLayout

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

相关文档
最新文档