上汽集团Java开发笔试题目

进修社 人气:2.61W

一、J2EE(总分20分。每题2分)

上汽集团Java开发笔试题目

简述String和StringBuffer的区别。

String 对一串字符进行操作。不可变。一旦被创建,就不能修改它的值。

StringBuffer 也是对一串字符进行操作,但是可变类。

运行时异常(RuntimeException)与一般异常有何不同?

一般异常是可捕捉到的。运行时异常是不可预知的异常。

Sleep()和wait()有什么区别?

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。

wait().会释放锁

实现多线程有几种方法?

三种,

1.继承Thread类,重写run函数

2.实现Runnable接口,重写run函数

3.实现Callable接口,重写call函数

简述线程的基本状态及状态之间的关系。

adState 属性提供一个位掩码,用它指示线程的当前状态。一个线程至少总是处于 ThreadState 枚举中一个可能状态,并且可以同时处于多个状态。

一旦线程由于调用 t 而离开 Unstarted 状态,则它将永远无法返回到 Unstarted 状态。同样,线程也永远无法离开 Stopped 状态。

什么是线程同步,何如实现线程的同步?

当两个或多个线程需要访问同一资源时,它们需要以某种顺序来确保该资源某一时刻只能被一个线程使用的方式称为同步。要想实现同步操作,必须要获得每一个线程对象的锁。获得它可以保证在同一时刻只有一个线程访问对象中的共享关键代码,并且在这个锁被释放之前,其他线程就不能再进入这个共享代码。此时,如果还有其他线程想要获得该对象的锁,只得进入等待队列等待。只有当拥有该对象锁的线程退出共享代码时,锁被释放,等待队列中第一个线程才能获得该锁,从而进入共享代码区。

JSP或Servlet中的forward和redirect有什么区别?

forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。redirect 是送到客户端后再一次 request , 所以资料不被保留.

简述JDBC调用数据库的基本步骤。

1,加载驱动

2,创建连接

3,获取语句对象

4,执行sql语句

5,如果是查询,还可以使用结果集

6,关闭连接

7,捕捉和处理异常

简述Servlet的生命周期。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的do方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

二、算法(总共20分)

请列举几种排序算法,并用JAVA实现快速排序算法。(6分)

冒泡排序,快速排序,shaker排序,堆排序。