java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test {
' a( F2 ~8 Y J$ m! A" m U8 V12. public static void main(String [] args) { ! p& F6 Q2 v# S) E: b
13. int x =5; 5 S# z% D6 a g' S1 c) m
14. boolean b1 = true; ( v% r6 Y/ M3 y. b4 i
15. boolean b2 = false; 0 A: b2 u, ?/ Y
17.if((x==4) && !b2) " C3 j( [# O& W* |4 w
18. System.out.print(”l “); : i# L z2 t& N8 H; @
19. System.out.print(”2 “);
* M* N& W7 f3 }5 G20. if ((b2 = true) && b1)
! Z# a( \! f6 j1 C% T0 W21. System.out.print(”3 “); $ g5 d) v- s/ j5 t% V5 r
22. } 0 a s4 X! L7 [" W: s, ^ Y
23. }
: e. K' L+ }# Y: L) rWhat is the result? $ B( @# A" i0 Z- ?/ m
A. 2 1 o+ A) n: B( N S% j: W" N
B. 3 & G% E* a( L' K* F* p+ P
C. 1 2 y( T. C# {5 a: g2 _1 r) R
D. 2 3 8 ~ r$ G% g4 t( Y1 D# S
E. 1 2 3
, U! d5 X, Z) C1 N3 X3 AF. Compilation fails.
0 X" I9 J# B6 d" Y( z+ ~G. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money { 8 M/ F: [$ F n. U/ u
11. private String country, name; / P/ I2 F: A$ O* k
12. Public String getCountry() { return country; } - Q1 H3 @6 G3 g) ^# n `1 e$ W
13.} and: 24. class Yen extends Money {
5 \- U0 q e" a" f25. public String getCountry() { return super.country; }
+ a8 D' M9 R3 o1 X: D5 S26. } & a* y# n/ ^5 \3 C* [
27. 6 y. ~5 N7 d. S2 m% d+ V2 X% {. ]$ j
28. class Euro extends Money { 2 b F. |2 L6 [; I& {! g$ j, P
29. public String getCountry(String timeZone) {
* ~2 }7 ^4 z. C8 A* `; ~' D30. return super.getCountry(); 2 Y6 B5 j% c9 h5 u0 [
31. }
5 r5 K8 j& s" B/ S: a# s' I8 z/ Z32. } & I. q8 n R9 p
Which two are correct? (Choose two.) A. Yen returns correct values. - F1 s9 l' b* |' v1 Y ^
B. Euro returns correct values. 6 M# |: ^0 e# F* g9 f
C. An exception is thrown at runtime.
) G: l& H8 P4 @- _. ?& r1 |D. Yen and Euro both return correct values.
# i/ I i* x) o3 B) l# b2 U0 xE. Compilation fails because of an error at line 25.
& D2 n7 ~/ u3 ?/ e# ]F. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test; 3 Y5 |3 R+ F2 P' k: K
11. public class Geodetics {
( \$ w; h( ^) V4 j D; Q12. public static final double DIAMETER = 12756.32; // kilometers
0 w- @( Y" x- {$ e13. }
- e, _* }0 Z* X, K, d3 cWhich two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics;
/ T3 }! K# a2 x' q' k5 M: ~public class TerraCarta { 8 t/ y& L6 ~* W; Q
public double halfway() b8 a, V1 B" S0 W
{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics;
" o3 c6 y" r! G. vpublic class TerraCarta { 9 h5 O$ z2 |0 V9 g, ]- m
public double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta { , |6 L- ^3 {: f
public double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test;
) }, a6 ] b# R# x1 P2 H- Apublic class TerraCarta {
3 c$ R( m% C4 N6 O$ C8 D& i3 l1 upublic double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA {
1 l$ V& M3 n1 b# `* G5 _2. public void start() { System.out.println(”TestA”); }
* Q6 p0 w, j+ t: _: T( R3. } # A! @! z( H% g6 Z- l: l9 \9 ~
4. public class TestB extends TestA {
& m* g0 g4 S1 c/ ]4 |! d* F5. public void start() { System.out.println(”TestB”); }
* u6 n& B. M2 ]( u1 e% L0 P$ ^3 b6. public static void main(String[] args) {
1 ^( ?* a8 a# o2 d" {7. ((TestA)new TestB()).start();
+ j* ?9 I6 ?! w6 U# a& s9 E' ]/ l) k, n8. } 3 w7 ~; z& P) c6 [
9. }
2 r3 j) a, x& o% R5 QWhat is the result? A. TestA
( t* c+ l# y3 k( w- d4 L* KB. TestB 1 ]0 ^* }' ^: R. R( H/ Y) ~) ?0 f
C. Compilation fails. / Y* M- E9 b. O% J, I. ]
D. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) { 9 j- @4 r& {3 N- O$ Z4 G8 w
12. String str = “null’;
G" `6 U9 e) j, ^; s' r1 X13. if (str == null) { . c% I" P, f, P7 U
14. System.out.println(”null”);
; l: |: y% s) V: ^15. } else (str.length() == 0) {
( c i$ r" A' b4 u& C+ R: b16. System.out.println(”zero”); ; G; I. Z0 i: b7 Y: h
17. } else { 4 i6 z. J" ]% i
18. System.out.println(”some”);
1 r: M& ^% U# i2 [( c4 c [19. }
. ? ^8 v( Y$ l0 V' ?20. }
8 \1 E' L! m1 O% t7 @, J X‘What is the result? A. null
, R( X: [+ e+ P+ XB. zero
* D- {" q N' q+ wC. some / X4 \# f6 M9 b% L/ ~
D. Compilation fails.
0 D0 G/ E+ a! @1 f- E( ]+ }0 L6 E+ }E. An exception is thrown at runtime. Question 6 Given: 33. try { ( J' @6 w0 s/ J! \7 X7 ~5 l
34. // some code here
/ r/ S7 ~* i+ g, O% |5 E, |35. } catch (NullPointerException e1) { ! c# f2 t8 v( D* ?0 Q; @5 _) @. Y6 Z
36. System.out.print(”a”);
( y( z- Z; O3 Y, n) d: ~4 a9 U( L37. } catch (RuntimeException e2) { # g! b) q, T6 v; `4 F
38. System.out.print(”b”);
+ c3 e# C" k \39. } finally { / g) E9 `* u8 Z9 @
40. System.out.print(”c”); 7 b4 Y9 M5 m `5 `7 u6 O
41. }
p" v' n4 j/ B- O, q: @2 K* m; sWhat is the result if a NullPointerException occurs on line 34?
U' J% W% b* S; ]7 G } o! AA. c ) N* h' M/ T" S: T& I; r
B. a
8 ?) N [8 _; t* ~7 MC. ab
1 Z1 u4 p# T/ L0 MD. ac * A% |# q1 p# _- m$ y+ ?9 z$ U0 ]
E. bc 0 M& x$ s* |. d8 T/ P
F. abc Question 7 Given: 1. public class TestString 1 { 8 j/ O0 Q/ R c& v4 p" Z8 e- Y: s
2. public static void main(String[] args) {
: P) O4 r, y1 [. z" w5 K7 ^1 j, y- S6 ^3. String str = “420”;
5 ]- a3 E8 g& G/ z9 A& l$ E4. str += 42; 2 r7 c# y3 O% g/ s: S: K
5. System.out.print(str); ! ?; Q/ S, b3 W- d, S) {
6. } % k7 u* R! c, ?: V
7. } 3 _4 V+ M: I- j: m$ s0 s
What is the output? A. 42
" d% M& \/ S2 @# VB. 420 - K6 d4 G7 x: {4 s7 ?
C. 462 + e' w5 X* g( u) l" H- ?
D. 42042 2 V# P! s/ Q/ I: ?2 o
E. Compilation fails. D, V5 O! D& ]
F. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() { 1 R ~4 d# v- G$ m5 m
22. StringBuffer buffer = new StringBuffer(); " `0 _; m+ x; u: ?) H
23. buffer.append(’<’); 8 n/ f: g. b* e% Y
24. buffer.append(this.name); 1 h; ?# P7 w% P- ?. M% R2 ~
25. buffer.append(’>’); , [1 o: [1 m6 B! H' f
26. return buffer.toString();
/ e2 r% Q _3 B27. }
" k8 Q1 w) s& p7 JWhich is true? A. This code is NOT thread-safe. % E! |& h: v. O% B
B. The programmer can replace StringBuffer with StringBuilder with no
9 f7 \- S9 j) Vother changes. 9 S. S& O& a1 k! g4 k
C. This code will perform well and converting the code to use
; u# ?; S8 g; n/ z! R/ w1 A4 JStringBuilder will not enhance the performance.
$ g# E4 n, V3 ?( ]' u; _D. This code will perform poorly. For better performance, the code 2 }* y4 N8 w" F/ O. I6 d
should be rewritten: return “<“+ this.name + “>”; Question 9 哪个语句不会建立隐式事务? A.INSERT B.UPDATE C.DELETE D.SELECT FOR UPDATE E.以上语句都会建立隐式事务 Question 10 EMP表不是分区表和索引化表,执行以下语句,哪两个说法是正确的? ALTER TABLE emp DROP COLUMN first_name; * w0 F: H+ F" F R
3 g# Y1 D3 ^. I# |A. FIRST_NAME列将被删除,如果该列不包含数据;
[ g: f: W7 Z- V# t& i7 ~3 C5 pB. FIRST_NAME列将被删除,如果它不是表中仅有的列; C. 如果以上SQL语句加上SET UNUSED子句,FIRST_NAME列可以被回滚; D. 如果以上SQL语句加上CASCADE子句,FIRST_NAME列可以被删除,即使它是主码列。 Question 11 关于子查询以下哪两种说法是正确的? A. 外层查询返回结果之后,执行内层查询 B. 先执行子查询,再执行外层查询 C. 对于子查询返回的结果,外层查询只执行一次 D. 外层查询返回的每行结果都与内层查询结果进行比较 Question 12 你需要把NEW_CUST表中的新客户信息导入CUST和CUST_SPECIAL表,如果客户 信誉度大于10000,需要导入CUST_SPECIAL表,所有新客户信息都要导入CUST表,使用哪种技术可以尽快完成导入? A.外部表 B. MERGE 命令 C.INSERT多表插入命令 D.带有 WITH CHECK OPTION子句的INSERT命令 Question 13 分数表scores设计如下: courseID(课程编号) studentID(学生编号) score(分数) 另有一个学生信息表student,包含studentID,sname(学生姓名)。 已知并非所有学生都参加了courseID为0001的考试,现在查询所有参加0001号课程考试及格学生的学生姓名,下面正确的是()。A A. select sname from student where studentID in (select studentID from scores where courseID = 0001 and score>=60) B. select sname from student where studentID = (select studentID from scores where courseID = 0001 and score>=60) C. select sname from student where studentID not in (select studentID from scores where courseID = 0001 and score<=60) D. select sname from student where studentID exists (select studentID from scores where courseID = 0001 and score>=60) Question 14 要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 Question 15 “不要和陌生人说话” 是( )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对象尽可能少的了解 Question 16 对象适配器模式是( )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 二、简答题(每题5分) 1、AOP和IOC的概念以及在spring中是如何应用的。 2、简单描述hibernate持久化对象三种状态转换关系。 3、spring的事务有几种方式?并描述spring事务的隔离级别和传播行为。 4、简要阐述struts2的执行流程。 三、设计题 某时装邮购提供商拟开发订单处理系统,用于处理客户通过电话、传真、邮件或Web 站点所下订单。其主要功能如下: (1)增加客户记录。将新客户信息添加到客户文件,并分配一个客户号以备后续使用。 (2)查询商品信息。接收客户提交商品信息请求,从商品文件中查询商品的价格和可订购数量等商品信息,返回给客户。 (3)增加订单记录。根据客户的订购请求及该客户记录的相关信息,产生订单并添加到订单文件中。 (4)产生配货单。根据订单记录产生配货单,并将配货单发送给仓库进行备货;备好货后,发送备货就绪通知。如果现货不足,则需向供应商订货。 (5)准备发货单。从订单文件中获取订单记录,从客户文件中获取客户记录,并产生发货单。 (6)发货。当收到仓库发送的备货就绪通知后,根据发货单给客户发货;产生装运单并发送给客户。 (7)创建客户账单。根据订单文件中的订单记录和客户文件中的客户记录,产生并发送客户账单,同时更新商品文件中的商品数量和订单文件中的订单状态。 (8)产生应收账户。根据客户记录和订单文件中的订单信息,产生并发送给财务部门应收账户报表。 现采用结构化方法对订单处理系统进行分析与设计,完成以下两问题: 【问题 1】画出业务数据流程图 【问题 2】分析数据模型,画出相关ER图
2 T5 ~/ M1 t1 B/ P- d4 z |