JAVA复试问题答案

JAVA复试问题答案
JAVA复试问题答案

(一) JAVA复试的问题整理

1 Hibernate 的优化流程是如何实现的,流程是怎么样?

1.尽量使用many-to-one,避免使用单向one-to-many

2.灵活使用单向one-to-many

3.不用一对一,使用多对一代替一对一

4.配置对象缓存,不使用集合缓存

5.一对多使用Bag 多对一使用Set

6.继承使用显示多态 HQL:from object polymorphism="exlicit" 避免查处所有对象

7.消除大表,使用二级缓存

2 Struts1与Struts2的区别?

在Action 实现类方面的对比:Struts 1 要求Action 类继承一个抽象基类;Struts 1 的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action 类可以实现一个Action 接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts2 提供一ActionSupport 基类去实现常用的接口。即使 Action 接口不是必须实现的,只有一个包含execute 方法的POJO 类都可以用作 Struts 2 的Action 。

线程模式方面的对比:Struts 1 Action 是单例模式并且必须是线程安全的,因为仅有Action 的一个实例来处理所有的请求。单例策略限制了Struts 1 Action 能做的事,并且要在开发时特别小心。Action 资源必须是线程安全的或同步的;Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。

Servlet 依赖方面的对比:Struts 1 Action 依赖于 Servlet API,因为Struts 1 Action 的execute 方法中有HttpServletRequest 和HttpServletResponse 方法。Struts 2 Action 不再依赖于 Servlet API,从而允许Action 脱离Web 容器运行,从而降低了测试Action 的难度。当然,如果Action 需要直接访问HttpServletRequest 和HttpServletResponse 参数,Struts 2 Action 仍然可以访问它们。但是,大部分时候,Action 都无需直接访问HttpServetRequest 和HttpServletResponse,从而给开发者更多灵活的选择。

可测性方面的对比:测试Struts 1 Action 的一个主要问题是execute 方法依赖于Servlet API,这使得Action 的测试要依赖于Web 容器。为了脱离Web 容器测试 Struts1

的Action,必须借助于第三方扩展:Struts TestCase,该扩展下包含了系列的Mock 对象(模拟了HttpServetRequest 和HttpServletResponse 对象),从而可以脱离Web 容器测试Struts 1 的Action 类。Struts 2 Action 可以通过初始化、设置属性、调用方法来测试。

封装请求参数的对比:Struts 1 使用ActionForm 对象封装用户的请求参数,所有的ActionForm 必须继承一个基类:ActionForm。普通的JavaBean 不能用作ActionForm,因此,开发者必须创建大量的ActionForm 类封装用户请求参数。虽然 Struts 1 提供了动态ActionForm来简化 ActionForm的开发,但依然需要在配置文件中定义ActionForm;Struts2 直接使用Action 属性来封装用户请求属性,避免了开发者需要大量开发 ActionForm 类的烦琐,实际上,这些属性还可以是包含子属性的 Ric对象类型。如果开发者依然怀念 Struts 1 ActionForm 的模式,Struts2 提供ModelDriven 模式,可以让开发者使用单独的Model 对象来封装用户请求参数,但该Model 对象无需继承任何 Struts 2 基类,是一个POJO,从而降低了代码污染。

表达式语言方面的对比:Struts1 整合了 JSTL,因此可以使用JSTL 表达式语言。这种表达式语言有基本对象图遍历,但在对集合和索引属性的支持上则功能不强;Struts 2 可以使用JSTL,但它整合了一种更强大和灵活的表达式语言:OGNL(Object Graph Notation Language),因此,Struts 2 下的表达式语言功能更加强大。绑定值到视图的对比:Struts1 使用标准JSP 机制把对象绑定到视图页面;Struts2 使用“ValueStack ”技术,使标签库能够访问值,而不需要把对象和视图页面绑定在一起。

类型转换的对比:Struts1 ActionForm 属性通常都是 String 类型。Struts 1 使用commons-Beanutils 进行类型转换,每个类一个转换器,转换器是不可配置的;Struts 2 使用OGNL 进行类型转换,支持基本数据类型和常用对象之间的转换。

数据校验的对比:Struts1 支持在 ActionForm 重写validate 方法中手动校验,或者通过整合 Commons-validator 框架来完成数据校验。Struts 2 支持通过重写validate方法进行校验,也支持整合XWork 校验框架进行校验。

Action 执行控制的对比:Struts 1 支持每一个模块对应一个请求处理(即生命周期的概念),但是模块中的所有Action 必须共享相同的生命周期。Struts 2 支持通过拦截器堆栈(Interceptor Stacks)为每一个Action 创建不同的生命周期。开发者可以根据需要创建相应堆栈,从而和不同的Action 一起使用。

3 Struts1的原理

1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts不同的模块初始化相应的对象。(面向对象思想)

2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。

3.form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。

4.派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。

5.处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发工作。

6.返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。

7.查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。

8.响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。

4 IO的流程如何实现

1,根据输入源不同,构造不同的输入流

2,根据不同的需要,包装原始的输入流。比如用BufferdInputStream提高性能。

3,根据输出源不同,构造不同的输出流。

4,根据不同的需要,包装原始的输入流。

5,从输入流中读取数据写入输出流中。

6,关闭输出,输入流

5 WEB开发安全的注意要点

1.登陆验证码。

利用一个servlet随机产生一个验证码,由于验证码是机器随机产生的,因此暴力破解程序无法预料到具体是什么,所以可以防止暴力破解。

2.登陆身份验证。系统的每个功能都必须经过身份验证后才能访问,没有认证的请求会被过滤掉,这是最基本的安全要求:

1,所有功能都通过Struts的Action来进行访问,不直接以jsp的形式向用户提供功能访问,这样一方面可以防止向用户暴露程序的资源名称,另一方面也可更方便的进行权限控制。

2,对Struts的Actionservlet设置filter,利用该filter来检查用户的权限,这样既可以防止用户登陆后跨url访问。

3.防止扰过权限认证的直接资源访问。虽然前面的设计中,已经要求所有的功能都通过struts的Action来进行访问,但是还是不能排除恶意用户可能会知道程序资源名称(jsp 文件),如果这类用户直接输入jsp文件的url访问,有可能会对系统形成威胁。因此需要禁止所有用户发起的直接资源访问。通常以这种方式来实现:在Web应用中创建一个从不使用的角色:NeverUsedRole,将所有的jsp资源文件配置为必须具有NeverUserRole才能访问。由于根本没有任何用户可以成为该角色。由于根本没有任何用户可以成为该角色,所以也就无法对该角色对应的资源直接访问。

6 常用的集合的区别

Collection接口

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection 的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。

List接口

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。和下面要提到的Set不同,List允许有相同的元素。

LinkedList类

LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。

ArrayList类

ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n 个元素需要O(n)的时间。其他的方法运行时间为线性。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。和LinkedList 一样,ArrayList也是非同步的(unsynchronized)。

Vector类

Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个 Iterator 被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出 ConcurrentModificationException,因此必须捕获该异常。

Stack 类

Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector 得以被当作堆栈使用。基本的push 和pop方法,还有peek方法得到栈顶的元素,empty 方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。

set接口

Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。

Map接口

请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。

Hashtable类

Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。 Hashtable是同步的。

HashMap类

HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。,但是将HashMap视为Collection时(values()方法可返回Collection),其迭代子操作时间开销和HashMap 的容量成比例。因此,如果迭代操作的性能相当重要的话,不要将HashMap的初始化容量设得过高,或者load factor过低。

7 sql的优化

1)Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高

2)尽可能避免排序;尽可能在内存中排序;分配合适的临时空间以减少空间分配调用。3)建立Indexes,但索引的层次越多,效率越低,索引所包含的字段不超过4个。

4)表分区

5)使用where过滤行

Select id from dual where id = 1

6)使用表连接而不是多个查询

使用:

Select a.id,https://www.360docs.net/doc/129291373.html,,b.app_name from A a,B b where a.id=b.id

而不是:

Select a.id,https://www.360docs.net/doc/129291373.html,,b.app_name from B b where a.id=b.id from A a

7)执行连接时使用完全限定的列引用

8)使用CASE表达式而不是多个查询

9)使用WHERE而不用HAVING

避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤。这个处理需要排序,总计等操作。如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销。

10)使用exists而不用IN

11)使用相同的SQL,使用的SQL 必须绝对相同

a)所有字符必须相同

b)大小写要相同

c)空格要相同

12)WHERE子句中的连接顺序

ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。

13)SELECT子句中避免使用‘ * ’

例如:person表包含4个字段(id,name,age,address)

Select id,name,age,address from person;

不用:select * from person

14)使用DECODE函数来减少处理时间

使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表。

15)减少对表的查询

在含有子查询的SQL语句中,要特别注意减少对表的查询。

16) 使用表的别名(Alias)

17) 用EXISTS替代IN

在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下,使用EXISTS(或NOT EXISTS)通常将提高查询的效率。

8 DWR是怎么实现

它先在web.xml中配置一个Servlet,映射到特定的路径(通常是%CONTEXT_PATH%/dwr/*)。这个Servlet的作用就是初始化要暴露给Javascript调用的

Java类(通过dwr.xml进行配置),并生成相应的代理的Javascript类代码。在XHR请求到来的时候,Servlet负责将请求的参数变成对应的Java对象,并以其为参数调用目标Java 方法,并将返回值转化为Javascript代码。

9 list和vector的区别

List接口

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。和下面要提到的Set不同,List允许有相同的元素。

LinkedList类

LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。

ArrayList类

ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n 个元素需要O(n)的时间。其他的方法运行时间为线性。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。和LinkedList 一样,ArrayList也是非同步的(unsynchronized)。

Vector类

Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个 Iterator 被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出 ConcurrentModificationException,因此必须捕获该异常。

Stack 类

Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector 得以被当作堆栈使用。基本的push 和pop方法,还有peek方法得到栈顶的元素,empty

方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。

10 hashmap和hashtable的区别

Hashtable类

Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。 Hashtable是同步的。

HashMap类

HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。,但是将HashMap视为Collection时(values()方法可返回Collection),其迭代子操作时间开销和HashMap 的容量成比例。因此,如果迭代操作的性能相当重要的话,不要将HashMap的初始化容量设得过高,或者load factor过低。

java基础笔试测试题与答案

Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

Java笔试题及答案

Java笔试题及答案 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

JAVA题目附答案

JA V A 题目 1. 若有以下代码: int x=5,y=6; If(x++>=y && x >++y) { } 则执行后,X和y的值分别是() A. 5 6 B. 6 6 C. 6 7 D. 7 7 2.字节型数据的取值范围是: A) -128 ~ 127 B) -28 -1 ~ 28 C) -255 ~ 256 D) 取决于具体的Java虚拟机 4. class Excise { public void method() { byte a = 127; int x = ++a; int y = a + 1; "x=" + x + " y=" + y); } } class TestExcise{ public static void main(String args[]) { Excise o = new Excise (); (); } } A) 输出:x=128 y=128 B) 输出:x=128 y=129 C) 输出:x=-128 y=128 D) 输出:x=-128 y=-127 5. 写出下面代码段的运行结果(A) boolean flag = false; if (flag = true) { "true"); } else { "false"); } A) true B) false C) 出错 D) 没有信息输出 6. 执行下面代码会输出什么内容() Boolean b1 = new Boolean(true); Boolean b2 = new Boolean(true); Object obj1 = (Object)b1; Object obj2 = (Object)b2; if (obj1 == obj2) if (obj2)) "a"); else "b");

(考研复试)操作系统笔记

1:操作系统的目标:提高资源利用率,提高系统吞吐量,使用户使用更方便,兼容新的计算机硬件和软件。 2:操作系统的作用:用户和计算机硬件之间的接口,使用户方便的操纵硬件,计算机系统的管理者,对计算机资源进行抽象。 3:计算机系统的发展:人工操作方式(穿孔卡片),单道批处理系统(每次只从磁盘中调入一个程序进内存),多道批处理系统(调入多个程序,CPU可以切换),分时操作系统(将一台主机给多个用户使用)实时操作系统(响应快,同时面对大量的远程终端)。 4:操作系统特点:并发,共享,虚拟(空分,时分),异步。5:操作系统的功能:CPU管理(进程控制,同步,通信,调度),存储器管理(内存分配,内存保护,地址映射,内存扩充)设备管理(缓冲管理,设备分配,设备处理)文件管理(存储管理,目录管理,读写保护管理)接口(用户接口管理,程序接口管理) 6:操作系统结构:模块化操作系统,分层式操作系统,C/S 操作系统(分布式),微内核结构(建立在前三者的基础上,微内核只提高“最基本”的服务,进程调度、进程间通信、存储管理、处理I/O设备。其他服务,如文件管理、网络支持等通过接口连到微内核,微内核具有良好的移植性)。 7:传统操作系统中,进程是资源分配和独立运行的基本单

位。 8:为了并发才引入进程。 9:进程控制块PCB:是一个记录型数据结构,记录了操作系统所需的用户描述进程的当前状况和控制进程运行的全部信息,使一个在多道环境环境下不能独立运行的程序成为一个可以独立运行的基本单位。系统创建一个进程的时候就要顺带着创建PCB,OS要调用一个进程的时候就要先查看PCB,系统将PCB组织成若干个链队列或索引表,PCB中有进程标识符,处理机状态,进程调度信息,进程控制信息等。10:进程的特性:动态,并发,独立(独立运行,独立分配资源,独立接受调度),异步(不可预知的速度前进)。11:进程的三种基本状态:就绪,阻塞,执行(就绪到执行到阻塞再回到就绪,执行可以直接回到就绪),此外还有挂起,创建,终止。 12:进程的创建:申请PCB,为新进程分配资源(子进程可以继承父进程,比如父进程打开的文件,和父进程的缓冲区等),初始化PCB,把新的进程插入队列。 13:进程的终止:找出PCB,读出进程状态,若进程在执行,就终止进程,若进程有子孙进程,还要把子进程终止。收回资源,移出PCB。 14:进程的阻塞:停止执行,PCB插入阻塞队列,CPU给另外一个就绪进程。

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

java100道选择题含答案

1. 下列不可作为java语言标识符的是(D) A) a1 B) $1 C) _1 D) 11 2. 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3. 整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5. 在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6. 在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8. Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10. 以下声明合法的是( D ) A、default String s; B、public final static native int w( )

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

JAVA题目附答案

JA V A 题目 1.若有以下代码: int x=5,y=6; If(x++>=y && x >++y) { } 则执行后,X和y的值分别是() A. 5 6 B. 6 6 C. 6 7 D. 7 7 2.字节型数据的取值围是: A) -128 ~ 127 B) -28 -1 ~ 28 C) -255 ~ 256 D) 取决于具体的Java虚拟机 4. class Excise { public void method() { byte a = 127; int x = ++a; int y = a + 1; System.out.println("x=" + x + " y=" + y); } } class TestExcise{ public static void main(String args[]) { Excise o = new Excise (); o.method(); } } A) 输出:x=128 y=128 B) 输出:x=128 y=129 C) 输出:x=-128 y=128 D) 输出:x=-128 y=-127 5.写出下面代码段的运行结果(A) boolean flag = false; if (flag = true) { System.out.println("true"); } else { System.out.println("false"); } A) true B) false C) 出错 D) 没有信息输出 6.执行下面代码会输出什么容?() Boolean b1 = new Boolean(true); Boolean b2 = new Boolean(true); Object obj1 = (Object)b1; Object obj2 = (Object)b2; if (obj1 == obj2) if (obj1.equals(obj2)) System.out.println("a"); else System.out.println("b");

(考研复试)数据库笔记

1:数据:描述事物的符号记录 2:数据库是长期存储在计算机内,有组织可共享的大量数据的集合。 3:数据库管理系统维语用户和操作系统之间的一层数据管理软件,具有,数据定义,数据组织管理,数据操纵,数据库事务管理和运行管理,数据库建立和维护。 4:数据库系统:计算机系统引入数据库后的系统,简称数据库。 5:数据管理技术3阶段:人工管理阶段:数据不保存,应用程序管理数据,数据不共享,数据不具有独立性。文件管理阶段:数据可以长期保存,文件系统管理数据,数据共享性差冗余大,数据独立性差。数据库系统阶段:数据结构化,数据共享性好,冗余低,易扩充,独立性高。 6:数据模型分为:第一类:概念模型。第二类是逻辑模型和物理模型,逻辑模型有(层次模型,网状模型,关系模型,面向对象模型,对象关系模型),物理模型:对数据最低层的抽象,描述数据库在系统内部的表示方式和存取方式。从现实世界到概念模型的转换是由数据库设计人员完成,从概念模型到逻辑模型转换由数据库设计人员和工具完成,逻辑模型到物理模型就由DBMS完成。 7:数据模型由:数据结构(描述数据库对象和对象之间的,

完整,数据操作(对数据库中各对象的操作的集合)关系).性约束(数据和其联系所具有的制约)三部分组成。 9:层次模型:简单清晰,查询效率高,良好的完整性支持,但是和现实世界不符,查询子女必须通过双亲。网状模型:更直接的表达现实世界,存取效率高,但是结构复杂。关系模型:简历在严格的数学模型上。概念单一,简单易懂,存取路径对用户透明,高独立性,保密性,但是查询效率不高。10:数据库三级模式结构:外模式,模式,内模式,外模式有多个,就是视图的意思,模式就是数据的逻辑结构,内模式就是物理结构。 11:三级结构有两层映像:外模式/模式映像:修改此映像保证外模式不变,保证逻辑路理性,模式/内模式映像,修改此映像保证模式不变,保证物理独立性。 12:数据库系统由数据库,数据库管理系统,应用系统和数据库管理员构成。 13:关系数据库:候选码:某一列的值能唯一标识一个元组。主码:候选码之一。候选码们的属性称为主属性, 14:实体完整性:主码不为空。参照完整性:关系的外码一定为其他关系的主码,或者外码全部为空。用户定义完整性:比如XX不能为空,XX只能取指定值。 15:SQL 结构化查询语言 16:查询:select。定义:create,drop,alter。操纵:insert,。

java笔试题及答案.doc

java笔试题及答案 有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly 2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口) 答:匿名的内部类是没有名字的内部类。不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Sta ti cNestedC las s 和Inner Clas s 的不同答: Nes tedC lass (一般是C+ +的说法),In ne rClass (—般是JAVA的说法)。J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(I

nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象 4、和的区别 答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and ) 5、Coll ect ion 和Col lect ions 的区别 答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List. Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,a ssertion 就是在程序中的一条语句,它对一个boolea n表 达式进行检查,一个正确程序必须保证这个bool ean表达 式的值为tr ue;如果该值为fal se,说明程序己经处于不正确的状态下,系统将给出警告或退出。一般来说,

java期末选择试题及答案大全

一、单选题:(每题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} ; 其中0≤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 8.下列语句序列执行后,i 的值是( D )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( C )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( B )。 A) x > y || x > z B) x != y C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( D )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是(C )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是D )。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... } C) switch ch D) switch ( a + b );

(完整版)个人自述考研复试

个人自述考验复试 尊敬的评审老师: 您好!非常感谢您百忙之中阅读我的自述。我是XX,于201X年X月毕业于XX大学,我的专业是XX学。在校期间我系统的学习了XX学的相关课程,具有扎实的基础知识并掌握了一定的技能。同时通过阅读丰富了各方面的知识。我将从下面几方面介绍自己: 一、政治表现 我始终拥护中国共产党,认真贯彻学习党的方针政策。坚持用马列主义、毛泽东思想、邓小平理论、三个代表重要思想及科学发展观武装头脑,坚定政治立场。不断学习法律知识,时刻以爱国主义、为人民服务、诚实守信的道德标准衡量自己的行为,督促自己成为一个有理想、有道德、有文化、有纪律的青年。平常喜欢看新闻和报纸,了解时事和政治,积极提高个人的政治觉悟和品格修养。希望能早日成为一名光荣的中国共产党员,为党、为人民奉献自我。 二、外语水平 随着经济全球化,英语的重要作用在学习和生活中日益凸显。对于护理学专业的学习者而言,更是如此。在大学期间,我努力学习英语,一次性通过了国家四、六级英语考试。并且仍不断学习,继续提高听、说、读、写的能力,为自己打下一个良好的英语基础。 三、业务和科研能力 在校期间,本人认真学习专业课知识。在医实习时,注重理论与实践的结合,将自己所学的知识对实际进行一定的对比和分析,并进行理性的思考。我具有独立处理问题的能力。我觉得沟通交往能力对于以后的研究也是必不可少的。还有,我具有良好的团队协作能力,是个尊重他人和礼让的人,相信在以后的科研工作中能把团体的力量发挥到最大。此外,我有较强的学习能力,并且不惧艰辛和挑战。虽然我现在之所学是如此的冰山一角,但是我相信渴望知识、不惧挑战的我将会在知识和科研的海洋里乘风破浪。通过以上的个人陈述,我认为自己在业务和科研能力方面具备一定的能力。但我深知自己的知识还很欠缺,能力也有待进一步提高,希望通过研究生的学习,在老师的帮助下提升自己。 四,研究计划 如果能有幸成为XX大学XX学院的一员,我一定倍加珍惜这个学习机会,致力于学习和科研工作。具体来说,第一,就是除了公共课和专业的学习外,我会大量的阅读自己研究方向的中外文献并做好阅读笔记,注重培养自己理解、分析、评价论文的能力。同时,争取每个实践机会并参与导师的项目和课题的研究。在这两者的基础上,尝试并逐步提高论文写作。第二,我仍会坚持并加倍努力学习英语,更注重自己听、说能力的提高。同时,提高阅读国外文献的能力。第三,网络对于研究生的学习和科研都是极其重要的,我会努力提高运用网络

Java经典面试题大全_带答案

Java经典面试题带答案一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code(字节码) C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行(构造器) D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.Java.sql /sql/数据库还有Oracle 也是一种数据库 B.java.awt C.https://www.360docs.net/doc/129291373.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环

答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

java笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

考研复试自我介绍的必知常识

考研复试自我介绍的必知常识 考研复试自我介绍一般包括五个部分:1.开场白 2.姓名,英文名,毕业院校,毕业专业 3.为什么想读研 4.将来愿意从事的方向,读研时的打算 5.结束语。每一部分都很关键,但是考生在介绍的时候也要有所侧重,有7个点必不可少,下面凯程具体和大家谈谈。 开场白比较简单,一般就是一个简单的问候和寒暄,如:Good morning,dear distinguished teachers!I am very glad to be here for this interview.其中要特别注意要与面试老师打招呼。 第二点关于姓名,毕业院校,所学专业部分不是自我介绍的重点,同学们在讲这部分的时间基本就是面试老师们浏览个人简历的时间,这部分按部就班介绍就可以了。参考表达:I am Li Ming.My English name is Jacky Lee.You can call me that if you’d like to.I am majored in Electronic Science and Technology,I will graduate from***University in this coming July. 考研原因几乎是每个导师都会关心的问题,因此最好把这个问题就放在自我介绍里面说了。这部分的内容我们务必要让考官感到我们选择这个专业是经过深思熟虑的,是一个理性的选择而不是一时冲动。通常我们可以从以下三个方面来回答。 兴趣,即强调对所报考的专业怀有极大的兴趣(have significant interest in...)。如果本科就读的专业与报考的专业一致,则可以说明想继续深造(further education)的愿望。如果不一致,则要说明报考专业对你的吸引力(...appeals to/attracts me a lot)。 优势,即强调研究生相对于本科生在知识、学术方面的优势,如:知识面更广(wider knowledge),学术更专业(more professional),眼界更广阔等(broaden ones horizon)。 益处,即强调考研对你的未来的积极影响(have a positive effect on...),可以从求职、职业规划、人生经历等方面入手进行说明。可参考的词汇、短语如下:Be helpful, contribute to,be beneficial to,be conductive to,be a definite advantage, become a strong point when it comes to...等等。 对于那些在职考生或有工作经验的考生来说,考官乐于知道他们为什么(放弃工作而)重新学习。考生可以直言在工作发现某些知识或技能很重要,希望能通过学习在这些方面进行提高(In my work,I found...is rather important.I always believe that one will easily lag behind unless he keeps on learning.So I choose to go back to school and improve myself。)。

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题 (请不要在试题上留任痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关键字 以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6

输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化( A ) A.Serializable B.Cloneable https://www.360docs.net/doc/129291373.html,parable

D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A. 1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } } A.run main B.main run C.main D.run E.不能确定 5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B ) A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值

Java练习题及答案

Java 练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet (Java Application 、Java Applet )。 3、安装JDK后,Java 开发工具在Bin 目录。 4、声明接口的保留字是interface 。 5、类的声明“ public class Test extends Applet implements Runable{} ” 中,定义的类名是Test ,其父类是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java (写出包括扩展名的文件名)。 6、一个完整的Java 应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名为main 的方法 7、JDK下解释执行Java 的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1 中的元素有10 个;c2 中的元素有10 个; 已初始化赋 值的是c2 (c1 c2 )。 9、执行完下列程序后i 的值为5

int i=0; while(i<5) { i++; 10、运行下列程序段后,结果 c 的取值为120 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java 中已提供的类,我们需要用import 语句来引入所需要的类。语句import java.io.* ;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B 、final C、abstract D 、private 2、对成员的访问控制保护最强的是(C ) A、public 、 B、缺省、 C private D protected 3、可用做Java 标识符的是( B )。 A、try B_isYour C 2time D my name

(完整版)(考研复试)软件工程笔记

1:软件危机:问题1:如何开发软件,以满足对软件日益增长的需求。问题2:如何维护数量不断膨胀的软件。表现:对软件开发成本和时间估计不准,用户对已完成软件不满意,软件质量不可靠,软件不可维护,软件缺少文档,软件成本过高,软件跟不上硬件发展速度。原因:与软件本身特点有关,缺乏可见性,质量难以评价,规模庞大难以维护。与软件开发维护的不当方法有关,轻视需求分析和维护,对用户的要求没有完整准确的认识就编写程序,忽视程序,文档,数据等软件配置。 2:软件工程:采用工程的概念,原理,技术和方法开发与维护软件,把正确的管理技术和软件开发技术结合起来,经济的开发出高质量的软件并有效的维护。即把系统化的,规范的,可度量的途径应用于软件开发,运行和维护的过程。3:软件工程7条基本原理:用分阶段的生命周期计划严格管理,坚持进行阶段评审,实行严格的产品控制,采用现代程序设计技术,结果应能清楚地审查,开发小组的人员应该少而精,承认不断改进软件工程实践的必要性。 4:软件工程领域:软件需求,设计,构建(写代码),测试,维护,配置管理,工程管理,工程过程,工程工具,软件质量。 5:软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(概要设计,详细设计,编码和单元测

试,综合测试),运行维护(改正性维护,适应性维护,完善性维护,预防性维护)。、 生命周期模型 6:瀑布模型:就是把一个开发过程分成收集需求,分析,设计,编码,测试,维护六部分,只有完成前面一步才能开始后面一步,上一步的输出的文档就是这一步的输入文档,每一步完成都要交出合格的文档,每一步都会有反馈,如果反馈有错误就退回前一步解决问题。瀑布模型的缺点:实际的项目开发很难严格按该模型进行;由于用户只能通过文档来了解产品,客户往往很难清楚地给出所有的需求,而瀑布模型不适应用户需求的变化;软件的实际情况必须到项目开发的后期客户才能看到。 7:快速原型模型:就是根据用户的需求迅速设计出一个原型系统,原型系统具有基本的功能,然后用户使用原型并对原型提出需求和改变,开发人员再对原型进行修改和完善知道用户满意。优点:容易适应需求的变化;有利于开发与培训的同步;开发费用低、开发周期短且对用户更友好。缺点:快速建立起来的系统结构加上连续的修改可能会导致产品质量低下;使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。 8:增量模型:就是把软件分成许多个构件,每个构件分别当做一个软件来分析,设计,编码,测试。开发人员一次一

相关文档
最新文档