java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test { ; H* _( P, m9 X) x
12. public static void main(String [] args) { 9 c" X2 o% s9 n8 t# L9 T H
13. int x =5; 9 \# A1 |! v% \/ f) L
14. boolean b1 = true; 1 [$ i! r; z5 T% e; |! A' |
15. boolean b2 = false; . G9 S' N3 S$ I) L
17.if((x==4) && !b2) ! W0 q% M2 b* P
18. System.out.print(”l “);
" L* w0 \; V: s19. System.out.print(”2 “); " \: ^1 y6 }+ m( z: H( z! I2 U& e
20. if ((b2 = true) && b1) & ^* D# J8 I- z6 g
21. System.out.print(”3 “);
* O5 Y% w! `" G n22. }
5 [: e C9 x- t" b23. } 8 A* M" f$ g2 v( y) b
What is the result?
- ^4 H3 E+ F pA. 2
) o; R8 k" ^1 ^( f9 \B. 3 ! G9 h# ?' P5 q
C. 1 2 $ B N. z; Q2 ?$ ?. R# V
D. 2 3 . d9 A5 G$ V; }) X
E. 1 2 3
5 B+ A9 e; P4 `; I+ B, R. l- ]8 OF. Compilation fails. & \2 A! A g4 p. s* D+ r
G. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money { p* S& l4 R8 x# J, B0 `
11. private String country, name; 2 O! a, G, d+ t# y9 H2 {" y
12. Public String getCountry() { return country; } ) f3 x, ?, K1 V1 z6 B% o
13.} and: 24. class Yen extends Money {
5 m0 m4 L1 |. o* l) L/ N25. public String getCountry() { return super.country; }
) f( a2 f! K. Q26. } ! c8 o2 y+ O/ J V5 L& ]
27.
( i" x4 B$ M5 |4 w+ B; u0 H. u28. class Euro extends Money { 5 y& V7 P$ ` d# x; B' A( k, Y
29. public String getCountry(String timeZone) {
: {& d) D5 n3 @" M5 x5 V30. return super.getCountry();
: n* ~2 F4 m( a* j31. }
k! ?: ~7 \, G. l/ z32. } ' s7 A, w# {, n3 d1 l* Q
Which two are correct? (Choose two.) A. Yen returns correct values.
0 z% L; p6 E$ r% o+ V; W7 u$ bB. Euro returns correct values. ' X9 U7 Y8 O x3 i0 Y% W
C. An exception is thrown at runtime.
; X9 W1 \3 v: KD. Yen and Euro both return correct values.
1 O8 F, E, u. h" k" O l. WE. Compilation fails because of an error at line 25.
* Y( _" p5 u6 ~F. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test; 3 D8 c' S W1 R$ ]0 _
11. public class Geodetics { / j! l0 g( O, x' w4 m9 {8 k: \
12. public static final double DIAMETER = 12756.32; // kilometers
- g- @+ m/ k6 U8 v13. } % h4 l8 t$ N$ _2 H- W
Which two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics;
1 e* z! \+ K, d8 U$ Ipublic class TerraCarta {
3 P x, J" |, kpublic double halfway()
1 x5 H$ Z |/ y{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics; " D5 R) |# {3 H% S) E4 B
public class TerraCarta { 6 |$ R+ `' l" L8 m3 s
public double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta { * @: a- S r+ }
public double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test;
1 t- s" L* Q; b5 E9 S* w% Wpublic class TerraCarta { , n2 y1 b/ ~7 ~/ V' Q8 c
public double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA { 1 O3 q9 b+ v6 t, w0 L
2. public void start() { System.out.println(”TestA”); }
: _# K6 S$ e: G) {3. }
, ^% c+ t/ J$ G3 y l4. public class TestB extends TestA {
0 Q* l' |. k# O5. public void start() { System.out.println(”TestB”); } ( b0 W7 J) r( y: \
6. public static void main(String[] args) { * v6 V/ R3 I- h K4 S9 o
7. ((TestA)new TestB()).start(); $ e V& m9 \8 }2 M- X
8. }
" e! \ n* s( \4 T; g4 T9. }
4 e. M7 M0 i+ Q2 AWhat is the result? A. TestA 7 p2 s: ]) x7 D& x x$ e; B9 T
B. TestB
6 ~7 _0 O6 ]) \+ l: S& PC. Compilation fails.
3 p+ B$ h$ ?9 L1 V) ^- w1 L# |+ E- @D. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) {
6 M% K7 y7 S1 J/ ?12. String str = “null’; : ?1 x- F Q: N5 q3 N; O" ?' P) L+ h
13. if (str == null) {
3 Y# j+ r2 |5 Q) D14. System.out.println(”null”); " K, Q6 \" f& U6 b* ^
15. } else (str.length() == 0) { ' [/ t4 X# L: M0 w
16. System.out.println(”zero”);
# Q3 @3 U2 f$ k17. } else {
, F1 ~6 w+ z5 @2 y% t18. System.out.println(”some”); ! U+ D2 i1 r: J' C& W4 z, ]8 O
19. }
" Q5 w7 |3 z. X. [; ~( P: f20. }
- n& d( b. x1 Z4 h4 ?" r5 k; r‘What is the result? A. null
' [; c8 i4 {8 `3 R. gB. zero
% f9 a) t* R j4 y6 i [ k3 uC. some 9 E# \# r" D' n: Q! U+ r% i. l c
D. Compilation fails.
- I( t: a) h( Y. yE. An exception is thrown at runtime. Question 6 Given: 33. try {
5 z# T3 X) s, Y J34. // some code here
# t0 P8 f. L. o35. } catch (NullPointerException e1) { 4 e3 I; Y7 O8 b$ a1 [' S
36. System.out.print(”a”); - D, o% n6 E8 p4 m2 l7 [% U
37. } catch (RuntimeException e2) {
; m1 M1 p: a5 e# o, X+ g( t6 U0 H38. System.out.print(”b”); " Z! {% V1 P+ y& V3 X7 c! b3 y, ^
39. } finally { / z' G' A9 ~- |( X7 i
40. System.out.print(”c”);
: M4 F0 A( q+ s! O1 }6 S" ?* i/ G41. }
7 q# ^" o/ `5 N/ x5 D* rWhat is the result if a NullPointerException occurs on line 34? 6 V; @$ k7 ~% G, g0 u- H( N
A. c : |1 m2 L& m) P3 D
B. a 8 s% r4 F& k' w- N3 e% ]( H
C. ab
3 e3 e3 x6 T" j! dD. ac
5 t" w. v" J) S2 u/ j0 F/ |& sE. bc
# W% {: C! N6 H$ _F. abc Question 7 Given: 1. public class TestString 1 { 9 L J* w, d6 @: u, W& c
2. public static void main(String[] args) { }! e+ Z1 L2 _3 O% v2 k3 o' Q& w
3. String str = “420”;
5 z4 c7 ]! s# N5 T9 G! }& N4. str += 42;
. [5 r2 I0 g, F- J, T5. System.out.print(str);
& I: P: c: T) D6 c6. } ( K: y# q5 K9 A- n8 e( Y) l
7. } 9 s8 u; o% F8 h: h
What is the output? A. 42
% a, C) ?8 f' |: h' |% P7 u! yB. 420
. M& H* l$ s$ I+ c" W, N9 DC. 462
. m4 z/ G& C U. g2 }; VD. 42042 8 Y$ P% m( U9 F5 r7 o1 S# O7 d
E. Compilation fails.
g7 A+ Q& `% @# C. |4 @F. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() { 5 w l: P7 E: Z0 L
22. StringBuffer buffer = new StringBuffer(); n. H9 h. z" p6 M: t( H* n
23. buffer.append(’<’);
& r; i. G( P# U24. buffer.append(this.name); , ]: |( f1 @/ R8 z; Q r2 ?; \! o
25. buffer.append(’>’);
; r' Q6 A# D' t26. return buffer.toString();
/ f6 r& L. |. W: ~27. }
" y- g: c& n) K! g& dWhich is true? A. This code is NOT thread-safe. $ z) X' j( i$ [! N) `/ y; y3 `
B. The programmer can replace StringBuffer with StringBuilder with no
% `: ?! q0 G! e$ S, c+ l; xother changes.
. m$ h% y7 m0 dC. This code will perform well and converting the code to use % h3 \4 E6 J7 ^) v* F
StringBuilder will not enhance the performance.
0 v8 w1 M# e1 e! l$ XD. This code will perform poorly. For better performance, the code ( {6 J0 w T* x
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;
5 G3 D9 w) x. n. H( z8 t
0 E2 \- l, V2 X3 b$ ?A. FIRST_NAME列将被删除,如果该列不包含数据;
" _+ v* [; l) r: B) O# L& ~$ BB. 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图
& K+ C2 n2 f! Q |