这 2 Java 道试题是否有误?
Are these 2 Java exam questions incorrect?
我最近参加了与 Java 相关的考试,其中有 2 个问题在我看来是错误的。我希望你们中的一些人能帮助我。
问题是:
1)
public class Cell {
public Cell(){
}
public char content; //The character in this cell.
public Cell next; // Pointer to the cell to the right of this one.
public Cell prev; // Pointer to the cell to the left of this one.
}
// The following method is supposed to move one node to the right in a
// doubly linked list of Cells but it contains a flaw.
// The global variable 'currentCell' is a pointer to a Cell in the list.
public void moveRight(){
if (currentCell.next == null){
Cell newCell = new Cell();
newCell.content = '';
newCell.next = null;
newCell.prev = currentCell;
currentCell.next = newCell;
currentCell = currentCell.next;
}
}
True or False: If 'currentCell' is at the head of the list this moveRight()
method will perform its duties correctly.
对我来说,这个问题是错误的,因为 moveRight 方法不会做任何事情,因为当指针位于列表的头部时 currentCell.next 不是空的。它的职责(向右移动)不会成功。
我想知道社区的想法,因为根据考试,这应该是正确的?
2.
True or False: An interface contains method declarations as well as implementations.
我相信这应该是真的。正如 Oracle (2021) 所述,“接口声明可以包含方法签名、默认方法、静态方法和常量定义。唯一具有实现的方法是默认方法和静态方法。”
然而,考试表明正确答案为 False。
我希望有人能为我进一步澄清这一点。
谢谢!
该方法的问题不在于 != null
检查:当 currentCell
是列表的最后一个元素时,这将是正确的,在这种情况下,没有任何东西可以移动 (它不能向右移动)。
2.
从技术上讲,对于 Java 的较新版本(在 Java 8 中实现了 2014 年默认方法之后),这个问题在技术上应该是正确的,但是(个人)我认为这个问题更多的是关于接口的本质,通常用于从实现中抽象出来,仅提供方法声明。
可以断定题型不清晰,不应该成为考试的标准。
问题1含糊不清,不清楚究竟是什么意思。
对于问题 2,可以肯定地说,自 2014 年以来,正确答案应该是 True。
谢谢你的帮助。
我最近参加了与 Java 相关的考试,其中有 2 个问题在我看来是错误的。我希望你们中的一些人能帮助我。
问题是:
1)
public class Cell {
public Cell(){
}
public char content; //The character in this cell.
public Cell next; // Pointer to the cell to the right of this one.
public Cell prev; // Pointer to the cell to the left of this one.
}
// The following method is supposed to move one node to the right in a
// doubly linked list of Cells but it contains a flaw.
// The global variable 'currentCell' is a pointer to a Cell in the list.
public void moveRight(){
if (currentCell.next == null){
Cell newCell = new Cell();
newCell.content = '';
newCell.next = null;
newCell.prev = currentCell;
currentCell.next = newCell;
currentCell = currentCell.next;
}
}
True or False: If 'currentCell' is at the head of the list this moveRight() method will perform its duties correctly.
对我来说,这个问题是错误的,因为 moveRight 方法不会做任何事情,因为当指针位于列表的头部时 currentCell.next 不是空的。它的职责(向右移动)不会成功。 我想知道社区的想法,因为根据考试,这应该是正确的?
2.
True or False: An interface contains method declarations as well as implementations.
我相信这应该是真的。正如 Oracle (2021) 所述,“接口声明可以包含方法签名、默认方法、静态方法和常量定义。唯一具有实现的方法是默认方法和静态方法。”
然而,考试表明正确答案为 False。
我希望有人能为我进一步澄清这一点。
谢谢!
该方法的问题不在于 != null
检查:当 currentCell
是列表的最后一个元素时,这将是正确的,在这种情况下,没有任何东西可以移动 (它不能向右移动)。
2.
从技术上讲,对于 Java 的较新版本(在 Java 8 中实现了 2014 年默认方法之后),这个问题在技术上应该是正确的,但是(个人)我认为这个问题更多的是关于接口的本质,通常用于从实现中抽象出来,仅提供方法声明。
可以断定题型不清晰,不应该成为考试的标准。 问题1含糊不清,不清楚究竟是什么意思。 对于问题 2,可以肯定地说,自 2014 年以来,正确答案应该是 True。
谢谢你的帮助。