微信

使用微信服务,更方便

职友集>Java面试题 > Swan-080411考试题Java软件工程师

Swan-080411考试题Java软件工程师

2015-11-04 06:30:01 阅读( 0 )

2287人 收藏本页

标签:Java面试题

考试题A

姓名:          日期:           时间:

 

注意:所有题目答案请提供答题思路,否则视为未回答;选择题全为多选题(含单选)。

一、基础知识下面四个选项中,代码可以编译通过的是:ABA int i = 10;

B short s = 300;

C float f = 10.6;

D 函数

public void printNumber(short arg) {

System.out.println(arg);

}

以如下方式调用:printNumber(10);

 

下面的几个函数中,是可以和  BC
public void printMessage(short arg) {};形成重载(Overload)关系的有:

A  public void printMessage1(short arg) {};

B  public void printMessage(String arg) {};

C  public void printMessage(double arg1, double arg2, String message);

D  public int printMessage(short arg);

 

有如下四个字符串变量:ABEString str1 = “JavaWorld”;

String str2 = “JavaWorld”;

String str3 = new String(str1);

String str4 = “Java” + “World”;

下面的代码返回true的有:

A str1.equals(str2);

B str1 == str2;

C str2 == str3;

D str3 == str4;

E str3.equals(str4);

 

下面子类Sub继承父类Base并实现了父类的finish()方法,写法正确的有:BC父类

public abstract class Base {

protected abstract void finish();

}

 

子类

A public class Sub extends Base {

void finish () {

}

}

B public class Sub extends Base {

protected void finish () {

}

}

C public class Sub extends Base {

public void finish () {

}

}

D public class Sub extends Base {

private void finish () {

}

}

 

下面关于接口的描述,错误的有:DEA 接口里面定义的方法默认都是public的

B 接口里面定义的变量默认都是public static final的

C 接口里面定义的方法默认都是abstract的

D 接口不可以有多个父接口

E 实现接口的类一定要实现接口的所有的方法

 

抽象函数不必实现所有方法

 

有如下三个类:(下面代码6、7两道题目共用)

class Base {
public void finish() {
System.out.println(“Base”);
}
}

class Sub extends Base{
public void finish() {
System.out.println(“Sub”);
}
}

class SubA extends Sub{
public void finish() {
System.out.println(“SubA”);
}
}

class SubB extends Sub{
public void finish() {
super.finish();
}
}

下面的代码输出的内容是:C
Base base = new SubA();
base.finish();A Base

B Sub

C SubA

D SubA Sub Base

E SubABase

 

下面代码输出的内容:BBase base = new SubB();

base.finish();
A Base

B Sub

C SubA

D SubA Sub Base

E SubABase

 

下面的声明数组的代码中,正确的有:ABA int[] array[] = new int[10][20];

B int[] array = new int[]{1,2,3,4};

C int array [] = new int[];

D int[] array = int[5];

E int[] array = new int[4]{};

 

数组是内存中的连续空间,但实际使用中我们往往需要可变长的数据结构来存储数据,所以我们经常用到java.util.List接口;List接口有两个主要的实现,ArrayList和LinkedList。下面的应用场景中,适合使用哪种实现呢(如果两种都合适可填写“均可”)?A 我需要经常读取某个位置的元素(           ArrayList                         )

B 我需要频繁的插入元素到某个位置(            LinkedList             )

C 我需要频繁的从某个位置删除元素(            LinkedList             )

D 我需要顺序读取所有的数据(              ArrayList            )

 

10. JDBC规范是面向对象的设计(OOD)的一个良好的范例。请问JDBC API中,下面哪些是接口?BCD

A DriverManager

B Connection

C Statement

D ResultSet

 

 

第二部分 高级部分11. Java异常体系中,分为checked异常和unchecked异常,这两种异常在使用上有什么差别?

12. Http协议的Post和Get方式有什么差别?

 

 

 

13. 请写出下面代码输出的内容。

public classMain{

public static void main(String[] args) {

Base base = new Sub();

}

}

 

class Base {

static {

System.out.print(“A”);

}

 

{

System.out.print(“B”);

}

 

public Base() {

System.out.print(“C”);

}

}

 

class Sub extends Base {

public Ref ref = new Ref();

 

static {

System.out.print(“D”);

}

 

{

System.out.print(“E”);

}

 

public Sub() {

System.out.print(“F”);

}

}

 

class Ref {

static {

System.out.print(“G”);

}

 

{

System.out.print(“H”);

}

 

public Ref() {

System.out.print(“I”);

}

}

14. 请指出下面代码的输出并说明原因。

import java.util.HashMap;

import java.util.Map;

 

public classMain{

public static void main(String[] args) {

Map map = new HashMap();

for (int i = 0; i < 5;)

map.put(new CusKey(i++), i);

 

if (map.containsKey(new CusKey(3)))

System.out.println(“find!”);

else

System.out.println(“can’t find!”);

}

}

 

class CusKey {

int keyNumber;

 

public CusKey(int n) {

keyNumber = n;

}

}

15. 请指出下面代码的结果并说明原因。

public classMain{

public static void main(String[] args) {

System.out.println(newMain());

}

 

public String toString() {

return “I am ” + this;

}

}

 

16. J2EE Web规范中,有四种生命周期范围,它们是Page/Request/(               )/(               ),在这四种生命周期中,用什么语法可以让Request包含多个Page?

 

 

 

17. 用Java开发数据库应用程序的时候,在大量数据插入或者修改操作的情况下,PreparedStatement可以极大幅度的提高程序的性能。请问PreparedStatement和Statement的差别是什么?

 

18. Java多线程程序中,锁是一个重要的概念,它保证了在多线程并发情况下,单一时间片内只有一个线程访问受锁保护的代码,保证了系统数据的一致性。下面的代码中,使用的是什么对象作为锁?

public classMain{

private int seed = 0;

public synchronized int getNextSeed(){

return ++i;

}

}

A 这里的synchronized使用的锁是:

 

public classMain{

private static int seed = 0;

public synchronized static int getNextSeed(){

return ++i;

}

}

B 这里的synchronized使用的锁是:

 

19. Java多线程程序中,什么情况下标志着一个线程正常结束?

 

 

 

20. 网络编程中,TCP和UDP的差别是什么?

 

第三部分 框架和数据库21. 在SpringFramework的配置文件当中,声明一个Bean的时候,默认情况下Spring会控制Bean的实例的Scope为
A 单一实例
B 每个需要这个Bean的地方,都产生一个新的实例
C Spring会维护一个实例的对象池,每次从对象池中获取对象

D 随机产生

22. Hibernate是目前被最广泛使用的ORM持久化框架。请问Hibernate中,Session类的load和get方法的差别是什么?

 

 

23. Hibernate的映射配置文件(.hbm.xml)当中,在一对多的情况下,集合类有两种加载方式,fetch=”join”和fetch=”select”,请问下面关于集合类的延时加载(lazy=”true”属性)的说法正确的是:
A 当lazy=”true” 而fetch=”select”的时候,集合类的数据只有在被访问的时候才加载。
B 当无论lazy属性是否是true,只要fetch=”select” 的时候,集合类的数据就只有在被访问的时候才加载。
C 当lazy=”true” 而fetch=”join”的时候,集合类的数据只有在被访问的时候才加载。
D 当无论lazy属性是否是true,只要fetch=”join”的时候,集合类的数据就只有在被访问的时候才加载。
E当无论lazy属性是否是true,只要fetch=”join”的时候,集合类的数据无论是否访问,都将始终被直接加载。

24. 下面的SQL代码在Mysql数据库中创建了一个用户表:

create table Profile (

id                   int not null auto_increment comment ‘自增主键’,

loginId              varchar(32) not null comment ‘登录名’,

password             varchar(32) not null,

age                   int,

email                varchar(100),

primary key (id)

);

A 写SQL向表中插入一条数据,loginId是smith,password是hello, age是28,email是smith@email.com

 

 

 

B 条件查询:写SQL查询年龄在25到35岁之间,并且loginId不是smith的用户。

 

 

C 条件删除:删除所有email以@yahoo.com.cn注册的用户。

 

 

25. JDBC中,Statement的executeUpdate(String arg)方法返回一个int值。这个返回值代表的含义是什么?

来自IT公司面试手册

下一篇:JAVA代码查错题

上一篇:深圳2010年平安公司JAVA面试题目(1)

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题