java软件工程师笔试题目(I) 规则: 1. 时间:40分钟 2. 个人独立完成,不能使用手机等上网上查询。如果被发现作弊,则零分。 3. 为了环保和节约纸张,请在答题卡上填写答案 一、不定项选择题(每题5分) Question 1 Given: 11. public class Test { 5 F/ Z) }2 a1 Q9 W
12. public static void main(String [] args) {
& H, ?, B* c$ q" q! A. k- ]13. int x =5;
% n" x5 M) L; d8 a14. boolean b1 = true;
. ^, J3 P2 s6 ?& U7 x15. boolean b2 = false; 8 D; z3 k5 E0 ^4 n6 m f
17.if((x==4) && !b2)
. _+ }3 t4 n0 y18. System.out.print(”l “);
8 |& U3 N& j R% e! \19. System.out.print(”2 “);
( X* `' [# F0 [/ k7 V+ L2 f8 J20. if ((b2 = true) && b1)
7 `2 {3 u; I! ~' w9 n& v. \21. System.out.print(”3 “);
# V1 r! K2 P% o: \; @ b$ R22. } " |7 S, ^9 T$ o- i2 m
23. } + q1 o* P. g& u5 Z# h/ {1 I' F: j( s
What is the result? : T2 @ b# v" d ]$ y3 g( w, g7 \1 \
A. 2
' P1 h, M7 E3 `B. 3
- a# {) a1 G. W) PC. 1 2 # y9 E- E+ t. O0 u
D. 2 3
O' ]" M7 x% _2 k0 G! T# HE. 1 2 3
; E) n( u8 {, T0 n: IF. Compilation fails. - w0 S+ j7 Y. h
G. Au exceptional is thrown at runtime. Question 2 Assume that country is set for each class. Given: 10. public class Money {
, Y% A4 t* o; h9 ^& K- t11. private String country, name;
% d8 u4 ^ ~3 E! u12. Public String getCountry() { return country; } 7 A g/ r' u# g+ C$ ^5 E6 }
13.} and: 24. class Yen extends Money { 9 o5 R9 `+ G! D( c5 S( `9 E/ p
25. public String getCountry() { return super.country; } * r# B* V: o6 f/ t9 {5 D, J; ~; T
26. } ; N( c5 P" |9 j- h
27. : c5 g9 R9 ]. x( a2 o; j
28. class Euro extends Money { ; ?% a& C6 S8 z
29. public String getCountry(String timeZone) {
0 A% ^8 _: O' z0 N3 \30. return super.getCountry();
8 ]# w! T/ w- @. P4 N8 h31. }
! T! S0 n% Z6 W/ `- J% i32. }
; l* E. k% y! h" ~Which two are correct? (Choose two.) A. Yen returns correct values. . ^, | d4 }8 T2 I/ R
B. Euro returns correct values.
8 P+ }4 V* F8 \+ j; }! Z% [$ o' g5 }: {C. An exception is thrown at runtime.
" J, c* o/ w% N& U9 aD. Yen and Euro both return correct values.
" N1 I; x+ @. k* [E. Compilation fails because of an error at line 25.
0 Z1 A$ p5 R: S' [; rF. Compilation fails because of an error at line 30. Question 3 Given: 10. package com.billionsfinance.test; ! s1 C" ]8 b; X$ W, f5 ~: @! G
11. public class Geodetics {
9 N% D2 I7 O- v& x( e O12. public static final double DIAMETER = 12756.32; // kilometers
5 Q- q: i1 u$ K6 |0 @3 Q2 o13. } - o, C6 @$ }4 w$ X0 D: L, j7 ~
Which two correctly access the DIAMETER member of the Geodetics class? (Choose two.) A. import com.billionsfinance.test.Geodetics;
5 Z* Q$ i4 y b9 z. V, M+ E- C! |' wpublic class TerraCarta { & Y; S$ |! r6 S- r8 L- C8 {( I2 j, z
public double halfway()
0 {6 n' H. H* R) D5 N{ return Geodetics.DIAMETER/2.0; } } B. import static com.billionsfinance.test.Geodetics;
' J" O, F6 O1 i2 p% P" epublic class TerraCarta { 6 c7 o4 c* K5 ^1 m9 T8 L0 P% Z
public double halfway() { return DIAMETER/2.0; } } C. import static com.billionsfinance.test.Geodetics. *; public class TerraCarta { 5 O- t& H. W `9 N& \' J# a
public double halfway() { return DIAMETER/2.0; } } D. package com.billionsfinance.test;
" [4 [+ B8 o1 e. r& c/ kpublic class TerraCarta { - D1 O/ e6 |% e$ C' z3 C! t
public double halfway() { return DIAMETER/2.0; } } Question 4 Given: 1. class TestA {
9 o/ N# T( q, H9 b2. public void start() { System.out.println(”TestA”); } ! o, X( V: J* [+ G& L% ^) j
3. } 3 m( ]2 H6 X% q. ]4 a1 n
4. public class TestB extends TestA {
9 _, Z0 H2 C2 i, i8 u8 w& S5. public void start() { System.out.println(”TestB”); }
$ O' W* K# ^' O* X6. public static void main(String[] args) { 9 M/ p' n* N: m7 Z
7. ((TestA)new TestB()).start();
% p9 @! |! n% E0 [8. }
! T, S. \5 `7 P1 S3 B# }/ L9. } - y; B9 e* c) Q2 Q( ]8 d! {( \
What is the result? A. TestA
+ j n/ B. a* N% K; i- c) eB. TestB
7 A; z, a; E$ l$ o' v% X8 y; ^C. Compilation fails. , U! X( A( e+ z7 V( V
D. An exception is thrown at runtime. Question 5 Given: 11. public static void main(String[] args) { ) E8 u9 X6 k$ J3 ?8 {) H7 m" }
12. String str = “null’; 6 d3 w/ u9 `( L. f" }: q7 n0 U) ^+ S
13. if (str == null) {
3 P9 p7 p$ |0 r* [14. System.out.println(”null”); , Y F5 d' t7 n. E
15. } else (str.length() == 0) {
# C7 P+ B! G* e G& s16. System.out.println(”zero”); 4 ]2 V$ K: e6 A0 D7 L2 l
17. } else {
. q/ m: C N' @( l4 ~18. System.out.println(”some”);
% z$ J$ [. x+ E* R19. }
; `# N! o# T% I# n9 _ l/ H20. }
3 `1 Z0 f; ~; _ ?8 A: | S( M‘What is the result? A. null % q1 X3 K2 r2 a9 G
B. zero $ Z J7 a |' S3 i' ~, F" P
C. some ; l2 w' t6 {' X# ^
D. Compilation fails. & N, U/ S. ?+ P+ } d8 I
E. An exception is thrown at runtime. Question 6 Given: 33. try {
2 U) U' O2 X) X4 U% P& m+ i34. // some code here 5 n- w5 ?6 Z! d3 J
35. } catch (NullPointerException e1) {
j* V- k4 K d% H8 E+ E8 g( _36. System.out.print(”a”); * \ `& e/ w7 C% ^& {3 x
37. } catch (RuntimeException e2) {
% W& \1 e. J) S: r5 D8 G38. System.out.print(”b”);
* N! h0 U9 h i& v* E( z4 g& r# M39. } finally { G6 e, Q( k! l/ ^6 r
40. System.out.print(”c”); ! {: d `4 S! w, W& E
41. }
7 ]) M& X- e& I/ S0 m! UWhat is the result if a NullPointerException occurs on line 34?
, e' Y; P, k* [, K _A. c
3 l: ]0 {, N' I" c+ Y6 c4 d. p# r; w, YB. a
; j+ F1 j6 P4 H) XC. ab 2 S) H" L+ ^: _1 [
D. ac ' i( L w2 N/ Z) V
E. bc % K# b* }& U2 Z/ P. w
F. abc Question 7 Given: 1. public class TestString 1 { 8 z% p, M* ]* v2 w
2. public static void main(String[] args) { 3 f" j% y; Y' _8 L5 `. c$ Z
3. String str = “420”;
G" K# z! E a+ u4. str += 42; 2 E* K8 x, J( D
5. System.out.print(str);
! }' F9 A/ ~8 ~2 i E9 S3 v. X6. }
5 l& n+ e) l; F N% v. \# E7. } 3 ^( s V# |" f% s' e
What is the output? A. 42
0 F! V/ x) H& I1 KB. 420
0 Y( R8 z2 B8 G# k% v/ Z$ wC. 462
& Y" x) M" Y" O. P- S+ j6 Q% [D. 42042 4 C( \% S+ s/ K3 e
E. Compilation fails.
) y. {2 s3 X# Q! g% zF. An exception is thrown at runtime. Question 8 Given this method in a class: 21. public String toString() { 7 P2 y' ~& I; ]
22. StringBuffer buffer = new StringBuffer();
! u3 W0 i2 z' M# o4 h# y$ L7 G( w23. buffer.append(’<’);
7 d9 w4 Q6 a/ B; }. q( ^4 V% J24. buffer.append(this.name); 7 |+ _% r3 a/ g) Y7 t2 }& _5 q( K( Y0 j
25. buffer.append(’>’);
0 \5 n: t- Q- \2 ~6 s* o26. return buffer.toString(); 1 J5 |/ R& F( Q; X& H
27. }
4 J1 r+ C, Z: C7 }Which is true? A. This code is NOT thread-safe. ( Y Z$ G, g$ f7 X! W3 _
B. The programmer can replace StringBuffer with StringBuilder with no * l4 j7 o& N! v) Q1 X6 y
other changes. $ z. u& y; {3 e7 p. E9 ~+ a( h
C. This code will perform well and converting the code to use % ^/ E" T$ m' U2 \3 C7 h' {6 e
StringBuilder will not enhance the performance.
. j- [" N" q7 qD. This code will perform poorly. For better performance, the code ! ]: u) o' ^$ }" E/ n$ k
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; 3 S u8 Q! f: A2 [4 b
4 U+ }0 A( I3 I" t8 E3 C
A. FIRST_NAME列将被删除,如果该列不包含数据; 3 u( V& f3 Y6 E' n3 X5 i
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图 8 r- b) B, k5 I4 ?. J: G( ~8 O
|