JAVA认证历年真题:SCJP考试真题和解析(2)

来源:java认证发布时间:2012-11-12 13:05:51java认证视频

  8. Which of the following answer is correct to express the value 8 in octal number?
  A. 010

  B. 0x10

  C. 08

  D. 0x8
  翻译
  下面的哪些答案可以用以表示八进制值8。

  答案 A

  解析  八进制值以0开头,以0x开头的为十六进制值,八进制中不能出现数字8,最大只有7。

  9. Which are not Java keywords?
  A. TRUE

  B. sizeof

  C. const

  D. super

E. void
  翻译
  哪些不是Java关键字。

  答案 A,B

  解析
  A:不是,Java中有true,但是这也不是关键字而是字面量(literal)。

  B:不是,Java中不需要这个操作符,所有的类型(原始类型)的大小都是固定的。

  C、D、E都是,需要说明的是const是java中未被使用的关键字。

  10. Which of the following statements are true?
  A. The equals() method determines if reference values refer to the same object.

  B. The == operator determines if the contents and type of two separate objects match.

  C. The equals() method returns true only when the contents of two objects match.

  D. The class File overrides equals() to return true if the contents and type of two separate objects match.

  翻译
  下面的哪些叙述为真。
  A. equals()方法判定引用值是否指向同一对象。

  B. == 操作符判定两个分立的对象的内容和类型是否一致。

  C. equals()方法只有在两个对象的内容一致时返回true。

  D. 类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。

  答案 A,D
 
  解析 严格来说这个问题的答案是不确定的,因为equals()方法是可以被重载的,但是按照java语言的本意来说:如果没有重写(override)新类的equals(),则该方法和 == 操作符一样在两个变量指向同一对象时返回真,但是java推荐的是使用equals()方法来判断两个对象的内容是否一样,就像String类的equals()方法所做的那样:判定两个String对象的内容是否相同,而==操作符返回true的唯一条件是两个变量指向同一对象。从这个意义上来说选择给定的答案。从更严格的意义来说正确答案应该只有d


  11. Which statements about inheritance are true?
  A. In Java programming language only allows single inheritance.

  B. In Java programming language allows a class to implement only one
interface.

  C. In Java programming language a class cannot extend a class and implement
a interface together.

  D. In Java programming language single inheritance makes code more
reliable.
  翻译
  下面关于继承的哪些叙述是正确的。

  A.在java中只允许单一继承。

  B.在java中一个类只能实现一个接口。

  C.在java中一个类不能同时继承一个类和实现一个接口。

  D.java的单一继承使代码更可靠。

  答案 A,D
 
  解析 在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。

  12.
  1) class Person {

  2) public void printValue(int i, int j) {/*…*/ }

  3) public void printValue(int i){/*...*/ }


  4) }

  5) public class Teacher extends Person {

  6) public void printValue() {/*...*/ }

  7) public void printValue(int i) {/*...*/}

  8) public static void main(String args[]){

  9) Person t = new Teacher();

  10) t.printValue(10);

  11) }

  12) }

  Which method will the statement on line 10 call?
  A. on line 2

  B. on line 3

  C. on line 6

  D. on line 7
  翻译
  第十行的声明将调用哪些方法。

  答案 D

  解析 变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要
进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答