java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test { 7 A% d0 Y0 Q- R- t; A W5 B
12. public static void main(String [] args) {
: e" S2 D# P% w/ i5 z8 r4 P4 q13. int x =5; 9 m) m# v0 i, {. P' f" x
14. boolean b1 = true; 8 ]4 q' Q" M9 d& |* h1 T0 [
15. boolean b2 = false;
7 I5 y: _; }8 `2 e! p8 ^4 ^) ~5 K [17.if((x==4) && !b2)
$ E1 I/ {& Q0 F* M; R( k# B y# ?18. System.out.print(”l “);
) X1 a0 g; C+ P+ y1 k19. System.out.print(”2 “);
+ w5 n( z% d3 Q( C* f7 G20. if ((b2 = true) && b1) - ^! T" x7 h3 c( z% p c# }
21. System.out.print(”3 “); ( S$ ]8 a& y2 x/ P* `% |) c& f7 q) X! z
22. }
7 ]2 s9 b0 w( g, y6 T' T23. }
, U6 u' o y' y q9 K7 f5 nWhat is the result?
. l/ w3 H$ g' c* C& cA. 2 $ I2 r0 o3 F( J# f# E. X, e8 i+ c
B. 3 : T$ _; r/ p1 [
C. 1 2 , O( o3 H, K9 X1 O$ V
D. 2 3
& s! Q6 A% U1 fE. 1 2 3 ; k% b" v, d6 i) a/ H
F. Compilation fails. ( ~& w' {/ r; f3 p" @# O& \( J* A
G. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money {
; P% s" f6 C* }: N) U; G11. private String country, name;
* W/ H, a! }5 |0 x" {; y12. Public String getCountry() { return country; } 7 O$ E0 O3 A+ S$ Q5 V6 l
13.} and: 24. class Yen extends Money { 3 e; `" d0 }* a. R" d' G# p' X
25. public String getCountry() { return super.country; } + K+ a0 C" p# P, E2 A) i. l
26. }
& E0 {& z/ d. S7 Q' e0 x( x1 u27. ) |, i" B! `0 b& w H
28. class Euro extends Money {
4 o" N& j8 W' J+ u( c9 [7 Y29. public String getCountry(String timeZone) {
* u; H6 A+ b3 W7 w30. return super.getCountry();
7 K3 e( ^0 Y1 J* I& r31. }
; V/ t6 t S* `9 p. N$ r6 g2 R32. } 9 ?3 O& a/ F F
Which two are correct? (Choose two.) A. Yen returns correct values.
/ p$ _' K) J8 b; q! HB. Euro returns correct values. " V. D) I$ I. T- x# j+ h% \
C. An exception is thrown at runtime.
! _# u" \, L- t; ~D. Yen and Euro both return correct values.
# i* ^* x3 {3 O0 X% ZE. Compilation fails because of an error at line 25.
2 q F+ \# P. N' V9 wF. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test;
5 i* _8 c4 t& B11. public class Geodetics {
2 n% R6 r5 e: _" C( j5 @, U( J- ~12. public static final double DIAMETER = 12756.32; // kilometers 9 h" @7 q: W% ]) P) d" \
13. }
* I) ?1 W1 ]( f; w2 cWhich two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics; 8 Z! Y7 ?- H3 `( V( l& X: D/ W' U8 F
public class TerraCarta { / D4 k4 m- a0 c/ d# S9 l
public double halfway() 1 J; r0 E8 Y5 C; ]
{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics; " F# A: c1 n9 Z
public class TerraCarta { ! k9 `4 n9 F5 s0 f
public double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta { 3 ^* m A( R1 u. [2 ~4 K8 P
public double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test; % D. X2 j3 o1 X. n
public class TerraCarta {
/ {8 n2 G, r" r& ]4 P8 c& j. o$ H& Gpublic double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA { & c) V* X: f4 y5 w$ v
2. public void start() { System.out.println(”TestA”); } 2 G5 ~) o+ g" q' w' W/ ?" B
3. } & K, O1 c& |2 ~* h0 _* r
4. public class TestB extends TestA {
9 \8 h3 L& {5 W; G$ G5. public void start() { System.out.println(”TestB”); }
$ V4 q+ g6 y' E. J0 Q3 H8 _2 d6. public static void main(String[] args) {
- {" w4 N8 [3 Q) V7. ((TestA)new TestB()).start(); 1 k( Y- j8 B1 s+ M
8. }
/ |% U- E: ~( z" `% n2 w$ v) {/ }9. }
1 D p0 S5 @* q% c+ N( g& o9 XWhat is the result? A. TestA
! Z0 A( y6 {3 x1 H" k/ x% T7 GB. TestB
: k2 E* `) }5 zC. Compilation fails. - ^. P: {3 n) t$ D' i6 h0 e
D. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) {
! W' Z% N- |1 A1 U$ K' Y; U% S12. String str = “null’;
/ i& w. k5 @: H13. if (str == null) {
7 b& t4 o' P4 P) ?14. System.out.println(”null”); 0 z& {" Q2 r, E7 u7 @+ i( y$ H
15. } else (str.length() == 0) { 0 ]" G0 T1 i, Y- n, |* H' |
16. System.out.println(”zero”); - j+ }& A' Y7 H5 `' C3 m, t
17. } else {
" r3 m4 n6 o" u% e18. System.out.println(”some”); 0 H6 n. S: o7 n" K+ r
19. }
& W5 A9 Z# d& _9 j- p, O20. } 6 ]' T6 k9 K d$ x
‘What is the result? A. null # S9 M3 Q1 n2 j* h: | e4 q( r2 Z3 L
B. zero . Q8 I0 I/ f( N, ?0 y3 f% x
C. some 6 o! G* t) H- U4 z5 {2 u
D. Compilation fails. ( j# \3 _% V' m( c* W8 }+ t
E. An exception is thrown at runtime. Question 6 Given: 33. try {
# P! {' s9 P2 y. h8 v/ \2 s34. // some code here
?/ O" S: Y! k; ~- \8 P35. } catch (NullPointerException e1) {
) m# g: V: ^! D4 I d- A" W36. System.out.print(”a”);
5 r+ s+ K6 r& s* `: J0 Q. _37. } catch (RuntimeException e2) { * h n- j% | i- Q8 E
38. System.out.print(”b”); * l. [7 U( K3 g8 y6 W
39. } finally {
, t/ [9 `* o! y2 @0 I; d9 ~40. System.out.print(”c”);
% W, q& s5 M% U41. }
- Y# Z. B! O( p+ E! ]What is the result if a NullPointerException occurs on line 34?
$ j: U: M S$ fA. c
, O0 C8 H" z% |/ q2 cB. a . E; {- v4 f& i9 T, L& g
C. ab $ e8 j7 z2 s: U$ b* s& v' I7 R
D. ac , w& a" d1 B& K* R2 s
E. bc
& X5 b4 _4 j/ F7 p4 s: jF. abc Question 7 Given: 1. public class TestString 1 { 0 P3 u' N( }& B
2. public static void main(String[] args) { - N# j; C, d/ H" Y A+ ?0 J
3. String str = “420”;
) p- g# U5 {/ I% m/ p: | R4 B5 s8 ?% g+ m5 m4. str += 42;
) \* G) P$ }* q, U1 f5. System.out.print(str);
7 M) s" [% E, y7 C6. } - ]! w( M2 ~% u9 O" |/ A
7. } 7 J5 ~! b7 e" s) e! W
What is the output? A. 42
% U4 Z* Y# d% c' `) ]5 J9 v5 FB. 420 & X. ^6 y: N, U$ \
C. 462 ( ?. @' r/ E A( W+ g
D. 42042
7 }, C; U/ v; N( C/ P8 k% RE. Compilation fails.
1 v+ [# C, X+ A2 n3 \: OF. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() {
& }0 J' [, J2 U0 t3 s# d. h22. StringBuffer buffer = new StringBuffer();
) a/ |, h6 l9 L0 ^. v* R. z" ]23. buffer.append(’<’); 3 G5 X9 q7 k9 ~$ E. w
24. buffer.append(this.name);
B4 Z; G! L$ q* w25. buffer.append(’>’); $ V5 v0 y2 d. U% o- l2 ` R+ i
26. return buffer.toString();
6 f) D7 `$ d1 }; V2 X3 g27. } 0 x6 n" [. D: g
Which is true? A. This code is NOT thread-safe.
, p7 l. \( o/ h- a4 MB. The programmer can replace StringBuffer with StringBuilder with no
0 N6 I, B8 H1 k$ h; wother changes. " M. H+ J+ }, ?& m7 j8 I- t
C. This code will perform well and converting the code to use
# ^$ M( b- O" Y% K1 _: J6 ]0 sStringBuilder will not enhance the performance. ' ?1 {" [# G! e+ T: ^
D. This code will perform poorly. For better performance, the code
/ e% r: m |; N A2 Cshould 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;
- ]" x0 ?3 N$ j1 R
5 _9 J, e7 q/ x" k1 P) U- YA. FIRST_NAME列将被删除,如果该列不包含数据;
% \6 {8 w/ R& t/ yB. 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图 # T( i6 [" X* r. Q; I! B; L7 z
|