面试笔试题
2023-08-11
导语:想要应聘软件工程师的朋友,小编在这里给大家整理的一些相关的面试题,预祝你们顺利通过面试。
软件工程师面试题1
1、你怎么制定一个项目的中期,近期计划,请举例说明(A B C)
2、立项前期都应该做哪些工作(C)
3、项目开发中都应当包含哪些阶段,请举例说明(C)(主要包括:立项、需求、概要、详细、编码自测、联调、验收、转产、产品维护)
4、你怎么应对项目开发过程中的需求经常性变更(C)
5、常见的软件开发模式有哪些,哪种适用于需求明确或很少变更的项目,请描述你使用过的项目开发模式(BC)
6、CMMI模型分几级,介绍各级应达到的标准(C)
7、你为了建设一个高绩效的项目团队,采用过哪些工具与方法(C)
8、请举例说明项目绩效考核方案的主要内容及考核方法(C)
9、举例说明应如何保证项目按时达到目标(C)
10、举例说明你在项目开发过程中通过什么办法规避员工流动的风险(C)
11、描述一下你做过的一件复杂的工作,你当时怎么整合执行这项工作?
12、工作中有哪一次你必须自动自发完成事情,结果如何?你做了哪些事情?
13、请介绍一下你的毕业研究课题(A)
14、请详细描述一下一个最能体现您能力的项目,此项目实现的主要功能和流程是什么?此项目用到了哪些技术?开发过程中的主要困难是什么?您在此项目开发过程中的角色是什么?完成了哪些功能的开发?收获是什么?(BC)
15、作为项目经理,你的主要职责是什么?你是如何完成你的计划的?当进度落后于计划时你是如何处理的\\\'?(C)
(二)沟通表达能力(基本素质)
1、请先简单介绍一下毕业以后的工作情况?(BC)
2、你喜欢什么样的工作环境?(ABC)
3、您在原来公司主要的工作职责是什么?(BC)
4、你如何评价原来的公司?如果是正向的,那你为什么离开这么好的一个平台?如果是反向的,那你作为公司的一份子,你应该承担什么样的责任?或你觉得问题究竟出在什么地方?(BC)
5、请简单介绍一下家庭的情况?你觉得你应该在家中承担什么样的责任?你现在承担什么责任?(ABC)
6、你在同事的眼中是什么样的人?(BC)
7、你如何评价你原来的团队?(BC)
8、几年的工作中,你遇到的最大的困惑是什么?如何解决的?现在回想一下,怎么评价当时的状态?(BC)
9、你对我们公司了解有多少?(ABC)
10、你最大的优点是什么?你最大的缺点是什么? (ABC)
11、您认为开发人员和测试人员在沟通过程中,如何提高沟通的效率和改善沟通的效果?(ABC)
12、维持与开发团队中其他成员良好的人际关系的关键是什么?(C)
13、您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)(ABC)
(三)抗压能力
1、个人对加班怎么看?(ABC)
2、你通常如何保证工作在规定时间内完成?(BC)
3、如果你在本次面试中没有被录用,你怎么打算?(ABC)
4、就你应聘的这个职位,你认为你还欠缺什么?(ABC)
5、如果我录用你,你将如何开展工作?(ABC)
6、你新到一个部门,一天一个客户找你解决问题,你努力想让他满意,可是客户始终对你的工作不满意,并投诉你们部门工作效率低,这个时候你如何处理?(ABC)
7、你和测试人员在沟通中发生过障碍吗?如何解决的?(ABC)
8、假设你的工作成绩比较突出,得到了领导的肯定,但同时发现同事越来越孤立你,你怎么看待此问题?你准备怎么办?(AB)
(四)主动学习能力
1、你最近是否参加了培训课程?谈谈培训课程的内容。是公司资助还是自费参加?(ABC)
2、个人觉得下一步发展的方向是什么?为此方向设定了什么目标,为此目标设定了什么样的学习计划?(ABC)
3、个人除了专业方面的知识,还有其他兴趣或爱好吗?(ABC)
4、如果在一个项目中,你遇到一个比较棘手的问题,通常怎样解决?(BC)
5、个人经常反思总结个人的生活和工作吗?请简单举例说明一下。(ABC)
6、请说说你对技术和行业发展趋势的看法?(C)
(五)稳定性
1、请谈谈你对跳槽的看法?(BC)
2、请说出你选择这份工作的动机?(ABC)
3、如果工作中难以和同事、上司相处,你会怎么办?(ABC)
4、你通常如何处理别人的批评?(ABC)
5、你如何对待自己的失败?(ABC)
6、什么会让你觉得有成就感?(ABC)
7、你对工作的期望和目标何在?(ABC)
软件工程师面试题2
1、试分析下面的SQL语句的优劣,并用另外的方法实现。
(1) Select * from empe where e.No in (select a. No from amp a )
Select * from empe e where NOT EXISTS (Select a.No from amp a where e.NO=a.No)
(2) select * from emp e, anp a where e. No=a. No
2、用Decoole 重写下面的socl 语句
SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
select count(*),sum(sal) from emp where dept_no = 0030 and ename like ‘smith%’;
select count(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
from emp where ename like ‘smith%’;
3、下面哪几种SQL不好。2,4,5
(1) 语句 (2)in语句 (3)子查询 (4)多查等值查询 (5)笛卡尔乘积
4、请造出下列哪3种命名正确 A,B,D
A、ASD B、$abc C、const D、_asd E、3_asd
5、texarea java (1)写出文件名 (2)补充代码
6、型转换
example:
public String getValue(Object a,Object b)
当下列方法调用时将出现何种异常,如何修正
String c=new String(“aaa”);
int d =123;
my.getValue(c,d);
(1) Integer d=new Integer(123);
(2) My.getValue(c,(String)d);
7、在JSP上显示Araylist中的元素
序号 姓名
8、解释
beam:远程接口的具体实现
Home:管理和创建远程对象
Romate:提供给用户的远程接口
9、解释Javabean与EJB的区别
10、SeSS’on bean与Entitybean区别
11、解释Commend、DAO模式,试举例说明。
Command定义
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作,将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,将这种直接关系拗断,同时两者之间都隔离,基本没有关系了.
显然这样做的好处是符合封装的特性,降低耦合度,Command是将对行为进行封装的典型模式,Factory是将创建进行封装的模式,
从Command模式,我也发现设计模式一个”通病”:好象喜欢将简单的问题复杂化,
喜欢在不同类中增加第三者,当然这样做有利于代码的健壮性 可维护性 还有复用性.
如何使用
具体的Command模式代码各式各样,因为如何封装命令,不同系统,有不同的做法.下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特性消失了,只有取出时,才有可能模糊的分辨出:
典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是”将命令/请求封装为对象”:
程序代码:
public interface Command public abstract void execute ( );
//具体不同命令/请求代码是实现接口Command,下面有三个具体命令
程序代码:
public class Engineer implements Command
public void execute( ) //do Engineer’s command
public class Programmer implements Command
public void execute( ) //do programmer’s command
public class Politician implements Command
public void execute( ) //do Politician’s command
按照通常做法,我们就可以直接调用这三个Command,但是使用Command模式,我们要将他们封装起来,扔到黑盒子List里去:
程序代码:
public class producer
public static List produceRequests()
List queue = new ArrayList();
queue.add( new DomesticEngineer() );
queue.add( new Politician() );
queue.add( new Programmer() );
return queue;
这三个命令进入List中后,已经失去了其外表特征,以后再取出,也可能无法分辨出谁是Engineer
谁是Programmer了,看下面如何调用Command模式:
程序代码:
public class TestCommand
public static void main(String[] args)
List queue = Producer.produceRequests();
for (Iterator it = queue.iterator(); it.hasNext(); )
//取出List中东东,其他特征都不能确定,只能保证一个特征是100%正确,// 他们至少是接口Command的”儿子”.所以强制转换类型为接口
Command((Command)it.next()).execute();