一个Java线程在执行过程中调用了`setPriority(15)`,那么这个线程的最终优先级是多少?
答案解析
核心考点说明:本题考察Java线程优先级的合法范围以及超出范围时的处理。需要理解线程优先级的有效取值范围。
解题思路分析:Java线程的优先级范围是1到10,其中1代表最低优先级,10代表最高优先级。尝试设置超出此范围的值,会被Java自动调整到有效范围内。虽然`setPriority()`方法不会抛出异常,但输入的值会被限制在[1,10]之间。
选项分析:
* A. 错误。优先级不能设置为15,超出范围。
* B. 正确。优先级超出最大值,会被调整到最大值10。
* C. 错误。`setPriority`不会抛出异常,会进行截断处理。
* D. 错误。虽然1是优先级最小值,但15会被调整到10,而不是1。
易错点提醒:`setPriority()`方法不会抛出异常,但会进行截断处理,超出范围的优先级值会被强制调整到有效范围内。特别容易错误地认为设置值超出范围会直接导致异常或者直接设置为最小值。
正确答案:B