软件开发工程师(JAVA)笔试题

2012年05月16日 01:18 阅读 20 Java

一、选择题

1、下面哪项是不合法的标识符:()

A. $persons B. TwoUsers C. *point D. _endline E. final

2、下列运算符合法的是( )

A.&& B.<> C.if D.:=

3、下面描述中哪两项相等:()[选择两项]

  1. <%= YoshiBean.size%>
  2. <%= YoshiBean.getSize()%>
  3. <%= YoshiBean.getProperty(“size”)%>

 

  1. <jsp:getProperty id=”YoshiBean” param=”size”/>
  2. <jsp:getProperty name=”YoshiBean” param=”size”/>
  3. <jsp:getProperty id=”YoshiBean” property=”size”/>
  4. <jsp:getProperty name=”YoshiBean” property=”size”/>

4、设float x = 1,y = 2,z = 3,则表达式 y+=z–/++x的值是:()

A. 3.5 B.3 C. 4 D. 5

5、下面的哪些叙述为真:()

  1. equals()方法判定引用值是否指向同一对象
  2. ==操作符判定两个不同的对象的内容和类型是否一致
  3. equal()方法只有在两个对象的内容一致时返回true
  4. 类File重写方法equals()在两个不同的对象的内容和类型一致时返回true

6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?()

A. 能 B. 不能 C. 不确定

7、下列说法错误的有( )

A. 能被java.exe成功运行的java class文件必须有main()方法

B. J2SDK就是Java API

C. Appletviewer.exe可利用jar选项运行.jar文件

D. 能被Appletviewer成功运行的java class文件必须有main()方法

8、下列正确的有( )

A. call by value不会改变实际参数的数值

B. call by reference能改变实际参数的参考地址

C. call by reference不能改变实际参数的参考地址

D. call by reference能改变实际参数的内容

9、下列说法错误的有( )

A. 数组是一种对象

B. 数组属于一种原生类

C. int number=[]={31,23,33,43,35,63}

D. 数组的大小可以任意改变

10、不能用来修饰interface的有( )

A.private B.public C.protected D.static

11、关于Float,下列说法正确的是

A.Float是一个类

B.Float在java.lang包中

C.Float a=1.0是正确的赋值方法

D.Float a= new Float(1.0)是正确的赋值方法

12、下列哪种说法是正确的( )

A. 实例方法可直接调用超类的实例方法

B. 实例方法可直接调用超类的类方法

C. 实例方法可直接调用其他类的实例方法

D. 实例方法可直接调用本类的类方法

13、下列说法错误的有( )

A.在类方法中可用this来调用本类的类方法

B.在类方法中调用本类的类方法时可直接调用

C.在类方法中只能调用本类中的类方法

D.在类方法中绝对不能调用实例方法

14、下面说法哪些是正确的?

A.Applet可以访问本地文件

B.对static方法的调用不需要类实例

C.socket类在java.lang中

D.127.0.0.1地址代表本机

15、类Test1、Test2定义如下:

  1. public class Test1 {
  2. public float aMethod(float a, float b) throws
  3. IOException { }
  4. }
  5. public class Test2 extends Test1 {
  6. //Line6
  7. }

将以下()方法插入行6是不合法的。

  1. float aMethod (float a, float b) {}
  2. public int aMethod (int a, int b) throws Exception {}
  3. public float aMethod (float P, float q) {}
  4. public int aMethod (int a, int b) throws IOException {}

16、关于以下程序段,正确的说法是:()

1. String s1 = “abc” + “def”;

2. String s2 = new String(s1);

3. if(s1.equals(s2))

4. System.out.println(“.equals() succeeded”);

5. if(s1 == s2)

6. System.out.println(“== succeeded”);

A. 行4与行6都将执行 B. 行4执行,行6不执行

C. 行6执行,行4不执行 D. 行4、行6都不执行

17、下面程序的执行结果为:()

  1. public class Test {
  2. static Boolean foo(char c) {
  3. System.out.println(c);
  4. return true;
  5. }
  6. public static void main(String[] args) {
  7. int i = 0;
  8. for (foo(‘A’); foo(‘B’)&&(i<2); foo(‘C’)) {
  9. i++;
  10. foo(‘D’);
  11. }
  12. }
  13. }

A. ABDCBDCB B. ABCDABCD

C. Compilation fails C. An exception is thrown at runtime

18、阅读下面的程序

  1. public class Outer {
  2. public void someOuterMethod() {
  3. //Line3
  4. }
  5. public class Inner() {}
  6. public static void main(String[] args) {
  7. Outer o = new Outer();
  8. //Line8
  9. }
  10. }

Which instantiates is an instance of Inner? ()

A. new Inner(); // At line3 B. new Inner(); // At line 8

C. new o.Inner(); // At line8 C. new Outer.inner(); // At line 8

19、选出能正确赋值的:

public class TestA {

private int a;

public int change(int m) {

return m;

}

}

public class TestB extend TestA{

public int b;

public static void main() {

TestA aa = new TestA();

TestB bb = new TestB();

int k;

// Line 13

}

}

在Line13处可以正确赋值的有: ()

  1. k= m; B. k=b; C. k=aa.a; D. k=bb.change(30); E. k=bb.a

20、已知如下代码:

switch (m)

{

case 0: System.out.println(“Condition 0″);

case 1: System.out.println(“Condition 1″);

case 2: System.out.println(“Condition 2″);

case 3: System.out.println(“Condition 3″);break;

default: System.out.println(“Other Condition”);

}

当 m 的值为什么时输出 “Condition 2″? ( )

A . 0 B .1 C. 2 D . 3 E.4 F. None

21、给出程序段

public class Parent

{

public int addValue(int a,int b)

{

int s;

s=a+b;

return s;

}

}

class Child extends Parent{}

可以加在Child类的方法有:()

A. int addValue(int a,int b){}

B. public void addValue(int a,int b){}

C. public int addValue(int a){}

D. public int addValue(int a,int b){}

22、下述哪些说法是正确的?()

A. 实例变量是类的成员变量

B. 实例变量是用static关键字声明的

C. 方法变量在方法执行时创建

D. 方法变量在使用之前必须初始化

23、对于下列代码:

public class Sample{

long length;

public Sample(long l){ length = l; }

public static void main(String arg[]){

Sample s1, s2, s3;

s1 = new Sample(21L);

s2 = new Sample(21L);

s3 = s2;

long m =21L;

}

}

下列哪些表达式返回值为’true’? ( )

A .s1 = = s2; B. s2 = = s3; C. m = = s1; D. s1.equals(m)

24、哪个类可用于处理 Unicode?

A .InputStreamReader B .BufferedReader C.Writer D.PipedInputStream

25、已知如下说明:

TextArea ta = new TextArea (“Hello”, 5, 5);

请问哪个语句是正确的?( )

A . The maximum number of characters in a line is 5.

B. The displayed height is 5 lines otherwise constrain.

C. The displayed string can use multiple fonts.

D. The displayed strings are editable.

26、当 Frame 改变大小时,放在其中的按钮大小不变,则使用如下哪个 layout? ( )

A. FlowLayout

B. CardLayout

C. North and South of BorderLayout

D. East and West of BorderLayout

E. GridLayout

27、已知如下的命令执行 java MyTest a b c

请问哪个语句是正确的? ( )

A . args[0] = “MyTest a b c”

B . args[0] = “MyTest”

C . args[0] = “a”

D . args[1]= “b”

28、下面哪个语句是创建数组的正确语句?( )

A . float f[][] = new float[6][6];

B . float []f[] = new float[6][6];

C . float f[][] = new float[][6];

D . float [][]f = new float[6][6];

E . float [][]f = new float[6][];

29、下面叙述那些是正确的?()

A:java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。

B:在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。

C:java接口包含函数声明和变量声明。

D:java中,子类不可以访问父类的私有成员和受保护的成员。

30、 以下关于数据库范式的描述,哪些是错误的()

A. 如果把多个数据项用一个大的 String 表示为一个字段,则不满足第一范式

B. 满足数据库范式使得数据库的效率更高

C. 如果满足更高的范式,则必须首先满足低级别的范式

D. 数据库第二范式要求把表中与所有键没有直接关系的数据全部拆分到其他表中

31、在Hibernate中,<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?()

A. none B. save C. delete D. save-update

32、以下程序代码对Customer的name属性修改了两次:

tx = session.beginTransaction();

Customer customer=(Customer)session.load(Customer.class, new Long(1));

customer.setName(“Jack”);

customer.setName(“Mike”);

tx.commit();

执行以上程序,Hibernate需要向数据库提交几条update语句?()

A. 0 B.1 C. 2 D. 3

33、假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况?()

Session session=sessionFactory.openSession();

tx = session.beginTransaction();

Customer customer=(Customer)session.get(Customer.class,new Long(1));

tx.commit();

session.close();

Iterator orderIterator=customer.getOrders().iterator();

A. 编译出错 B. 编译通过,并正常运行 C. 编译通过,但运行时抛出异常

34、设栈最大长度为 3 ,入栈序列为 1 , 2 , 3 , 4 , 5 , 6 ,则不可能得出栈序列是()

A. 1 , 2 , 3 , 4 , 5 , 6

B. 2 , 1 , 3 , 4 , 5 , 6

C. 3 , 4 , 2 , 1 , 5 , 6

D. 4 , 3 , 2 , 1 , 5 , 6

35、在 UML 方法中,使用多种类型的图形来帮助进行设计,请问一下那些图形不是 UML 的图形类型()

A. 类图 B. 实体关系图 C. 序列图 D. 活动图

二、问答题

1、阅读下面的代码

interface Playable {

void play();

}

interface Bounceable {

void play();

}

interface Rollable extends Playable, Bounceable {

Ball ball = new Ball(“PingPang”);

}

class Ball implements Rollable {

private String name;

public String getName() {

return name;

}

public Ball(String name) {

this.name = name;

}

public void play() {

ball = new Ball(“Football”);

System.out.println(ball.getName());

}

}

上面代码是否有错,如果有错,错误在何处?

2、详细解释下面的语句:

Class.class.getClass()

3、解释一下什么是MVC,IOC,AOP,ORM,JNDI,,Hibernate,SSO、Portal?

4、什么是EJB?EJB和JAVA BEAN有何区别?

5、现有Mysql数据库,写Spring + Hibernate的配置文件

数据IP:127.0.0.1

数据库:bdtc

用户名:root

密码:mysql

6、请简要描述一下J2EE应用中的class loader的层次结构?

7、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,应该输出为“我ABC”而不是“我ABC+汉的半个”。

8、XML 的解析技术有哪些?区别是什么?你在项目中用到了xml技术的哪些方面?如何实现的?

9、写一段代码,实现银行转帐功能:

接口定义如下:

Public interface ITransfer{

/**

* 银行内部转帐,从转出帐号中扣除转帐金额,给转入帐号增加转帐金额,需要保证以上两个操作

* 要么同时成功,要么同时失败

* fromAccountId 转出帐号

* outAccountId 转入帐号

* amount 转帐金额

**/

 

Public void transferInner(String fromAccountId,String outAccountId,

BigDecimal amount);

/**

* 外部转帐-转出,从转出帐号中扣除转帐金额

* fromAccountId 转出帐号

* amount 转帐金额

**/

Public void transferOut(String fromAccountId,BigDecimal amount);

/**

* 外部转帐-转入,给转入帐号增加转帐金额

* toAccountId 转入帐号

* amount 转帐金额

Public void transerIn (String toAccountId, BigDecimal amount);

}

请编写你的实现类,来实现上述接口

Account表

字段:accountId , 主键 varchar2(32), 用户帐号

字段:amount , 金额 number(18,3)

10、SQL问答题

表结构:

1、 表名:g_cardapply

字段(字段名/类型/长度):

g_applyno varchar 8: //申请单号 (关键字)

g_applydate bigint 8: //申请日期

g_state varchar 2: //申请状态

2、 表名:g_cardapplydetail

字段(字段名/类型/长度):

g_applyno varchar 8: //申请单号 (关键字)

g_name varchar 30: //申请人姓名

g_idcard varchar 18: //申请人身份证号

g_state varchar 2: //申请状态

其中,两个表的关联字为申请单号

题目:

1、 查询身份证号码为610103198012223082的申请日期

2、 查询同一个身份证号码有两条以上记录的身份证号码及记录个数

3、 将身份证号码为610103198012223082的记录在两个表中的申请状态均改为07

4、 删除g_cardapplydetail表中所有姓李的记录

1、 select g_applydate from g_cardapply a,g_cardapplydetail b where a.g_applyno=b.g_applyno and b.g_idcard=’610103198012223082’

2、 select g_idcard,count(g_applyno) from g_cardapplydetail group by g_idcard having count(g_applyno)>2

3、 update g_cardapply a,g_cardapplydetail b set a.g_state=’07’,b.g_state=’07’ where a.g_applyno=b.applyno and b.g_idcard=’ 610103198012223082’

4、 delete from g_cardapplydetail where g_name like ‘李%’

还没有评论!