java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test { ! `" `- {8 Y; R) U( r! D
12. public static void main(String [] args) { # k2 n) K7 G3 N& h, |7 W
13. int x =5;
) U6 Z( y" S* I8 ~* i; y& d14. boolean b1 = true;
3 @4 u* g5 f8 r; g4 a: {% `15. boolean b2 = false; ( V, h; X8 g, c0 V; F4 \- t9 Y
17.if((x==4) && !b2) ' N+ S D+ J0 a( ?# `
18. System.out.print(”l “);
2 P0 c2 E! S$ [$ [; V1 ~0 m8 h: |19. System.out.print(”2 “);
) L, \' S% y- }$ R+ p! [' L20. if ((b2 = true) && b1) 5 I/ F' o: }) _( ]3 ^) E0 ~
21. System.out.print(”3 “); ; x9 g; d* ?3 c& q$ ]
22. }
% Z4 `$ Y' A! W% I23. } 6 g: k; G% S7 F& ]$ ?0 W) e6 V
What is the result?
! l8 F! K# \# W0 s4 s# cA. 2 ( y' n5 P1 ]8 a8 z+ [- j9 L* r
B. 3
) K. u9 D* C4 U3 DC. 1 2
) B- H9 W$ |2 Z5 |4 V: J( S% T/ H6 `& ]D. 2 3
3 U4 E% i* i0 W; EE. 1 2 3
/ ^+ R- [# \6 FF. Compilation fails.
4 l# k8 Z" d, c* A, Z; ZG. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money {
% Z0 S, q! l$ F7 ^% e8 y11. private String country, name; 5 C6 i4 Z$ p! D
12. Public String getCountry() { return country; } $ I4 D$ A9 h6 b4 r9 s
13.} and: 24. class Yen extends Money { 9 f* ?9 \) Z* i& F
25. public String getCountry() { return super.country; }
8 V f) v( F3 O# G26. }
6 z6 F; \, w/ \% h6 _27.
5 [' T1 k5 g' `28. class Euro extends Money { ! q" S% R0 d$ P+ P
29. public String getCountry(String timeZone) { : U- J* U$ z! D4 x0 C1 o# S: W
30. return super.getCountry(); ! w2 F7 R9 Z' x) S3 r
31. }
, s2 Y8 Y* e e8 Z: ]4 v. b3 M/ e32. }
/ ]( }0 u" O7 O) w/ T \Which two are correct? (Choose two.) A. Yen returns correct values.
9 C3 @5 \ R) b7 ]B. Euro returns correct values. 5 N j3 W2 T; \5 d. x+ t; A. s4 Q
C. An exception is thrown at runtime.
% A8 l3 U, r' u0 E# V1 h8 oD. Yen and Euro both return correct values.
8 X6 S( E# H2 }( b1 `E. Compilation fails because of an error at line 25. y9 @& s: P R& F( `
F. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test;
5 l; D6 V w! l11. public class Geodetics {
( F) C5 {7 K- m3 m: U12. public static final double DIAMETER = 12756.32; // kilometers : k n4 P& e" H& F: L, n% U
13. }
# u. f9 ~6 H; H0 [0 {/ Q5 oWhich two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics; / W7 D1 }" I m- I& A6 P
public class TerraCarta { $ }2 T4 Y: _; n2 P4 G1 v+ |
public double halfway() & l x8 N. @& A+ r
{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics; $ j, Q+ r( H. Z
public class TerraCarta { ! d% v: d- T2 d5 ~; O) h7 A# L
public double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta {
4 w1 u2 y$ k* Opublic double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test; & P4 S. |# A/ Y$ N$ n* e2 D
public class TerraCarta {
$ u: H/ v5 v6 i' x" V- i4 v; t# ?; _public double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA { ' m9 k2 c/ b( y0 r
2. public void start() { System.out.println(”TestA”); }
& P# |, b! @9 l8 n. r; `8 D3. } - U7 _+ \; _% D# l; x6 v3 [
4. public class TestB extends TestA {
% p B1 v! S' H( {' J o6 Y/ W5. public void start() { System.out.println(”TestB”); }
: e+ ]0 l! p/ O% H* d) E6. public static void main(String[] args) {
1 ^% U- N; |2 V* T6 f! |+ n7. ((TestA)new TestB()).start();
) Y- H* J% i3 p# D1 s8. } 7 T" J# V! ~7 m
9. } 5 z: x$ H( f/ a0 p# w( H
What is the result? A. TestA
2 j% r1 s) \! x. i6 AB. TestB ! ^6 R" u. G- ^: X. e( Z4 \6 {5 w% l
C. Compilation fails. , F6 i% R% P( P% _, ^; d; \1 W
D. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) {
6 N) W6 P8 i6 N12. String str = “null’;
4 T8 a: b" R3 D13. if (str == null) { 5 i- e X- c3 i# O H' o5 f
14. System.out.println(”null”);
) @( e+ R0 r0 k3 W3 |15. } else (str.length() == 0) { 0 K4 j$ U" T: m8 j& g
16. System.out.println(”zero”);
+ @* Q! v# x' m+ O$ R, Z17. } else { " ~2 e: G: W3 c' n/ o
18. System.out.println(”some”);
# G2 \2 g1 m' a$ T5 {) T19. } / z4 i) ?$ U6 ]; E9 W
20. }
' |; t3 b6 {8 F1 w) D: x‘What is the result? A. null
! ]/ B4 @$ Z8 Q1 _: f* ?1 [1 wB. zero
, r6 b4 k: g1 d) D p J& c8 J5 K( PC. some ! Y# d& z) x5 K& G
D. Compilation fails. + [% t9 G% f0 S: o! I/ }; C
E. An exception is thrown at runtime. Question 6 Given: 33. try {
. b. s$ o7 H% b/ D34. // some code here / h9 n# G0 S' I- Z" d
35. } catch (NullPointerException e1) {
# t/ n V& q( G1 r$ O" }36. System.out.print(”a”); & k3 {) u: z5 X+ C
37. } catch (RuntimeException e2) {
|6 J8 e G/ m! c38. System.out.print(”b”);
: ]0 f3 ?- K' A0 j9 x39. } finally {
0 N4 c, n; m+ B* v40. System.out.print(”c”); 4 F1 G$ t# B9 M- V1 Q, v: E
41. } 0 O1 s) ^ I4 I, h$ L6 D3 }
What is the result if a NullPointerException occurs on line 34? ) f- \4 J) K7 m4 X H
A. c G! {' n* e" N
B. a 3 _% Z9 M5 V! |
C. ab
6 \* f) G" p& y( r: M6 BD. ac
' q7 A* y- z# _) N5 ?& WE. bc 9 n* M& m/ Q# l7 u
F. abc Question 7 Given: 1. public class TestString 1 {
( ^5 K, x' Y6 g8 A g8 N% z6 P) g2. public static void main(String[] args) { 3 ]. y4 d) S5 [, C- t: t7 ~6 m9 x
3. String str = “420”;
- j% Y1 L0 \1 g% l h% S4. str += 42;
, W$ F1 k# g1 ^% ]4 }' a" p$ k" [5. System.out.print(str);
# w9 Y* X* R% W& A+ v, D, s6. }
+ K; Z. v+ n' ^) I/ N0 k+ _! `- I1 p7. } / a2 L. c$ a' j5 {# b0 o
What is the output? A. 42
; Y( g7 r9 F+ H- LB. 420 * w$ {% m5 T+ g4 Q
C. 462 3 U r$ i8 v3 x" m# {
D. 42042 3 ^ g, b. C, l- @
E. Compilation fails.
" F% A0 f* E, D9 [) @F. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() {
; D) Q' v9 O- G7 v6 p+ Q8 a22. StringBuffer buffer = new StringBuffer();
% b' {" c+ \+ t# d _! d7 X: p23. buffer.append(’<’); ( _2 b. R7 T+ P# }
24. buffer.append(this.name); $ B( _: x) \& B3 ~/ ^: _# _
25. buffer.append(’>’); 1 U, Y Y2 K) q7 j. {+ S* [
26. return buffer.toString(); 0 O( K; A0 {; G: i' a1 j9 B, b/ C
27. } ( } _1 Q' Z+ M
Which is true? A. This code is NOT thread-safe.
8 v! r* N( V8 o6 {( u W( B5 b, UB. The programmer can replace StringBuffer with StringBuilder with no ; d( s8 A1 u7 Y! K- z
other changes. : G, W5 T% t4 I1 ^8 P5 Q
C. This code will perform well and converting the code to use
2 n! {5 N( v: h) B8 PStringBuilder will not enhance the performance.
# k' {1 M) F( F jD. This code will perform poorly. For better performance, the code
1 c. d' E/ U9 _5 t8 eshould 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; 2 h' \6 M- p, |- h3 j9 g
# Y$ Z7 F8 I0 w6 Y. ~, `9 l) Z& K
A. FIRST_NAME列将被删除,如果该列不包含数据;
6 o! ?% m, i6 s- s/ XB. 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图 0 e, B0 h' q: T4 w9 P
|