文档库

最新最全的文档下载
当前位置:文档库 > 客户化开发部招聘试题-Java开发类

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

客户化开发部招聘试题——JA V A开发类

说明:本套试题共分为五个部分,题型为选择题(单选和多选)和问答题,满分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(t))

(D) (s.equals(9))

(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)BorderLayout和GridLayout

(B)CardLayout和FlowLayout

(C)GridLayout和BorderLayout

(D)GridBagLayout和FlowLayout

(E)FlowLayout 和 BorderLayout

二、问答题(3题共12分)

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.executeUpdate();

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 Producer extends Thread {

private CubbyHole cubbyhole;

private int number;

public Producer(CubbyHole c, int number) {

cubbyhole = c;

this.number = number;

}

public void run() {

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

cubbyhole.put(i);

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

try {

sleep((int)(Math.random() * 100));

} catch (InterruptedException e) {

}

}

}

}

The Consumer, being ravenous, consumes all integers from the CubbyHole (the exact same

object into which the Producer put the integers in the first place) as quickly as they become

available.

class Consumer extends Thread {

private CubbyHole cubbyhole;

private int number;

public Consumer(CubbyHole c, int number) {

cubbyhole = c;

this.number = number;

}

public void run() {

int value = 0;

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

value = cubbyhole.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 the Producer nor the Consumer make any effort whatsoever to 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 ProducerConsumerTest {

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; // this is the condition variable.

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)用EJBHome的Create方法

(D)用EJBHome的find方法

3、请列出EJB分类:

(A)Session Bean和Entity Bean

(B)Stateless Session Bean和Stateful Session Bean

(C)BMP和CMP

(D)Session Bean、Entity Bean和MessageDriver 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)SOAP 和 REST 都是与远程服务进行通信所使用的与平台无关的协议

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

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

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

1、请简述一下eclipse和NetBeans集成开发环境本身的图形界面所采用的技术?(3分)

2、有如下单元测试类:

import junit.framework.*;

public class TestSimpleBean2 extends junit.framework.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 suite;

}

}

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

第四部分软件工程

一、选择题(包含单选和多选)(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有4种类型,其中Type2的性能最高,而且不用安装数据库客户端3、有以下两个表X和Y

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

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

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

(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 int NOT NULL ,

title varchar (80) NOT NULL ,

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_User1.FID和T_User2.FID都被定义为主键时这个Sql才会执行成功(D)如果子查询中基于T_User1.FID字段没有返回重复的行时这个Sql将执行成功

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

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

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

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

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

7、关于锁locks,描述正确的是

(A)当一个事务在表上放置了共享锁(shared lock ),其他事务能阅读表里的数据(B)当一个事务在表上放置了共享锁(shared lock ),其他事务能更新表里的数据(C)当一个事务在表上放置了排他锁(exclusive lock),其他事务能更新表里的数据

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

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

1、对于以下的表设计,你能指出那些不合理的地方(3分)

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

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