Java工程师三大框架面试题。

在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《Java工程师三大框架面试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

面试频道提供最新Java工程师面试题,并提供Java工程师三大框架面试题供大家参考,查找Java工程师面试题及相关面试题目上!

1.Hibernate3提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。

2.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)

类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many

3.JSF是什么?

JavaServerFace是基于组件的web开发框架,跟sturts差不多的框架

4.数据库里面的索引和约束是什么?

索引是为了提高数据的检索速度,索引是建立在数据表上,根据一个或多个字段建立的约束是为了保持数据的完整性,约束有非空约束,主键约束,外键约束等等。

5.Hibernate工作原理及为什么要用?

原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Session4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory

为什么要用:1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

6.Hibernate是如何延迟加载?

1.Hibernate2延迟加载实现:a)实体对象b)集合(Collection)

7.Struts1流程:

1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被ActionServlet接收。3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action进行处理。4、是否验证,需要验证则调用ActionForm的validate方法,验证失败则跳转到input,成功则继续。5、Action从ActionForm获得数据,调用javabean中的业务方法处理数据。6、Action返回ActionForward对象,跳转到相应JSP页面或Action。7、返回HTTP响应到客户端浏览器。

MVC设计模式:modal:模型也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射

8.struts是什么?

struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式struts2是基于webwork技术的框架,是sun和webwork公司联手开发的一个功能非常齐全的框架,struts2和struts1没有任何关系,是一个全新的框架

9.spring是什么?

spring是一个集成了许多第三方框架的大杂烩,其核心技术是IOC(控制反转,也称依赖注入)和AOP(面向切面编程)

10.hibernate是什么?

hibernate是基于ORM对象关系映射(完成对象数据到关系数据映射的机制)实现的,做数据持久化的工具

11.spring是什么

这个问题,往往可以通过我们为什么要使用spring这个问题来切入:AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所表明的,IOC就像反过来的JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。Spring即使一个AOP框架,也是一IOC容器。Spring最好的地方是它有助于您替换对象。有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。

12.用自己的话简要阐述struts2的执行流程。

Struts2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。

Struts2的工作流程相对于Struts1要简单,与WebWork框架基本相同,所以说Struts2是WebWork的升级版本。基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。

ZC530.com小编推荐

网易校园招聘运维工程师笔试题


网易是一个大公司,下面小编整理了网易校园招聘运维工程师笔试题,欢迎阅读!

1、绕一根不均匀的绳子,从头到尾总共需要1小时,现在有若干条相同材质的绳子,请你想一个办法,如何用绕绳的方法来计时1个小时15分钟呢?

2、请写出Linux下面和网络配置相关的命令和配置并简单说明每个功能?

3、mysql下面授权192.168.1.1.的a用户访问b库的c表,如何授权?

4、如何查看file1文件的第300-500行的内容?

5、简述TCP三次握手过程?

6、写一个脚本,该脚本能对标准的apache日志进行分析并统计出总的访问次数和每个访问ip的访问次数,按访问次数列出前5名?

7、简述raid0、raid1、raid5三种工作模式的工作原理以及特点?

8、列举三项你最拿手的计算机、Linux或互联网相关技术?

1、在网络传输数据时,经常需要将二进制数据转换为一个可打印字符串,一般用到的可打印字符集合包含64个字符,因此又称为Base64表示法,现有一个char数组长度为12,要将它表示为Base64字符串,请问Base64字符串至少需要几个char;如果char的长度为20,则需要几个char。

2、某部门年会的时候,有个环节叫做《国王和天使》,每个人将自己的名字写在纸条上并丢入盒子中,等所有人都完成该动作后,每个人再从盒子里拿出一张小纸条,上面的人物就是自己的国王,自己就是ta的天使,如果抽到自己,就再抽一遍,直到抽到别人为止,如果用有向图来表示他们之间的关系,那么以下结论错误的是?

1、最后的结果可能是存在多个联通分支

2、联通分支个数最多不超过人数的二分之一

3、最后的结果可能是存在多个强联通分支

4、可以用深度优先算法求得联通数

5、可以用双向链表存储其结构

6、遍历的复杂度是O(N)

3、假设支付宝红包口令支持1到6位的数字组合,即0,1,003和999999都是合法的红包口令,那么总共可以有多少个合法的红包口令?

4、假设某棵二叉查找树的所有键均为1到10的整数,现在我们要查找下面_是不可能是键的检查序列。

1、10,9,8,7,6,5

2、2,8,6,3,7,4,5

3、1,2,9,3,8,7,4,6,5

4、2,3,10,4,8,5

5、4,9,8,7,5

6、以上均正确

5、能整除1400的数目是__?

6、设二叉树节点的线序遍历,中序遍历与后序遍历,所有叶子节点的先后顺序__?

7、一个具有513个节点的二叉树,有_种可能的层高。

8、给定一个整数sum,从有N个无序元素的数组中寻找元素a,b,c,d,使得a+b+c+d=sum,最快的平均时间复杂度是_?

1、O(N^2)

2、O(logN)

3、O(N)

4、O(N^3)

5、O(N^2logN)

6、O(N^4)

9、如下SQL数据中,_可能返回null值。

1、selectcount(*)fromt1;//返回行的个数

2、selectmax(col1)fromt1;//返回列中的某个最大值

3、selectconcat(max=,maxof(col1))fromt1;//连接字符

10、函数lg(ax^2-8x+a-6)的值域为R,那么实数a的取值范围是_?

11、一台刚接入互联网的WEB服务器第一次被访问到时,不同协议的发生顺序是下面中的_?

1.ARP-DNS-HTTP

2.ARP-HTTP-DNS

3.DNS-HTTP-ARP

4.DNS-ARP-HTTP

5.HTTP-ARP-DNS

6.HTTP-DNS-ARP

12、以下程序运行结果?

#include

usingnamespacestd;

classcat{

intage;

public:

//构造函数

cat{age=1;}

//析构函数,类似于Java的finalize

~cat{}

//一个公共方法

voidmiao(void){

coutMiao,myage=

}

};

intmain(void){

catkitty;

int*p=(int*)(kitty);

*p=20;

kitty.miao;

return0;

}

PHP面试题大全


大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《PHP面试题大全》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

基础题:

1.表单中get与post提交方法的区别?

答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

2.session与cookie的区别?

答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放

cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

两者都可通过时间来设置时间长短

3.数据库中的事务是什么?

答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

简述题:

1、用PHP打印出前一天的时间格式是2006-5-1022:21:21(2分)

答:echodate(Y-m-dH:i:s,strtotime(-1days));

2、echo,print,print_r的区别(3分)

答:echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print只能打印出简单类型变量的值(如int,string)

print_r可以打印出复杂类型变量的值(如数组,对象)

echo输出一个或者多个字符串

3、能够使HTML和PHP分离开使用的模板(1分)

答:Smarty,Dwoo,TinyButStrong,TemplateLite,Savant,phemplate,XTemplate

5、使用哪些工具进行版本控制?(1分)

答:cvs,svn,vss;

6、如何实现字符串翻转?(3分)

答:echostrrev($a);

7、优化MYSQL数据库的方法。(4分,多写多得)

答:

1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOTNULL,例如省份,性别,最好设置为ENUM

2、使用连接(JOIN)来代替子查询:

a.删除没有任何订单客户:DELETEFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)

b.提取所有没有订单客户:SELECTFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)

c.提高b的速度优化:SELECTFROMcustomerinfoLEFTJOINorderidcustomerinfo.customerid=orderinfo.customerid

WHEREorderinfo.customeridISNULL

3、使用联合(UNION)来代替手动创建的临时表

a.创建临时表:SELECTnameFROM`nametest`UNIONSELECTusernameFROM`nametest2`

4、事务处理:

a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败

mysql_query(BEGIN);

mysql_query(INSERTINTOcustomerinfo(name)8iVALUES($name1);

mysql_query(SELECT*FROM`orderinfo`wherecustomerid=.$id);

mysql_query(COMMIT);

5、锁定表,优化事务处理:

a.我们用一个SELECT语句取出初始数据,通过一些计算,用UPDATE语句将新值更新到表中。

包含有WRITE(write)关键字的LOCKTABLE语句可以保证在UNLOCKTABLES命令被执行之前,

不会有其它的访问来对inventory进行插入、更新或者删除的操作

mysql_query(LOCKTABLEcustomerinfoREAD,orderinfoWRITE);

mysql_query(SELECTcustomeridFROM`customerinfo`whereid=.$id);

mysql_query(UPDATE`orderinfo`SETordertitle=$titlewherecustomerid=.$id);

mysql_query(UNLOCKTABLES);

6、使用外键,优化锁定表

a.把customerinfo里的customerid映射到orderinfo里的customerid,

任何一条没有合法的customerid的记录不会写到orderinfo里

CREATETABLEcustomerinfo

(

customeridINTNOTNULL,

PRIMARYKEY(customerid)

)TYPE=INNODB;

CREATETABLEorderinfo

(

orderidINTNOTNULL,

customeridINTNOTNULL,

PRIMARYKEY(customerid,orderid),

FOREIGNKEY(customerid)REFERENCEScustomerinfo

(customerid)ONDELETECASCADE

)TYPE=INNODB;

注意:ONDELETECASCADE,该参数保证当customerinfo表中的一条记录删除的话同时也会删除order

表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;

7、建立索引:

a.格式:

(普通索引)-

创建:CREATEINDEX索引名ONtablename(索引字段)

修改:ALTERTABLEtablenameADDINDEX[索引名](索引字段)

创表指定索引:CREATETABLEtablename([...],INDEX[索引名](索引字段))

(唯一索引)-

创建:CREATEUNIQUE索引名ONtablename(索引字段)

修改:ALTERTABLEtablenameADDUNIQUE[索引名](索引字段)

创表指定索引:CREATETABLEtablename([...],UNIQUE[索引名](索引字段))

(主键)-

它是唯一索引,一般在创建表是建立,格式为:

CREATATABLEtablename([...],PRIMARYKEY[索引字段])

8、优化查询语句

一套软件开发工程师笔试题


在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《一套软件开发工程师笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

软件开发是一个很吃香的行业,下面小编整理了一套软件开发工程师笔试题,欢迎阅读!

1、试分析下面的SQL语句的优劣,并用另外的方法实现。

(1)Select*fromempewheree.Noin(selecta.Nofromampa)

Select*fromempeewhereNOTEXISTS(Selecta.Nofromampawheree.NO=a.No)

(2)select*fromempe,anpawheree.No=a.No

2、用Decoole重写下面的socl语句

SELECTCOUNT(*),SUM(SAL)FROMEMPWHEREDEPT_NO=0020ANDENAMELIKESMITH%;

selectcount(*),sum(sal)fromempwheredept_no=0030andenamelikesmith%;

selectcount(decode(dept_no,0020,x,null))d0020_count,

count(decode(dept_no,0030,x,null))d0030_count,

sum(decode(dept_no,0020,sal,0))d0020_sal,

sum(decode(dept_no,0030,sal,0))d0030_sal

fromempwhereenamelikesmith%;

3、下面哪几种SQL不好。2,4,5

(1)update语句(2)in语句(3)子查询(4)多查等值查询(5)笛卡尔乘积

4、请造出下列哪3种命名正确A,B,D

A、ASDB、$abcC、constD、_asdE、3_asd

5、texareajava(1)写出文件名(2)补充代码

6、型转换

example:

publicStringgetValue(Objecta,Objectb){}

当下列方法调用时将出现何种异常,如何修正

Stringc=newString(aaa);

intd=123;

my.getValue(c,d);

(1)Integerd=newInteger(123);

(2)My.getValue(c,(String)d);

7、在JSP上显示Araylist中的元素

序号姓名

8、解释

beam:远程接口的具体实现

Home:管理和创建远程对象

Romate:提供给用户的远程接口

9、解释Javabean与EJB的区别

10、SeSSonbean与Entitybean区别

11、解释Commend、DAO模式,试举例说明。

Command定义

不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作,将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,将这种直接关系拗断,同时两者之间都隔离,基本没有关系了.

显然这样做的好处是符合封装的特性,降低耦合度,Command是将对行为进行封装的典型模式,Factory是将创建进行封装的模式,

从Command模式,我也发现设计模式一个通病:好象喜欢将简单的问题复杂化,

喜欢在不同类中增加第三者,当然这样做有利于代码的健壮性可维护性还有复用性.

如何使用

具体的Command模式代码各式各样,因为如何封装命令,不同系统,有不同的做法.下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特性消失了,只有取出时,才有可能模糊的分辨出:

典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是将命令/请求封装为对象:

程序代码:

publicinterfaceCommand{publicabstractvoidexecute();}

//具体不同命令/请求代码是实现接口Command,下面有三个具体命令

程序代码:

publicclassEngineerimplementsCommand{

publicvoidexecute(){//doEngineerscommand}

}

publicclassProgrammerimplementsCommand{

publicvoidexecute(){//doprogrammerscommand}

}

publicclassPoliticianimplementsCommand{

publicvoidexecute(){//doPoliticianscommand}

}

按照通常做法,我们就可以直接调用这三个Command,但是使用Command模式,我们要将他们封装起来,扔到黑盒子List里去:

程序代码:

publicclassproducer{

publicstaticListproduceRequests{

Listqueue=newArrayList;

queue.add(newDomesticEngineer);

queue.add(newPolitician);

queue.add(newProgrammer);

returnqueue;}

}

这三个命令进入List中后,已经失去了其外表特征,以后再取出,也可能无法分辨出谁是Engineer

谁是Programmer了,看下面如何调用Command模式:

程序代码:

publicclassTestCommand{

publicstaticvoidmain(String[]args){

Listqueue=Producer.produceRequests;

for(Iteratorit=queue.iterator;it.hasNext;)

//取出List中东东,其他特征都不能确定,只能保证一个特征是100%正确,//他们至少是接口Command的儿子.所以强制转换类型为接口

Command((Command)it.next).execute;

}

}

DAO:

由此可见,调用者基本只和接口打交道,不合具体实现交互,这也体现了一个原则,面向接口编程,这样,以后增加第四个具体命令时,就不必修改调用者TestCommand中的代码了.

12、谈一下对保障软件质量的理解。

有效的软件质量管理

一、引言

随着社会信息化水平的不断提高,信息行业急速膨胀,信息企业快速成长,随之带来的信息市场竞争激烈,企业为了求生存,满足客户要求则成为各行各业的首要责任。依赖于质量、成本和进度的客户满意度,质量则是重点支撑之一,这样要求我们对质量管理需要加强认识。我们都知道pmbok把项目管理划分为9个知识领域,即范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理。质量管理作为9大知识领域之一,可见其重要性。

质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。

二质量管理责任分配

我们公司在开发项目上按照规范化软件的生产方式进行生产,在生产流程上采用ISO9000的标准进行。每个项目除配备了项目开发所需角色外,还专门配备了配置管理小组、测试小组和质量保证小组确保质量管理的实施,下面针对这三种角色进行说明:

1、配置管理小组职责

配置管理小组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。配置管理小组的主要职责包括:完善各个部门发送需要存档和进行版本控制的代码、文档(包括外来文件)和阶段性成果;对代码、文档等进行单向出入的控制;对所有存档的文档进行版本控制;提供文档规范,并传达到开发组中。

2、测试小组职责

测试小组作为质量控制的主要手段,负责软件的测试设计和执行工作。如同软件开发一样,测试在执行之前,同样需要进行测试计划和测试策略的设计,通常情况下测试可以分为如下几种类型,如:正确性测试、功能性测试、性能测试、安全测试和系统测试等。而这些测试均需要在测试计划和测试策略中进行描述用以指导测试小组成员进行测试用例编写和测试执行。程序员在交给测试人员之前是进行过一定的单元测试,确保程序编译、运行正确。

测试人员根据详细设计的文档对软件要实现的功能进行一一测试,保证软件的执行正确的实现设计要求,在此也只证明了软件正确的反映了设计思想,但是否真正反映了用户的需求仍需要进一步的功能性测试。

测试人员只有根据软件需求规格说明书所提及的功能进行检测,才能确保项目组开发的软件产品满足用户需求。在正确性测试完成之后,需要测试的是软件的性能,软件的性能在本项目中占有重要的地位,性能要求有可能改变软件的设计,为避免造成软件的后期返工,测试在性能上需要较大的侧重。如果有必要的话,测试小组还需要做安全测试,以确保系统使用安全可靠。

3、质量保证小组职责

质量保证小组作为质量保证的实施小组,主要职责是保证软件透明开发的主要环节。在项目开发的过程中几乎所有的部门都与质量保证小组有关。质量保证小组对项目经理提供项目进度与项目真正开发时的差异报告,提出差异原因和改进方法。

在项目进度被延滞或质量保证小组认为某阶段开发质量有问题时,提请项目经理、项目负责人等必要的相关人员举行质量会议。解决当前存在的和潜在的问题。质量保证是建立在文档的复审基础之上,因而文档版本的控制,特别是软件配置管理,直接影响软件质量保证的影响力和力度。质量保证小组的检测范围包括:系统分析人员是否正确的反映了用户的需求;软件执行体是否正确的实现了分析人员的设计思想;测试人员是否进行了较为彻底的和全面的测试;配置管理员是否对文档的规范化进行的比较彻底,版本控制是否有效。

三质量管理实施

有了良好的资源配备,又如何在项目全生命周期内实施质量保证,让我们从以下几个方面来看质量保证的实施过程:

1、项目进度的质量保证

项目进度是项目进行是否顺利的最直观表现。显然在项目开始之前,项目开发计划是必须的。如果项目开发计划的制定的是完全合理的,那项目进度也就真正表达了项目与最终的交付使用之间的距离,然而要制定完全合理的项目开发计划几乎不太可能。可见要保证项目进度,首先要保证项目开发计划尽可能合理。

项目计划的合理程度与项目计划制定者从事类似规模和类似业务的项目的经验有直接关系,通过经验往往能够预见潜在的阻碍,这样要求项目计划制定者需要集众人之力来完善计划。

当项目计划制定初期,由质量保证小组组织召开的项目计划评审会,邀请公司技术专家、用户以及项目组小组成员一起讨论项目计划的可行性,会议通常采用头脑风暴法,各抒己见,会后由指定的记录员形成质量记录,发送给相关人员,对其计划中不合理的地方进行修改完善,并由质量保证人员对其结果跟踪,以确保项目计划完整性、可行性,完善后的计划交由配置管理人员进行版本控制。

然而在计划实施过程中,计划不是固定化。常有人道,计划赶不上变化,但要跟上变化。项目计划以里程碑为界限,将整个开发周期划分为若干阶段。根据里程碑的完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间,这种方式非常有利于整个项目计划的动态调整。也利于项目质量保证的实施。

实际运作中,当质保小组发现计划实施的差异后,报告项目经理,由项目经理组织负责对计划进行周期性维护,对于已经变动的计划由质保小组协助配置管理小组完成版本控制。本公司已经开发湖南移动的集中客服系统,开发中的子项目多达六个,历时十个月,目前多数项目已经开发完毕,系统正在试运行阶段,项目金额数千万元。在这样的项目中,从管理者到开发人员到测试人员都积累了较为丰富的经验,特别是项目开发计划的制定,和项目进度的控制。

2、项目开发各阶段的质量保证

a、需求分析

需求分析是开发人员对系统需要做什么和如何做的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。

解决系统分析错误的方法我们公司通常采用邀请用户参与进行需求评定,然后对其用户的意见由质保成员跟踪检测是否纳入需求规格说明书,同时与用户签字确认形成需求基线,交由配置管理员放入配置管理库。

虽然尽早的邀请用户参与,仍然避免不了项目进行中用户的需求变更请求。对于开发过程存在的需求变动,我们要求用户填写变更申请单发送给项目配置管理员,在通过配置配置员转交质保小组,负责组织专家小组和项目组成员一起讨论实施变更的可行性及实施后所带来的影响,小的变更则直接记录入变更记录原因分析项和风险项栏,大的变更则需要形成正式的变更报告,无论那种变更都需要对相应的文档实施同步变更(包括需求规格说明书、详细设计文、安装手册、操作手册等)。但是对于无法实现或是变更会带来巨大的影响而将导致进度的延期,这时,我们将变更报告提交给用户或邀请用户进行协调会议,讨论变更取舍问题或是项目进度变更问题。

决定变更之后,由项目经理组织实施变更,测试人员检测变更结果,而质保小组成员监督变更实施过程并协助配置管理员对变更后的成果物进行版本控制。变更实施完后,上线前还需要指定人员协助用户一同测试并由用户签字后同意方可上线。

b、系统设计

优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为了系统设计首要的工作,究竟是采用哪种设计方法好呢?

对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。

我们公司有过一个项目,用户指定需要采用面向对象分析、设计和开发,且开发周期短,在无赖的情况下,项目小组只能选用面向对象的软件开发过程,由于项目小组很少从事过面向对象的开发,经验缺乏,导致项目上马后项目进度延误,项目没有达到预期的效果。

针对此次开发,我们分析其原因,发现小组成员在开发过程中对于新技术互相交流少,各自有各自的理解和想法,造成理解上的不一致性,导致工作重复性高,滞后项目进度。建议解决方法是项目组成员采用集中办公,分块学习,学习的成果马上向项目相关人员发布,再由配置管理员对其发布的文档进行整理、规类放入配置库以供大家共享。这样方便大家的互相学习,减少重复的工作。在这次开发中我们公司从管理人员、设计人员到开发人员都汲取了很多教训,同时经过此次项目的开发,小组成员也积累了丰富的面向对象的开发经验。

除设计选型,还有一个容易被忽视的问题,就是公共类开发。公共类开发可以减少工作中的重复工作,降低开发成本。这要求我们再设计阶段通过对用户需求的仔细研究,尽可能的识别出公共类,并进行定义指定专人负责设计通知其它设计人员,以减少重复工作。对于项目组提供的设计文档,由质保小组组织技术专家、项目组设计人员、开发人员和测试人员对其设计文档的评审,检测设计文档对其下一阶段工作的可行性,及时发现设计中可能存在的错误,降低项目开发风险,同时确保设计文档能为开发人员、测试人员提供切实的指导。对于可复用的设计进行提取作为公共库设计和开发,提供项目组或整个公司重用。最后交由配置管理员进行设计文档的版本控制。

c、实现

实现也就是代码的生产过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。

d、文档管理

文档维护主要是配置管理小组的工作。文档从用途上分主要分为内部文档和外部文档。

内部文档包括:项目开发计划;需求分析;体系结构设计说明;详细设计说明;构件索引;构件成分说明;构件接口及调用说明;组件索引;组件接口及调用说明;类索引;类属性及方法说明;测试报告;测试统计报告;质量监督报告;源代码;文档分类版本索引;软件安装打包文件。

外部文档主要包括:软件安装手册;软件操作手册;在线帮助;系统性能指标报告;系统操作索引。

如何保证文档的全面性,使其真正为项目的进度提供保证,又不因为文档的写作而耽误项目的进度,这仍然是一个比较难解决的问题。解决此问题,其核心仍然是个度的问题。在本项目的开发中,配置管理小组的一个非常重要的任务还是书写文档规范和文档模板。当有文档模板后需要书写文档的人员只剩下填空的工作,从某种意义上讲,书写文档的速度会加快。如果书写文档的人员认为文档的更细致的部分可以由他人帮助完成,则该文档即交由他人完成,但此时文档并不算被正式提交,当他人书写完毕之后,必须由文档的初写者进行复审,复审通过后方可以正式提交,进入软件配置管理的循环中。

配置管理小组真正核心的工作是对文档的组织管理。根据文档的不同,文档的来源也不同,有些是通过质量保证小组经过复审之后转交给配置管理小组,有些则会直接从文档的出处到达配置管理小组。文档的管理是一个非常烦琐的工作,但是长远来看它不仅使项目的开发对单个主要人员的依赖减少,从而减少人员流动给项目的带来的风险,更重要的是在项目进行到后百分之十的时候起到拉动项目的作用。

从以往做大项目的经验来看,写作文档在项目开发的早期可能会使项目的进度比起不写文档要稍慢,但随着项目的进展,各个部门需要配合越来越多,开发者越来越需要知道其他人员的开发思路和开发过程,才能使自己的开发向前推进。一个明显的例子就是系统整合,或者某些环节是建立在其他环节完成的基础之上时,就更显现出文档交流的准确性和高效性。

3、系统维护质量保证

在我们公司,维护小组的任务一方面是保证对项目客户的跟踪服务,另一方面是确保该项目其它的开发人员从项目中尽快的解脱出来以便投入到下一个项目的开发中。所以通常项目维护小组成员主要由项目组的少部分开发人员承担完成。他们不仅了解软件的核心内容,而且与客户也不陌生,以便能够以最快的速度修正错误。对于一般性的错误,如操作不当等引起的问题,全部由维护小组执行完成,但需要用户测试确认上线。如果较大的修改则需要走变更控制流程,用户或者维护人员填写变更申请,经专家会议讨论分析可行方案在由维护小组实施,通过测试后方可提交用户。

维护小组的人员基本上是按项目跟进的。当一个项目刚刚交付用户时,在维护小组有较多的人员进行跟进,随软件的稳定,跟进的人逐步减少,并转移到其它项目中去。

133.给出一个MVC结果图,请简单用文字对他进行一次前后台交互的描述。(这个图你去找啦)

14PowerDesigner

15项目经验

16三层结构的理解

英语电话面试题目


英语面试频道提供最新英语电话面试题目,并提供英语电话面试题目及相关英语面试供大家参考,查找英语电话面试题目及相关英语面试上!

1.What are your plan in 5 to 10 years?

2.What is your TOEFL score?

3.Do you apply any other school?

4.What will you plan to do in the future?

5.Whats your hobby? What do you do in your spare time?

6.If we give you this offer, will you accept it?

7.Why are you interested in University?

8.Why are you going to USA not staying your homeland to study?

9.Say something about your work, etc。

10.Who is the great person in the world in your eyes?

11.Do you have some question on me or on my institute?

12.Is your research project very difficult?

13.If you are given an offer, can you come here this July?

14.Whats you graduate research work?

15.Why pursue Ph。D。?

16.Please introduce yourself。

17.Where are you from?

18.Whats your major?

19.Please tell me your working experience。

20.Do you have any special or excellent idea during your research experience?

21.Did you use any English textbook in classes?

22.Will you like to study in a small but with high quality university or a big university like Harvard or Princeton?

23.Do you apply for other university or contact with other faculties in the university?

24.How about your ability to be a teaching assistant?

500强面试题


大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《500强面试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

新春刚过,新一轮人才的竞争又将展开,面试和复试似乎已成为一般企业招聘不可或缺的环节,而优秀的企业必有独特的选择人才的方式,那么您知道世界500强的面试题有什么不同吗?布莱尔?沃森,这位25年来500强公司的面试官,首次揭秘对答的所有问题和成功应试的秘诀。

本书的问题,是软件业人士在面试时常问的,其中大多数出自微软公司,也有一些来自世界500强中的其他公司。作者也从朋友那里收集了一些问题,在收集这些问题上花费了一些时间,想到的是它们具有练习的价值。它们并不是真的需要你弄明白,并在面试时给出答案,它们只是想让你思考!和朋友、同事、教授讨论问题的答案。

■此时有宇宙飞船你会进去吗?

您可能已经读过求职方面的书,并在心里反复温习了面试标准问题的答案。但是面试官提的是其他问题,一些你没有想到的问题,这时该怎么办?这样的问题可能是最难的,因为它们会表明你的思维敏捷程度。它们可能非常有诱惑力,让您戒备心全无,从而中了面试官的圈套,展现出自己的方方面面,包括你原本不打算暴露出来的某些个性。

□范例

几年来,我遇到三个刁钻的问题。可惜的是,我因没有心理准备而未能给出令人满意的答复。

(1)你的约会很多吗?(问这个问题的是美国一家防务公司的一名女面试官。)

(2)你今天为什么来这里?(一家投资银行的面试官走进他的办公室,看到我坐在那里等他时所问的问题。)

(3)如果此时外面有一艘宇宙飞船着陆,你会走进去吗?如果它可以去任何一个地方,你会要求它把您带到哪里?(一家投资银行的面试官所问的问题。)--凯利,1999年5月3日

□建议

这几个问题都具有挑战性,虽然第一个问题看上去有点不同寻常,是一名女性向另一名女性提出的问题,但你仍要认真作答,让对方感到满意。比较好的回答方式是:"如果你担心我对私人生活的关注程度大于对工作的关注程度,那么我向你保证,我对工作非常投入。同样,我努力保持平衡的生活,以各种各样的方式充实我的业余生活。"这既回答了面试官的问题,也没有暴露自己的隐私。

"你今天为什么来这里"这样的问题给你提供了一个阐述自己对这份工作的热情的机会。如果你不是从这句话的表面意思去看,那么这就是一个刁钻的问题。在接受面试时,很重要的一点是让自己轻松一点,不要分析每个问题到底是什么意思。想方设法让你的回答能够拉近你与面试官之间的关系。并表明你作为这个职位的应聘者,有着自己的优势。"我来这里是要和你讨论一下我应聘某某工作的问题。你愿意同我介绍一下自己的情况吗?" 宇宙飞船这个问题问的是你有多大的冒险精神,要回答这个问题,需要根据你对自己所应聘的工作的了解好好组织自己的语言。假如这项工作要求你具有创新精神,那么你可以说:"是的,我会上去,去见见曾经在这个星球走过的那些最具有创新精神的人,问问他们最喜欢用什么方式来让自己尽可能保持创造力。" ■下水道的井盖为什么是圆的? 微软的顾问有时会得到一些特殊待遇,因为在面试时询问他们的问题并不是真的算算术。 □范例 理查德?范曼在微软找工作 面试官:现在我们要问一个问题,看看你的创造性思维能力。不要想得太多,运用日常生活中的常识,描述一下你的想法。这个问题是,下水道的井盖为什么是圆的? 范曼:它们并不都是圆的,有些是方的,的确有些圆井盖,但我也看过方的,长方的。 面试官:不过我们只考虑圆形的井盖,他们为什么是圆的? 范曼:如果我们只考虑圆的,那么它们自然是圆的。 面试官:我的意思是,为什么会存在圆的井盖?把井盖设计成圆形的有什么特殊的意义吗? 范曼:是有特殊意义,当需要覆盖的洞是圆形时,通常盖子也是圆的。用一个圆形的盖子盖一个圆形的洞,这是最简单的办法。 面试官:你能想到一个圆形的井盖比方形的井盖有哪些优点吗? 范曼:在回答这个问题之前,我们先看看盖子下面是什么。盖子下面的洞是圆的,因为圆柱形最能承受周围土地的压力。而且,下水道出孔要留出足够一个人通过的空间,而一个顺着梯子爬下去的人的横截面基本是圆的,所以圆形自然而然地成为下水道出入孔的形状。圆形的井盖只是为了覆盖圆形的洞口。 面试官:你认为存在安全方面的考虑吗?我的意思是,方形的井盖会不会掉进去,因此造成人身伤害? 范曼:不大可能。有时在一些方形洞口上也会看到方形的盖子。这种盖子比入口大,周围有横挡,通常这种盖子是金属质地,非常重。我们可以想象一下,两英尺宽的方形洞口,1到1.5英寸宽的横挡。为了让井盖掉进去,需要抬起一端,然后旋转30度,这样它就不受横挡的妨碍了,然后再将井盖与地平线成45度角,这时转移的重心才足以让井盖掉下去。是的,方形的井盖的确存在掉下去的可能,但可能性很小,只要对负责开井盖的人稍加培训,他就不会犯这样的错误。从工程学来看,井盖的形状完全取决于它要覆盖的洞口的形状。 面试官:(面有难色)我要与管理层谈点事情。(离开了房间) 10分钟后,面试官回来了。 面试官:我们推荐你立刻去推销部工作。 □建议 罗伯特?斯科布尔参加微软面试 时间是2003年8月13日上午10点23分 我所经历的面试过程是: 1.一名主管问我:你想过在这里工作吗? 2.人力资源部的人在电话里和我谈了一个小时。他们问了我一些问题,以确信我的经历与简历上描述的内容相符,同时也为了避免在之后时间较长的面试中出现令他们尴尬的事情。 3.我通过了人力资源部的电话约谈,于是他们用飞机把我送到了微软工地设在雷德蒙德的总部。 4.对我的面试从上午8点半开始。首先是和人力资源部的人谈,她向我解释了面试程序,以确保有必要让我进入下一轮面试。 5.她给我一个名单,上面是三个面试官的名字,他们将在午餐的时候面试我,她说得很准确,如果这三个人喜欢我,我会得到另外一个名单,也就是"午餐后"的面试名单。 如果你在吃午餐的时候就得走人,那么你就会知道自己把事情搞砸了(不过据内部的人讲,这样情况不多)。最后一条建议:要让自己一整天保持精力充沛。这很难。由于全天都在回答问题,到下午4点的时候,就很难进行有条理的思考了。不过许多决定都是基于"这个家伙是否对科技充满热情"这一点做出的。 ■选择题看人品 □范例1 请在ABCD中选择正确的答案 根据艾恩?兰德对道德利己主义的解释,我们不仅可能做有利于他人的事,重要的是我们只有在这种情况下才会这样做: A通过满足别人的利益,也满足了我们自己的利益 B我们出于同情心,而不总是为了利己而帮助他人 C我们的行为是没有私心的 D我们的生活与禁欲主义的目标吻合(即简单和克己) □范例2 在5分钟之内,对下列单项主题进行即兴论述 责任: "有时候负责意味着得罪别人。" --科林?鲍威尔将军 体谅和尊重 "信任别人,他们就会用真诚来回报你;善待他们,他们就会表现出自身的伟大品质。"--托马斯?肯皮斯 正直 "如果你讲的是真话,那你就不必劳神去记忆。"--马克?吐温 例1答案:A ■脑筋急转弯 □范例1 数学能力: 100美元哪里去了? 三个朋友住进了一家宾馆。结账时,账单总计3000美元。三个朋友每人分摊1000美元,并把这3000美元如数交给了服务员,委托他代到总台交账,但在交账时,正逢宾馆实施价格优惠,总台退还给服务员500美元,实收2500美元,服务员从这500美元退款中扣下了200美元,只退还三客人300美元,三客人平分了这300美元,每人取回了100美元,这样,三个客人每人实际支付900美元,共支付2700美元,加上服务员扣的200美元,共计2900美元,那么这100美元的差额到哪里去了? 答案:这题纯粹是文字游戏,但是如果你的头脑不够清晰,很可能把你搞糊涂了。客人实际支付2700美元,就等于总台实际结收的2500美元加上服务员克扣的200美元。在这2700美元加上200美元是毫无道理的,如果在这2700美元加退回的300美元,这是有道理的,因为这等于客人原先交给服务员的3000美元。 反应能力?谁是罪犯? 在某商厦珠宝盗窃案中,警方已查明作案人肯定是ABCD四人中的一人:在审讯中,他们的口供如下: A说:珠宝被盗那天,我在乡下,不可能进入商厦盗窃 B说:D是罪犯 C说:B才是罪犯分子,我曾经看见过他卖过珠宝 D说:B与我有仇,所以诬陷我 经核实,四人中只有一个人说的是实话,你能从中找出谁是罪犯吗? 答案:D说的是真话,A是罪犯。 □范例2 情商: 1什么书中毛病最多?(医书) 2什么东西说"父亲"时不会相碰?叫"爸爸"时却会碰到两次?(上嘴唇和下嘴唇) 3太平洋的中间是什么?

《Java工程师三大框架面试题》由编辑撰写而成,内容素材主要来源于网络,希望在您求职技巧过程中能帮到您!我们把大量的“工程师个人简历”内容汇集于专题再现给您,希望您喜欢!