OCJP 1Z0-851真题解析:Java多线程实战

需积分: 10 20 下载量 2 浏览量 更新于2024-07-21 4 收藏 6.22MB PDF 举报
"这是关于OCJP(Oracle Certified Professional, Java SE 6 Programmer)考试的2016年真题集,包含1Z0-851考试的部分内容,旨在帮助考生包过此认证考试。" 在Java编程语言中,OCJP(Oracle Certified Professional, Java SE 6 Programmer)是Oracle公司为验证开发者对Java Standard Edition 6编程能力的一种认证考试。1Z0-851是该认证的具体考试代码,涵盖了Java语言的核心概念、语法、多线程、异常处理等多个方面。 问题1考察了Java中的多线程和异常处理。在给定的代码段中,`Threads2`类实现了`Runnable`接口,并在`run()`方法中抛出了一个`RuntimeException`。当一个新的线程`t`被创建并启动时,它将执行`run()`方法。由于`run()`中抛出异常,线程的执行会立即停止,并将异常打印到控制台。因此,可能的结果是异常信息"java.lang.RuntimeException: Problem"以及"End of method."的打印。选项D和E符合这种情况,所以正确答案是DE。 问题2则涉及线程死锁的概念。线程死锁是指两个或多个并发线程相互等待对方释放资源,导致它们都无法继续执行的状态。关于死锁的陈述: A. 多于两个线程可以同时死锁 - 这是正确的,任何数量的线程都可能陷入死锁状态。 B. JVM保证多线程不会进入死锁 - 这是错误的,JVM并不保证能避免死锁,程序员需要自己处理和预防死锁。 C. 死锁的线程会在sleep()方法的睡眠时间结束后释放 - 这也是错误的,线程在死锁状态下不会自动释放资源,除非外部干预或等待条件改变。 所以,根据问题2的选项,正确的陈述是A(多于两个线程可以同时死锁)。 这些题目展示了OCJP考试中对于Java基础知识和高级特性的理解要求,包括异常处理、多线程及并发等。考生在准备此类考试时,应深入理解和熟练掌握这些知识点,以便在实际开发中能够有效地编写和调试Java程序。