java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test { 1 r# a* c0 g1 X4 H# R. o4 T
12. public static void main(String [] args) {
7 Y! p/ l7 d) Y% m& |13. int x =5; 1 s/ q5 f+ r. Q5 |7 W" u) t
14. boolean b1 = true; " r9 d4 v2 M6 P9 m! C
15. boolean b2 = false;
( V/ b. I. j9 |. Y7 g17.if((x==4) && !b2)
, y6 F5 s) U4 q& f0 t- l18. System.out.print(”l “);
9 A& U7 S* j; L* ~# `% K% K b2 y$ O19. System.out.print(”2 “); . |2 o( w' g( p+ _
20. if ((b2 = true) && b1)
% U6 a n6 o5 J% q; V21. System.out.print(”3 “);
! L9 H4 \2 O3 B: l+ t& F8 S- E22. }
; l- n4 s$ n3 i6 M9 V5 v P2 Z8 J23. }
1 m% A$ {, k$ {0 UWhat is the result? , C& ~6 Z" |! B* I$ ^
A. 2
' K9 ] x8 W4 K D2 BB. 3 " `; I) b3 [8 F9 K& r
C. 1 2
G7 G: U7 j U3 @/ P" mD. 2 3 : L; w# w9 Z% R1 C
E. 1 2 3
; N5 y% b# Q) T/ N( L: W+ {1 LF. Compilation fails.
# R, d6 @9 C0 C. X: IG. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money {
7 g3 f( A4 _0 n+ Q2 P1 E. ]11. private String country, name;
) X: R/ Z) y: m12. Public String getCountry() { return country; } ; H# I2 {+ B& d+ P Y9 y, k5 i
13.} and: 24. class Yen extends Money {
+ O* S. i% \, V, J6 j$ a6 V* _25. public String getCountry() { return super.country; } 5 X9 R; G- b3 R/ k
26. }
/ X+ B2 ]+ L+ H3 o27. ; j; U# E- {% ~
28. class Euro extends Money { 7 q0 j% b3 }# |7 U& [+ j- B
29. public String getCountry(String timeZone) {
" \5 a! I% q, C' x& _% k30. return super.getCountry(); ( P- M7 ^/ X5 Q2 ]7 @1 Y
31. } 1 ]3 s4 ~" B! g6 g+ c7 F2 |
32. } / N' h7 t7 E, ]
Which two are correct? (Choose two.) A. Yen returns correct values.
5 X& B& l3 b \+ ^B. Euro returns correct values.
1 r' z9 J w( SC. An exception is thrown at runtime.
, @) h$ y/ r0 z3 } z/ K* x( @" @% sD. Yen and Euro both return correct values.
8 x( k$ i0 d* y) f! ~$ b7 z% j* `E. Compilation fails because of an error at line 25. ! J% }7 Q, c* U' y0 p0 {' k
F. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test; 2 {8 Z( W& |/ l% R5 [8 }9 M
11. public class Geodetics {
' d/ \, P" ]; w8 O1 X7 a! C+ j12. public static final double DIAMETER = 12756.32; // kilometers
! N" _0 ^3 j. c' [. U* S" B- A13. }
. @6 S I3 X* `Which two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics;
* i+ Z2 O7 w6 M8 L. _, ]public class TerraCarta {
! S# A; f. A$ ? l5 }public double halfway()
9 b1 R: l1 c& C5 s( G2 o, e{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics;
0 _7 x. R" U! k" e4 O; Wpublic class TerraCarta { i( d9 l5 m2 `. @6 D: s D
public double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta {
/ }! x+ j/ W! j" A7 b- D. @; Vpublic double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test;
7 I% [! N: q1 }3 i) D" Gpublic class TerraCarta {
7 Z! q0 z' Q: B, m8 D7 j/ R% Lpublic double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA {
+ `9 L5 n! g/ b4 u0 f2. public void start() { System.out.println(”TestA”); }
/ l2 q( u0 D6 H6 X! c2 ]( p3. }
( _: |: d$ {0 [4. public class TestB extends TestA {
- f1 p( B- h6 t, b4 ~5. public void start() { System.out.println(”TestB”); } # Y9 D4 k8 `+ Q5 J+ A
6. public static void main(String[] args) { 1 M; z# U% Q6 `4 _7 E
7. ((TestA)new TestB()).start(); 3 e- q1 B5 M; f# r' r
8. } 2 B) P! C6 S2 T7 X, _( s3 Z4 \8 l
9. }
) C4 `4 |& r' ~/ \5 M$ oWhat is the result? A. TestA ( B/ a( u( J) W9 |5 m+ [# f; N+ I
B. TestB , r7 B1 M% [- n8 P$ u2 E
C. Compilation fails.
& z8 I2 Q# f. K9 c9 G) CD. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) {
3 L$ a( J$ [4 w- P12. String str = “null’;
9 U! P1 I9 S! J+ j$ u+ a& `3 l13. if (str == null) { 6 ^7 s# R* Z+ T4 O8 x
14. System.out.println(”null”); 5 `1 n e/ u4 ?7 c7 K. a
15. } else (str.length() == 0) { 4 N- _0 v6 Z' Q1 m( d) D4 Y0 a, Y
16. System.out.println(”zero”);
! S2 }3 G+ i4 x1 l. s$ T$ [17. } else {
# y' V3 v2 T' m7 G& ?18. System.out.println(”some”);
; X9 y7 L/ j7 @) }19. }
0 R" J' p; g) u# r5 Y0 ~1 @20. }
/ p. q& P# v- c# v d' M" `7 G5 z( f‘What is the result? A. null
4 `5 z; z( t8 x& i4 aB. zero / d; i7 J8 @$ z* q
C. some
1 A/ m" D- e! T. Y. |D. Compilation fails.
4 S5 [1 L O/ t3 E0 T+ OE. An exception is thrown at runtime. Question 6 Given: 33. try {
6 _/ Y6 B* i% C& G34. // some code here
?1 T9 P; a# d35. } catch (NullPointerException e1) { 2 [* Q b- w6 p- w! l
36. System.out.print(”a”);
) A" R. B, V' e% g9 w7 d- E O8 ^37. } catch (RuntimeException e2) {
# f- n3 a( c8 [4 b/ r8 l38. System.out.print(”b”); : X, y. A! {0 [' ~/ B
39. } finally { ~# r2 g* M- O) v4 |
40. System.out.print(”c”);
* o9 ~2 |2 b: Z41. }
8 g/ ^6 @& S$ U3 U! h* @2 \What is the result if a NullPointerException occurs on line 34?
, j" U/ l( v7 MA. c
8 c2 O) d" ^2 q0 p1 @% _B. a 1 K( a6 D/ w( K: b4 g# ?
C. ab
/ g& [1 s2 B# g) D( A) sD. ac
( f. l& K9 J( Y4 X. y# HE. bc
5 m( ?0 i1 X0 Q* N6 h! n) |' nF. abc Question 7 Given: 1. public class TestString 1 { , B* ?1 W/ @ N/ C- A$ u0 L! w$ c' `5 i
2. public static void main(String[] args) {
, H* n8 F+ L* D9 e1 e4 }3. String str = “420”; / G7 m# o* E2 [. y
4. str += 42;
% |" ? I" b" Z% R+ c R; Y' e8 b5. System.out.print(str); . @1 `* n- ^3 R9 W& E2 {
6. } ' Z$ H# ]* X3 f1 D* P4 E5 @: E; B+ V
7. }
. O p& N! O( x1 |What is the output? A. 42
" j" q7 i/ P& D$ YB. 420 $ d$ A" [' I9 m% i: s
C. 462 ( ^$ @4 j" m+ ~. @# E9 j
D. 42042 Z C `7 Z' Q& e
E. Compilation fails.
$ g& \) }1 P2 HF. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() { + r# W" C7 m7 P. h) f) V2 g
22. StringBuffer buffer = new StringBuffer(); 5 b6 H* g9 R: J5 j6 z3 c
23. buffer.append(’<’);
2 p% J6 O2 J3 i* _7 O0 D24. buffer.append(this.name);
( [2 Y1 ?! x, B2 }; ]25. buffer.append(’>’); " b" s: G- m3 W, I) B: ^7 Q' G6 s
26. return buffer.toString(); ! ~! I$ O. j/ w \5 w, D% K# c
27. } : j. M! n/ n# ]) Z3 y
Which is true? A. This code is NOT thread-safe.
3 e9 W3 A1 N7 H9 Y+ ~B. The programmer can replace StringBuffer with StringBuilder with no - t% \. m ?% V, y
other changes. * {* r6 N3 ?0 U: @* t
C. This code will perform well and converting the code to use % Z! z u# a) i+ z
StringBuilder will not enhance the performance.
" w5 v% n+ A% \0 M" YD. This code will perform poorly. For better performance, the code 5 o V" A2 M: E3 g) x; q
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; + x( M! J: ]* z0 P e
+ c! w: W% J/ V: |- y+ I
A. FIRST_NAME列将被删除,如果该列不包含数据;
& [' I1 ?9 `, m1 H' k" `4 SB. 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图 ) ?+ Y; G) {+ d- k( O: S
|