1.
J2EE
(总分
20
分。每题
2
分)
1.
简述
String
和
StringBuffer
的区别。
String
对一串字符进行操作。不可变。一旦被创建,就不能修改它的值。
StringBuffer
也是对一串字符进行操作,但是可变类。
2.
运行时异常(
RuntimeException
)与一般异常有何不同?
一般异常是可捕捉到的。运行时异常是不可预知的异常。
3.
Sleep
()和
wait
()有什么区别?
sleep
是线程类(
Thread
)的方法,导致此线程暂停执行指定时间,把执行机
会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用
sleep
不会
释放对象锁。
wait().
会释放锁
4.
实现多线程有几种方法?
三种,
1.
继承
Thread
类,重写
run
函数
2.
实现
Runnable
接口,重写
run
函数
3.
实现
Callable
接口,重写
call
函数
5.
简述线程的基本状态及状态之间的关系。
Thread.ThreadState
属性提供一个位掩码,用它指示线程的当前状态。一个线
程至少总是处于
ThreadState
枚举中一个可能状态,并且可以同时处于多个状
态。
一旦线程由于调用
Thread.Start
而离开
Unstarted
状态,则它将永远无法返回
到
Unstarted
状态。同样,线程也永远无法离开
Stopped
状态。
6.
什么是线程同步,何如实现线程的同步?
当两个或多个线程需要访问同一资源时,它们需要以某种顺序来确保该资源某
一时刻只能被一个线程使用的方式称为同步。要想实现同步操作,必须要获得
每一个线程对象的锁。获得它可以保证在同一时刻只有一个线程访问对象中的
共享关键代码,并且在这个锁被释放之前,其他线程就不能再进入这个共享代
评论