Java SE 6.0认证:TestKiller SCJP 310-065模拟试题

需积分: 9 29 下载量 47 浏览量 更新于2024-07-31 收藏 7.06MB PDF 举报
"TestKiller SCJP 310-065是TestKiller公司提供的一个针对Sun Certified Programmer for the Java 2 Platform, Standard Edition 6.0 (SCJP)考试的最新题库,该题库包含了多个选择题,旨在帮助考生准备310-065认证考试。" 知识点详细说明: 1. **多线程编程**: - 在Java中,通过实现`Runnable`接口或者继承`Thread`类可以创建线程。在题目中,`Threads2`类实现了`Runnable`接口,并在`run()`方法中抛出`RuntimeException`。 - `Thread`类的`start()`方法用于启动线程,它会调用`run()`方法执行任务。在代码的第9行,创建了一个新的`Thread`实例并启动了它。 - 当主线程执行完`t.start();`后,会继续执行下一行代码,即打印`Endofmethod.`。因此,`Endofmethod.`可能会在`run.`之前或之后打印,这取决于线程的调度。 - 如果`run()`方法抛出了未捕获的异常(如`RuntimeException`),线程将被终止。在本例中,`run()`方法在打印`run.`后抛出了异常,所以`run.`和`RuntimeException`会一起出现,但`Endofmethod.`只会在`run()`方法抛出异常前打印。这解释了为什么答案D和E是正确的。 2. **死锁(Deadlock)**: - 死锁是指两个或多个线程互相等待对方释放资源,导致它们都无法继续执行的状态。题目中的问题2探讨了死锁的概念。 - A选项正确:确实可能有超过两个线程同时发生死锁,比如三个或更多线程各自持有其他线程需要的资源。 - B选项错误:JVM并不保证能防止多个线程进入死锁状态。虽然有一些最佳实践和同步机制来避免死锁,但Java平台本身并不提供绝对的死锁防护。 - C选项的描述不完整:当线程因`sleep()`方法而休眠时,它们不会立即释放任何锁,只有在`sleep()`结束或被中断后才会考虑释放资源,因此C选项不是死锁的正确描述。 总结:TestKiller SCJP 310-065题库涵盖了Java多线程和并发编程中的关键概念,如线程的启动、异常处理以及死锁。在实际的SCJP认证考试中,理解这些知识点对于通过考试至关重要。