java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test { H* v* N. o0 |( G% Z$ h
12. public static void main(String [] args) {
/ l' _, ]1 F, d( s9 R! m13. int x =5; 8 m: a9 r- ?% w4 N' x! u
14. boolean b1 = true;
" L- B8 Z5 `% _7 j/ Y, D5 j15. boolean b2 = false; & X4 v7 r0 @' q, n# E
17.if((x==4) && !b2) ; f$ v# J& k3 e5 X& h% O; _
18. System.out.print(”l “);
# a$ g, K2 v$ M9 s5 V* |' W19. System.out.print(”2 “); & v/ X. }. l# U" d$ l1 C
20. if ((b2 = true) && b1)
; E7 t: Y! A8 r8 T21. System.out.print(”3 “);
2 [# z! i1 k# J$ I22. }
; b( k1 _. B- C9 R) N23. } 9 Z$ [! `9 |" S6 x9 o5 N# o
What is the result? V- e$ G( {: O l
A. 2 * l0 ]9 b6 {" P" P2 ^. g
B. 3
B: q4 g d& n% @, F$ @4 ]C. 1 2 ) m0 t: P) B O2 [' p7 t
D. 2 3 ; R, l$ g! i; x4 g" n2 Q
E. 1 2 3
# o) x5 z- P7 ^4 P" u @F. Compilation fails.
# G7 @) _, P6 F7 z6 P$ JG. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money { ! h- H& e8 w3 T. Z+ t
11. private String country, name;
- ~/ o+ v/ Y% j7 |12. Public String getCountry() { return country; } " a% j# x" U4 y# D$ ^# O
13.} and: 24. class Yen extends Money { 8 z6 m3 f/ u- A5 G. I
25. public String getCountry() { return super.country; }
% a; J: \% F* r/ m' n. G26. }
. d1 d+ V' l: d" s6 M3 r9 Q27.
s) M" y) o! K! ?4 ?& ?" K28. class Euro extends Money { ; c; B" Q, {$ a4 Z! }6 ~* c% h
29. public String getCountry(String timeZone) {
7 M$ } K! f8 Z/ R3 t+ H30. return super.getCountry();
6 [9 ^7 p! l1 S% h& \ \' ?31. }
2 {8 Y. _- b3 c5 x7 @32. } 4 N6 [8 V1 j. {- w) M) b) b
Which two are correct? (Choose two.) A. Yen returns correct values.
, M. }9 P. ]" R3 ?8 t: ]B. Euro returns correct values. + g3 Z; M, o, r. H
C. An exception is thrown at runtime.
z3 |( T) B( \. m9 D# _D. Yen and Euro both return correct values.
4 y: C2 _( l7 }E. Compilation fails because of an error at line 25. 4 [1 @; Y' ~6 `
F. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test; 9 L) S6 S5 }! ]
11. public class Geodetics { ( p. R3 \3 K2 n$ B
12. public static final double DIAMETER = 12756.32; // kilometers
* f# k9 G% ]/ X$ y- P" M S- `2 o13. }
) K: z k& c* A& ^Which two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics; , h: H2 U6 p, `* P }- I9 w
public class TerraCarta {
4 V8 ?5 x2 B$ t; k. Rpublic double halfway()
4 B- K, q1 V- [0 T{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics; . g! d) Y1 i* q. G: ^# j/ }
public class TerraCarta {
' u8 b$ E- y. _ spublic double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta {
- g/ Y. U% d: X0 Z! \& L& mpublic double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test;
" T$ m* }# v1 [public class TerraCarta {
. Z0 Q8 h C0 o { j& W& E3 x7 M" hpublic double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA {
; {) k3 S2 ] w2. public void start() { System.out.println(”TestA”); } ( T# M5 v9 c0 }
3. }
: V" y: G; [( {% c2 i2 p% |" H4. public class TestB extends TestA {
{( e7 W( H. L. U7 n7 Y6 B5 p8 C5. public void start() { System.out.println(”TestB”); } 4 ~- v3 A: U& Q5 v, u
6. public static void main(String[] args) {
. b1 q" w* o: a4 i4 \6 r2 }6 v5 N7. ((TestA)new TestB()).start();
2 z3 d* x) ^5 _3 Q4 r( a `8. }
) u/ s8 a& o2 }# |9. } ) a1 i: i }- j3 X4 q: y
What is the result? A. TestA ' ^" S/ ?: g- b# d/ Y& l
B. TestB
' R: m5 O( V0 G- VC. Compilation fails. 2 ^; C4 A" ~' s! F) g) `+ V6 K
D. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) {
% u5 v* q3 I* J" w3 V" [12. String str = “null’; % @: j! K; i5 n0 P/ V
13. if (str == null) {
3 {/ K6 l* {+ g9 I& Z3 Y& I: w* z14. System.out.println(”null”); 7 r( |9 H, L R8 u5 h* U; w% G% f8 a
15. } else (str.length() == 0) { & ^1 m4 Z) F* z6 y% a
16. System.out.println(”zero”);
. v$ S+ U: ^9 } K7 c17. } else {
2 P9 r7 W$ P0 G7 h! z$ _. q18. System.out.println(”some”); " |- q) m0 u% }
19. }
4 _* r3 d, i* R6 w9 [- d20. } 0 ]' n+ ?9 x. o$ p" Y
‘What is the result? A. null 8 N, Q0 f8 R7 p. s
B. zero ' h3 w( x, d/ F
C. some 3 y# L; [; k- q1 U
D. Compilation fails. 5 p+ G, D4 a0 ?' U% z
E. An exception is thrown at runtime. Question 6 Given: 33. try {
9 R" W8 N' H2 J2 t; R3 n8 Y34. // some code here " ?/ G: i+ c o- @+ `
35. } catch (NullPointerException e1) {
, M. B" r9 y. @( l9 j1 [; n36. System.out.print(”a”);
5 c* U: O( M; ^1 i G37. } catch (RuntimeException e2) {
6 w+ ~& a7 A1 U' R38. System.out.print(”b”); % L" u$ x0 _- W# p% w2 o
39. } finally {
, E! m+ o, t+ H40. System.out.print(”c”);
6 U; w. r$ d( A41. } : n5 z3 u$ y4 a+ o) t. @( I& i
What is the result if a NullPointerException occurs on line 34? & c# H# T' s5 F8 a( k
A. c $ B# J7 t7 x1 E5 |* c: y5 e1 A
B. a
1 \! ~$ _7 C$ p sC. ab n0 e* |6 N1 Z) Y2 W
D. ac
) u+ o0 @# D% p F3 v$ [E. bc 8 h) M' V% r( T7 J c3 V; F) r
F. abc Question 7 Given: 1. public class TestString 1 {
( H0 z1 f& W$ ?2. public static void main(String[] args) { " n+ X& {' `% x- F1 k! U& V7 y$ B
3. String str = “420”; 2 V @: d) n# W' m8 l
4. str += 42; * i( j' Q( r3 }- C' s
5. System.out.print(str); 8 y& _) y+ X* o9 v
6. } 9 r6 ^8 r L& N* k( B x
7. } * f% m& V, D1 z
What is the output? A. 42
- W% e$ G3 `" EB. 420
% R( k, |: X2 T9 D0 ~9 yC. 462
7 e9 {/ z2 [" gD. 42042 6 n( [9 J# [" g! S3 O
E. Compilation fails. % ^6 E& p$ D2 j$ Q r( n# `
F. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() {
3 S6 k. B6 e& P4 m# N! u1 I% ~4 y3 @22. StringBuffer buffer = new StringBuffer();
& S4 M3 y1 `. h" U( \4 h; s0 a8 {23. buffer.append(’<’); 6 X& Q% T& P% J1 D5 ?8 E
24. buffer.append(this.name);
4 Z/ w, Y& }- A3 }: g25. buffer.append(’>’);
+ d: a. Y5 r4 f/ _4 a) A9 F26. return buffer.toString(); 2 j2 t& D& v+ e& e/ u( i# h
27. } & a) \: _" N8 R. w
Which is true? A. This code is NOT thread-safe. ; N% y2 }% s, ~0 i3 d
B. The programmer can replace StringBuffer with StringBuilder with no
6 L. Z* ~3 ^+ I9 z, ]' gother changes. 3 C9 s1 Z6 Y" c, W7 \4 P( t
C. This code will perform well and converting the code to use / G4 Z0 Y" @# y) |8 ^. x
StringBuilder will not enhance the performance. / n; @6 J J! u$ ^ x
D. This code will perform poorly. For better performance, the code
/ I4 B f4 ?% \- Q- E* }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; 4 [0 T% F0 E# a5 \
, P: L' ]) ~( p. B w/ v; E
A. FIRST_NAME列将被删除,如果该列不包含数据;
/ J) d' M( o& n3 `* [B. 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图
- Z: k& S+ u6 q% X4 U( ^ |