烟台Java培训
达内烟台中心

18300268127

热门课程

软通动力Java笔试题

  • 时间:2018-06-19 17:42
  • 发布:烟台达内
  • 来源:烟台达内

1. 填空题(共32分,每空1分)

1) Java中存在___public___、___default_____、_protected_________、__private__________、四种访问权限控制等级(按从最宽松到最严格控制等级依次填写).

2) 常用的两个List的非同步实现类是__ArrayList_______、_____LinkedList_________。其中基于链表实现的是____ LinkedList _______,其查询效率较____ ArrayList _____、增删效率较____ LinkedList _______.

3) Spring简化了Bean的配置,提供了自动装配(autowire)机制,根据指定的原则(通过的autowire属性指定)进行Bean的自动装配,Spring本身为autowire属性提供了____________、______________、_____________、 __________以及no五个选项.

模式 说明

no 不使用自动装配,必须通过ref元素指定依赖,默认设置。

byName 根据属性名自动装配。此选项将检查容器并根据名字查找与

属性完全一致的bean,并将其与属性自动装配。

byType 如果容器中存在一个与指定属性类型相同的bean,那么将与

该属性自动装配;如果存在多个该类型bean,那么抛出异

常,并指出不能使用byType方式进行自动装配;如果没有找

到相匹配的bean,则什么事都不发生,也可以通过设置

dependency-check="objects"让Spring抛出异常。

constructor 与byType方式类似,不同之处在于它应用于构造器参数。如

果容器中没有找到与构造器参数类型一致的bean,那么抛出

异常。

autodetect 通过bean类的自省机制(introspection)来决定是使用

constructor还是byType方式进行自动装配。如果发现默认的

构造器,那么将使用byType方式。

4) 默认情况下,用户请求一个Servlet时,容器____会_______为当前用户创建一个会话;当用户请求一个Jsp页面时,容器______不会____为当前用户创建一个会话(请填写”会”与”不会”).

5) J2EE事务提供了两种方式,一种是由___编程式事物_____来管理,另一种是由_____声明式事物______来管理.

6) Java中线程的四种状态分别是___新建________、___运行____________、______中断________、_____死亡 __________;让线程从运行状态转换为暂停状态的有_______yield______、_____sleep_____。

7) 在UML中,类之间的管理有: ___泛化关系________、_____关联关系________、_______构成关系________、_______聚集关系______、______依赖关系____五种.

8) Set中的元素___可以_______为null, ___不可以_____重复, HashMap中的Key____不可以________为Null, value___不可以_______为Null. (请填写“可以”与”不可以”).

2. 问答题(共48分)

1) 假设类A的某个成员方法a()分别具有public,private, protected,default的访问修饰符,如果希望在B类中调用A的a()方法。那么调用是否成功取决于A与B之间的关系,以及他们所在包的关系。请完成如下表格,在B类中能否调用A.a()成功(成功用√, 失败用*表示)(3分)

方法修饰符

类A与类B关系publicprivateprotecteddefault

A与B在同包下,没有继承关系√**√

A与B在不同包中,B继承自A√**√

A与B在不同包中,没有继承关系√***

public 都可以被继承或访问;

protected在同一包,他的子类都可以去继承或访问;

default,在同一包中可以被继承或访问,子类如果和父类不在一个包,也不能继承;

private,必须在一个类中才能被访问

2) 给定下面的代码:(3分)

public void Test(){

try{

method();

System.out.println(“hello world”);

}catch(Exception e){

System.out.println(“Exception”);

}finally{

System.out.println(“Thank you”);

}

System.out.println(“Test”);

}

如果Method方法正常运行且返回,在控制台会显示哪些信息,如果method方法出现异常,在控制台会显示哪些信息.

Method正常会显示:

hello world,Thank you,Test

不正常:Exception,Thank you,Tests

3) 指出下面这个程序的运行结果,并说明主要原因: (4分)

public class Example{

String str=new String(“good”);

Char[] ch={‘a’,’b’,’c’};

public static void main(String[] args){

Example ex=new Example();

ex.change(ex.str,ex.ch);

System.out.println(ex.str+”and “);

System.out.println(ex.ch);

}

public void change(String str,char ch[]){

str=”test.ok”;

ch[0]=’g’;

}

}

输出:good and gbc

原因:String类很特殊 ,初始化时 调用new String()在内存中开辟空间

而当 重新赋值时就会 把值存储到字符串常量空间里,最终会创建俩个对象

4) 什么是unchecked exception,什么是checked exception?它们在代码中被抛出时,需要显示捕捉或显示申明抛出来吗?(3分)

5) 简述Servlet中请求的转发与重定向的区别. (3分)

前后两个页面 有数据传递 用请求转发,没有则用重定向。

比如servlet查询了数据需要在页面显示,就用请求转发

6) 简述Overload与Orverride的区别. Overload的方法是否可以改变返回值类型?(3分)

7) 简述IO流中的字符流与字节流之间的差别。并列举出常用的字符流与字节流。字符流与字节流转换的桥梁是什么? (5分)

字节流--处理单元为1个字节,操作字节和字节数组。所有的InputStrem和OutputStream的子类都是。

字符流--处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串

通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联

在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的

区别就看出来,就是处理数据的方式。

8) 请使用代码演示单例(Singleton)模式和工厂(Factory)模式(用静态工厂实现). 并使用适当的注释指出实现的要点部分. (8分)

Public class Singleton(){

Private static Singleton singleton=new Singleton();

Private Singleton(){}

Public static Singleton getSingleton(){

Return singleton;

}

}

工厂

Public interface IProduct{

Void produce();

}

Public class product implements IProduct{

Public void produce(){

System.out.println(“produce”);

}

}

Public class Factory{

Public static IProduct getProduct(String productName){

IProduct product=null;

Try{

product =(product)Class.forName(“product”).newInstance();

}catch(Exception e){

}

Return product;

}

}

9) 描述使用JDBC连接数据库的过程,并写出关键的注释。(基于oracle数据库连接) (6分).

1. 注册监听

Class.forName(oracle.jdbc.driver.OracleDriver);

2. 获取连接

String url=“jdbc:oracle:thin:@192.168.3.16:1523:ipsd”;

Connection conn=DriverManager.getConnection(url,usrName,paw);

3获取statement

Stmt=Conn.createStatement();

ResultSet= Stmt. executeQuery(String sql)

While()

10) 请写一个java socket编程代码,需要完成以下功能: (10分)

a) 有服务端等待客户端连接

b) 客户端连接成功之后,给客户端发一条消息”好好考试,争取被录取”;

c) 客户端在获得消息之后,在控制台打印出来,并结束连接

3. 数据库(共20分)

数据库中有以下两张表,各表之间的关系大家根据字面意思理解,在这里就不详细列出:

- 部门表department,包括部门编号(deptId), 部门名称(deptname)

- 员工表employee, 包括员工编号(empid), 员工姓名(empname), 部门编号(deptid), 工资(e_wage)

请按要求写出基于oracle数据库的sql语句:

1) 列出工资大于7000的员工所属部门的编号. (2分)

2) 列出员工表中的部门名称(要求使用左连接).(2分)

3) 列出员工数少于3人的部门编号. (3分)

4) 列出工资最高的员工姓名. (3分)

5) 求各部门的平均工资(2分)

6) 求各部门的员工工资总额(3分)

7) 求每个部门中的最大工资值与最小工资,并且他的最小值小于5000, 最大值大于15000的部门信息.(3分)

8) 假如数据库中有一个和员工表结构相同的空表employee2, 请用一条SQL语句将employee表中的所有记录插入到employee2表中. (2分)

本文来源:烟台java培训   http://yt.java.tedu.cn/

上一篇:中软国际Java笔试题
下一篇:烟台java培训班Java工程师笔试题

马上预约七天免费体验课

姓名:

电话:

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊