金蝶软件2008招聘软件工程师面试题

金蝶软件2008招聘

(王滨宇、周均:制作)

客户化开发部招聘试题----JAVA开发类

说明:本套试题共分为五个部分,题型为选择题(单选和多选)和问答题,满分100分,考试时间为1.5小时.

第一部分 Java基础

一.选择题(包含单选和多选)(10题共20)

1.下面哪种方式发现bug的成本最高?

(A).写完代码后,代码人员自查代码

(B).集成测试时.

(C).编写单元测试时发现

(D).小组范围内代码评审

2.下面isEmptyString函数写法正确的是?

(A).public boolean isEmptyString(String str){

return str.length = = 0 || str = = null;

}

(B). public boolean isEmptyString(String str){

return str = = null || str.length = = 0;

}

(C). public boolean isEmptyString(String str){

return str = = “” || str.length = = 0;

}

(D). public boolean isEmptyString(String str){

return str.equals(“”) || str.length = = 0;

}

3.下列哪个类不是Collection的子类:

(A).List

(B).Set

(C).Map

(D).Vector

4.基于下列声明:

Integer s = new Integer(9);

Integer t = new Integer(9);

Long u = new Long(9);

表达式结果为true的是?

(A).(s= = t) (B).(s.equals(u)) (C). (s.equals(u))

(D). (s.equals(u)) (E). (s.equals(new Integer(9)))

5.运行该类后,哪个是控制台的输出结果?

public class Test

{

static String a = “String”;

public static void main(String[] args){

String b = “Strin”+”g”;

System.out.println(“is equal:”+(a = = b));

}

}

(A).true (B).false

(C).is equal:true

(D). is equal:false

6.对于以下代码片段,有代号的代码执行顺序是?

class SuperTest

{

private String name = “Default Name”; //1

public SuperTest(){

System.out.println(“SuperTest Construct”);//2

}

}

class Test extends SuperTest

{

private static String const1 = “CONST”;//3

public Test(){

System.out.println(“Test Construct”); //4

}

public static void main(String[] args){

new Test(); //5

}

}

(A).3,5,1,2,4

(B).5,3,4,1,2

(C).3,5,2,4,1

(D).5,3,4,2,1

7.下列方法的返回结果是什么?

public int f(){

int i = 0;

try{

++i;

}

finally{

++i;

}

return ++i;

}

(A).3 (B).2 (C).1 (D).0

8.如果使用了for(;;);

(A).发生编译错误

(B).根本不进入循环

(C).这是一个无限循环

(D).发生运行错误

9.下列哪一项是MouseMotionListener接口中的方法?

(A).public void mouseMoved(MouseEvent)

(B). public boolean mouseMoved(MouseEvent)

(C). public void mouseMoved(MouseMotionEvent)

(D). public boolean MouseMoved(MouseMotionEvent)

(E). public boolean mouseMoved(MouseMotionEvent)

10.Panel container Frame container 来说,它们的缺省布局管理器分别是:

(A). BorderLayoutGridLayout

(B). CardLayoutFlowLayout

(C). GridLayoutBorderLayout

(D). GridBagLayoutFlowLayout

(E). FlowLayoutBorderLayout

.问答题(312)

1.下列方法有哪些错误或隐患?(提示:至少2)(3)

public void updateData(){

String sql = “update t_a set fok = 1 where fid = ?”

Connection conn = getConnection();

PreparedStatement ps = conn.prepareStatement(sql);

ps.setString(0,“001”);

ps.close();

conn.close();

}

2.进程与线程的区别和关系?(4)

3.编程题(5)

程序

The Producer generates an integer between 0 and 9 (inclusive),stores it in a “CubbyHole”

object, and prints the generated number.

class Prodecer extends Thread{

private CubbyHole cubbhole;

private int number;

public Prodecer(CubbyHole c, int number){

cubbhole = c;

this.number = number;

}

public void run(){

for(int i=0;i<10;i++){

cubbhole.put(i);

System.out.println(“Producer#”+this.number+”put:”+i);

try{

}catch(InterruptedException e){

}

}

}

The Consumer,being ravenous,consumers all intergers from the CubbyHole(the exact same object into which the Producer put the integers in the first place ) as quickly as the become available.

class Consumer extends Thread{

private CubbyHole cubbhole;

private int number;

public Consumer(CubbyHole c, int number){

cubbhole = c;

this.number = number;

}

public void run(){

int value = 0;

for(int i=0;i<10;i++){

value = cubbhole.get();

System.out.println(“Consumer #”+this.number+”got:”+value);

}

}

}

The Producer and Consumer in this example share data through a common CubbyHole object. And you will note that neither ahte Producer nor the Consumer make any effort whatsoever ato ensure that the Consumer is getting each value produced once and only once. The synchronization between these two threads actually occurs at a lower

level,within the get() and put() methods of the CubbyHole object.

The Main Program

class ProducerConsumerTestP{

public static void main(String[] args){

CubbyHole c = new CubbyHole();

Producer p1 = new Producer(c,1);

Consumer c1=new Consumer(c,1);

p1.start();

c1.start();

}

}

请补充CubbyHole的代码

class CubbyHole{

private int contents;

private boolean available = false;

public synchronized int get(){

while(available = = false){

try{

____(1)______;

}catch(InterruptedException e){

}

}

available=____(2)______;

__________;

return contents;

}

public synchronized void put(int value){

while(available = = true){

try{

____(3)______;

}catch(InterruptedException e){

}

}

Contents = value;

available=____(4)______;

____(5)______;

}

}

第二部分 J2EE应用开发

一.选择题(包含单选和多选)(6题共12)

1.创建一个实体EJB需要包含下列那些部件?

(A).Home Interface.Remote Interface和一个实现EntityBean接口的类

(B).Home Interface.Remote Interface和一个继承EntityBean的类

(C).Remote Interface和一个实现EntityBean接口的类

(D).Remote Interface和一个继承EntityBean的类

2.调用下面那些方法可以使一个处于池态(Pool State)Entity Bean转化为就绪状态(Ready State)

(A).当这个Bean被容器调激活(Activity)

(B).当这个Bean被容器调钝化(Passivate)

(C).EJBHomeCreate方法

(D).EJBHomefind方法

3.请列出EJB分类

(A).Session BeanEntity Bean

(B).Stateless Session Bean Stateful Session Bean

(C).BMPCMP

(D). Session Bean,Entity BeanMessageDriver Bean

4.MDB(Message Driver Bean)可以作为JMS中消息的

(A).发送者

(B).接收者

(C).发送者和接受者都可以

(D).发送者和接受者都不可以

5.关于Entity Bean 主键类说法正确的是:

(A).只有CMP才有主键

(B).主键类必须是java标准类库中的类

(C).主键类必须序列化(serialize)

(D).主键类需要重载hashcode()equals()方法

6.请从下列产品中选出属于J2EE应用服务器范畴的产品:

(A).Weblogic

(B).Rational Rose

(C).Tivoli

(D).WebSpere

(E).Jboss

(F).Apusic

.问答题(3题共8)

1.简述MVC概念及实现技术(3)

2.JMS支持那种消息处理类型,你能描述一下这两种方式吗?(2)

3.是否可以从服务器调用EJB返回一个ResultSet或者RowSet,为什么?(3)

第三部分 Java工具

一.选择题(包含单选和多选)(4题共8)

1.下面列出的有哪几项是Java IDE?

(A).Jbuilder

(B).NetBeans

(C).Juint

(D).Jdom

(E).Eclipse

2.以下哪些是Java代码调优工具

(A).Devpartner for Java

(B).Jprobe Suite

(C).JProfiler

(D).Borland Optimizeit Suite

3.下面哪些项是CVS的特点

(A).服务器端的文件必须完全共享

(B).版本分享

(C).合并(merging)

(D).可以同时多个人check out 一个文件

4.下面哪些说法是正确的

(A).WebService技术基于SOAP协议,SOAP就是Simple Object Access Protocol的简介

(B).SOAPREST都是与远程服务进行通信所使用的与平台无关的协议

(C).SAX方式解析XML数据,DOM方式相比,读出的数据没有像DOM一样的有内建的逻辑关系,所以SAX无法支持多次查找同一数据

(D).SAX方式解析XML数据,DOM方式相比,对大数据的XML的处理的速度优势非常的明显

二.问答题(2题共6)

1.请简述一下eclipseNetBeans集成开发环境本身的图形界面所采用的技术?

2.有如下单元测试类:

Import junit.frameword.*;

public class TestSimpleBean2 extends junit.frameword.TestCase{

public TestSimpleBean2(String name){

super(name);

}

protected void setUp() throws Exception{

super.setUp();

System.out.println(“setUp”);

}

protected void tearDown() throws Exception{

super. tearDown ();

System.out.println(“tearDown”);

}

public void testMethod(){

System.out.println(“testMethod”);

}

Public void foo(){

System.out.println(“foo”);

}

public static Test suite(){

TestSuite suite = new TestSuite();

suite.addTest(new TestSimpleBean2(“foo”));

return suites;

}

}

请回答当用TestRunnder 执行该单元测试类时,输出结果是什么?

第四部分 团建工程

一.选择题(包含单选和多选)(4题共8分)

1.以下那个属于详细设计阶段的职责

A.分析项目的成本跟收益

B.为每个模块确定采用的算法

C.编写代码

D确定模块的结构,划分模块功能

2.耦合关系从强到弱的顺序依次为

A.组合,泛化,依赖,聚合

B.泛化,组合,聚合,依赖

C.依赖,泛化,组合,聚合,

D组合,聚合,泛化,继承

3.下面几种建模工具中,那个工具常被使用来进行数据建模

A.Rose

B.Together

C.PowerDesigner

D.ERWin

4.原型化方法是用户喝设计者之间执行的一种交互构成,尤其适用于

A.需求不确定姓高的系统

B.需求确定的系统

C.管理系统

D.定时系统

二.问答题(2题共6)

1.请简要说明封装,多态,继承的基本概念与特点(3分)

2.为什么软件需要维护?简述软件维护的过程(3分)

第五部分 数据库

一选择题(包含单选和多选)(7题共14分)

1.以下哪些属于约束

A.主键

B.外键

C.索引

D.唯一索引

E.NOT NULL

F.CHECK

2.以下那些说法是正确的

A.在出发其中作出的修改能够随着事物一起被回滚

B.简历所以能够增加INSERT语句的速度

C.每个表都可以创建多个聚合索引

D.JDBC有四种类型,其中Type2的性能最高,而且不用安装数据库客户端

3.有以下俩个表XY

X(F1,F2为字段名)

F1

F2

A

A

B

B

Y(F1,F4为字段名)

F1

F2

A

A

B

B

C

C

要求写一条SQL语句返回结果如下,正确的是

F1

F2

F3

A

A

A

A.SELECT X.F1,X.F2,Y.F4 FROM X INNER JOIN Y ON X.F1=Y.F1

B.SELECT X.F1,X.F2,Y.F4 FROM X LEFT OUTER JOIN Y ON X.F1 = Y.F1

C.SELECT X.F1,X.F2,Y.F4 FROM X ,Y WHERE X.F1=Y.F1

D.SELECT X.F1,X.F2,Y.F4 FROM X RIGHT OUTER JOIN Y ON X.F1=Y.F1

4.一张表的结构描述如下

CREATE TABLE titles

(

title_id NOT NULL,

title varchar(80) NOT NOLL,

type char(12) NOT NULL,

pub_id char(4),

price int,

advance int,

royalty int,

ytd_sales int,

notes varchar(200),

pubdate datetime NOT NULL

)

执行下面的语句,那些语句会报错

A.SELECT type ,AVG(price) FROM titles

WHERE advance>5000

GROUP BY type

Having pub_id = 1389

B.SELECT type ,AVG(price) FROM titles

WHERE advance>5000

GROUP BY type

Having price>0

C.SELECT type ,AVG(price) FROM titles

WHERE advance>5000

GROUP BY type

Having AVG(price)>10

D.SELECT type , pub_id,AVG(price) FROM titles

WHERE advance>5000

GROUP BY type

Having pub_id = 1389

5.看如下的更新Sql:

UPDATE t_User2 SET FName = (SELECT FName FROM T_User1 Where T_User2.FID = T_User1.FID) WHERE FName Is NULL

执行结果描述正确的是那个

A.这个Sql会执行

B.这个Sql将执行失败,因为更新的Sql不能有子查询

C.只有当T_User.FIDT_User2.FID都被定义为主键时这个Sql才会执行成功

D.如果子查询中基于T_User.FID字段没有返回重复的行时这个Sql将执行成功

6.关于union运算符的描述正确的是:

A.union能够联合多个结果集并组织成单个结果集

B.union联合的所有集合的列数必须相同

C.union联合的所有集合的列的顺序可以不同

D.union联合的所有集合对应列的数据类型必须兼容

7.关于琐locks,描述正确的是

A.当一个事物在表上放置了共享锁(shared lock),其他事物阅读表里的数据

B.当一个事物在表上放置了共享锁(shared lock),其他事物能更新表里的数据

C.当一个事物在表上放置了排他琐(exclusives lock),其他事物能更新表里的数据

D.当一个事务在表上放置了排他琐(exclusives lock),其他事物能阅读表里的数据

二.问答题(2题共6分)

1.对以下的表设计。你能指出那些不符合的地方(3分)

字段名

类型

字段说明

F1

INT

记录内码

F2

VARCHAR(10)

员工名称

F3

DATETIME

发资日期

F4

FLOAT

发资金额

F5

INT

是否已发放(1=已发放 0=未发放)

2.对于第一题的表。假设使用一段时间后,表中的记录已经达到了上万条,导致系统查询变慢,请问你可以采取哪些措施喝步骤来诊断喝提高系统性能。(3分)

80后为什么找不到工作?


80后的定义应该是:22至27岁之间、受过高等教育、刚刚毕业走向社会或者拥有几年工作经验年轻一代。不可否认,80后已成为职场上迅速成长的中竖力量,尤其是在国内的研发领域。每个时代都有自己的特点,如果用几个比较典型的正面词句形容他们应该是:聪明、有主见、有能力。

那身为80后的技术人员找工作为什么还这么难呢?

因为,还可以用几个比较典型的负面词句形容他们:缺乏责任感、定位不清、困难而退。

从参加面试看责任感

就拿面试这件事来说吧,流程多是:电话简单沟通,约时间à初试(开发人员多是笔试)à复试à确认薪水、上班时间à入职。

十一长假之前的一周,某公司约候选人参加研发笔试、面试。在约面试的电话里,公司特别强调如果您本周不方便(很多候选人会回老家),我们可以把笔试(面试)安排在十一之后进行。有12人在电话里说可以到公司参加笔试,令人失望的是,笔试当天只来了3位,其余8人在未做任何说明的情况下没有出现。

因为开发人员是所有应聘者中素质最高的群体,公司前台打电话向每个未到的候选了解原因,看看是在电话里没说清地址,还是别的什么原因,导致了大家的缺席。最终的反馈是:2人电话不接、2人电话关机、4人临时有事。

……

每次与公司技术负责人或者HR沟通,80后的职业素质都会成为核心话题之一。而缺乏责任感又是最经常被提到的。候选人认为面试不来,对自己只不过是少个求职机会而已,公司则认为这件事足以体现候选人对工作没有责任心。有这种品质在身,很难让我们在事业上有什么建树。

所谓一花一世界,求职过程中任何点上体现出缺乏责任感都会被马上淘汰。公司的逻辑是:如果不负责任的人进了公司,那么造成的损害绝不止耽误时间这么简单,很可能是项目的延误甚至是失败。

不可否认,现在就业压力大,大部分人都对求职抱的态度都是普遍撤网重点培养。得到面试通知后,发现公司离家太远或者刚好被另一家录用的事儿时有发生。“中国这么大,接到面试不去的又不是我一个,没什么大不了。”也是很多人的正常想法。
我们回头看看这种行为给同龄人带来的伤害吧——由于相当部分80后技术人员在面试给人留下没有责任感的印象,很多公司规定关键岗位不用25岁以下人士。更有甚者,因为几个人的原因,某学校的毕业生在公司都成为不约见面试的对象。也许我们已找到工作,安然自得,但同龄人呢?校友呢?是否有必要更多考虑一下。

其实,比默默消失更恰当的处理方式有很多,这不但能体现自身素质、节省双方时间,还能为自己赢得机会。比如:
ü 可以在电话里直接说因为路远、已有工作机会希望下次合作,即礼貌回绝(这样节省双方时间);
ü 也可告诉HR时间不方便,能否另外安排时间(相信任何智力正常的公司HR相信都会另行安排沟通时间);
ü 如果能在得知是哪家公司通知我们面试之后,能说出公司的情况,必然能在面试之前为我们自己加分。只需要事先做小小功课,上网看一下公司介绍即可。(体现我们的高素质)。
如此,即会竖立80后的风采,也会被冠以XX学校毕业生素质高的赞誉,何乐而不为!
Posted by Picasa

爱的宣言

1、You are the most beautiful girl that I have ever seen.
2、Nothing is more important than to love you.
3、I cannot emphasize the importance of loving you too much. 4、It is universally acknowledged that you are indispensable to me.
5、There is no doubt that I love you.
6、It is conceivable that you plays an important role in my life. 7、In time I came to love you.
8、You are kindly which is the reason why Iove you.
9、Loving you is closely related to my life.
10、I should get into the habit of taking care of you.
11、Thanks to your encouragement, I finally realized my dream.
12、What an important thing it is to keep my promise!
13、Loving does good to our mind healthy.
14、We should do our utmost to achieve our goal which is about our love.
15、I should bring home to you the value of yourself for me.
16、I should spare no effort to love you.
Posted by Picasa

王滨宇,走多少梦!

那些花儿是否还依然可爱!
Posted by Picasa

来自黄松的存储过程分页

alter proc fenye( @tblname varchar(255), --要分页的表名 @strGetFields varchar(1000), --需要返回的列 @fldName varchar(255), --要排序的字段名 @PageSize varchar(255), --页尺寸 @PageIndex int , --页码 @doCount bit, --返回记录总数,非0则返回 @OrderType bit, --返回排序类型,非0则降序 @strWhere varchar(1500) --设置查询条件,不要加 WHERE ) AS DECLARE @strSQL varchar(5000) --主语句 DECLARE @strTmp varchar(110) --临时变量 DECLARE @strOrder varchar(400) --排序类型
if @doCount !=0 BEGIN if @strWhere !='' set @strSQL ='SELECT COUNT(*) AS Total FROM ['+@tblName +'] WHERE '+@strWhere else set @strSQL ='SELECT COUNT(*) AS Total FROM ['+@tblName+']' END--以上代码的意思是如果传过来的不是0的话就进行总数统计-------------------------以下代码是@doCount 为0的情况(不进行数据统计): else BEGIN IF @OrderType !=0 begin set @strTmp='<(SELECT MIN' set @strOrder=' ORDER BY ['+@fldName+'] desc' end ELSE begin set @strTmp='>(SELECT MAX' set @strOrder =' ORDER BY ['+@fldName+'] asc' end --如果@OrderType 不是0就执行降序 **************** IF @PageIndex=1 begin if @strWhere !='' set @strSQL='SELECT TOP '+str(@PageSize)+' '+@strGetFields+'FROM ['+@tblName +'] WHERE '+@strWhere+' '+@strOrder else set @strSQL='SELECT TOP '+str(@PageSize)+' '+@strGetFields+'FROM ['+@tblName +']'+@strOrder end ----如果是第一页就执行以上代码,以便加快执行速度 else begin --以下代码赋予@strSQL真正执行的SQL代码 set @strSQL='SELECT TOP '+ str(@PageSize)+ @strGetFields+' FROM [' +@tblName +'] WHERE ['+@fldName +']'+@strTmp +'(['+@fldName+']) FROM (SELECT TOP '+str((@PageIndex-1)*@PageSize) +' ['+@fldName+'] FROM ['+@tblName +']'+@strOrder+') as tblTmp)'+@strOrder if @strWhere!='' set @strSQL='SELECT TOP '+str(@PageSize)+@strGetFields+' FROM ['+@tblName+'] WHERE ['+@fldName +']'+@strTmp +'([' +@fldName+']) FROM (SELECT TOP '+str((@PageIndex-1)*@PageSize)+' [' +@fldName+'] FROM ['+@tblName +'] WHERE '+@strWhere +' ' +@strOrder +') AS tblTmp) AND '+@strWhere +' '+@strOrder
end END
execute(@strSQL)
Posted by Picasa

喝水不忘挖井人

有两个和尚分别住在相邻的两座山上的庙里。两山之间有一条溪,两个和尚每天都会在同一时间下山去溪边挑水。久而久之,他们便成为好朋友了。

   弹指一挥间,不知不觉,时间在每天挑水中,一晃就是五个春秋。

   忽然有一天,左边这座山的和尚没有下山挑水,右边那座山的和尚心想:“他大概睡过头了。”便不以为意。哪知第二天,左边这座山的和尚,还是没有下山挑水, 第三天也一样,过了一个星期,还是一样。直到过了一个月,右边那座山的和尚,终于按耐不住了。他心想:“我的朋友可能生病了,我要过去探望他,看看能帮上 什么忙。”于是他便爬上了左边这座山去探望他的老朋友。

   等他到达左边这座山的庙看到他的老友之后,大吃一惊。因为他的老友正在庙前打太极拳,一点也不像一个月没喝水的人。他好奇地问:“你已经一个月没有下山挑 水了,难道你可以不用喝水吗?”左边这座山的和尚说:“来来来,我带你去看看。”于是,他带着右边那座山的和尚走到庙的后院,指着一口井说:“这五年来, 我每天做完功课后,都会抽空挖这口井。虽然我们现在年轻力壮,尚能自己挑水喝,倘若有一天我们都年迈走不动时,我们还能指望别人给我们挑水喝吗?所以,即 使我有时很忙,但也没有间断过我的挖井计划,能挖多少算多少。如今,终于让我挖出井,我就不必再下山挑水,我可以有更多的时间,来练习我喜欢的太极拳了。 ”

   我们在工作领域上,工作挣薪水就像是挑水;而我们常常会忘记把握下班后的时间,挖一口属于自己的井,培养自己另一方面的实力,给自己多铺一条路。这样在未来当我们年纪大了,即使体力拼不过年轻人时,我们依然还会有水喝,而且还能喝得很悠闲,且源源不断。

   多种一块田,就是为自己多留一条路。
   您在每天朝九晚五时,是否也要为自己“挖一口井”呢?