📄 scjp认证套题解析之一.htm
字号:
<HTML>
<HEAD>
<TITLE>《SCJP认证套题解析之一》-JAVA中文站(www.java-cn.com)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK href="resources/style.css" rel=stylesheet>
<STYLE type=text/css>
TD {FONT-SIZE: 9pt; FONT-FAMILY: 宋体}
TH {FONT-SIZE: 9pt; FONT-FAMILY: 宋体}
INPUT {FONT-SIZE: 9pt; FONT-FAMILY: 宋体}
.menuStyle {FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Arial,Geneva,Verdana,Helvetica}
</STYLE>
<SCRIPT language=javascript src="resources/to.js"></SCRIPT>
<SCRIPT language=javascript src="resources/window.js"></SCRIPT>
<SCRIPT language=JScript>
function turnit(ii,ss)
{
if (ss.style.display=="none")
{ss.style.display="";
ii.src="images/icon_minus.gif";
}
else
{ss.style.display="none";
ii.src="images/icon_plus.gif";}
}
</SCRIPT>
<META content="Microsoft FrontPage 6.0" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV align=center>
<CENTER>
<br>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 cellPadding=0 width=760 border=0 height="149">
<TBODY>
<TR bgColor=#FFFFFF>
<TD style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid" align=middle height=34 width="760" colspan="2">
<DIV align=center>
<iframe src="detail_broadcast.htm" scrolling="no" width=728 height=90 marginwidth=0 marginheight=0 frameborder="no"></iframe>
</DIV>
</TD>
</TR>
<tr>
<TD style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid" vAlign=top width="760" height=11 colspan="2">
<p align="left">
<font color="#7A7978">文章类型>> </font>
<font color="#999999">
认证考试
|</font>
<font color="#7A7978">阅读次数>> </font>
<font color="#999999">731 |</font>
<font color="#7A7978">得分>> </font>
<font color="#999999">0 |</font>
<font color="#7A7978">整理日期>> </font>
<font color="#999999">2005-01-26 |</font>
<font color="#7A7978">整理发布>> </font>
<font color="#999999">rayjrb</font> |</font>
<a href="#remark"><font style="COLOR: #ff0000; TEXT-DECORATION: none">评论评分</font></a><img src="images/new9.gif">
</TD>
</tr>
<TR bgColor=#f3fcf3>
<TD style="border:1px solid #C0C0C0; " align=center width=760 height=38 bgcolor="#FFFFFF" colspan="2">
<table border="0" width="100%" id="table1" height="41">
<tr>
<td><b><center>SCJP认证套题解析之一</center></b><hr noshade color="#999999" size="1"><p align="left">
--------------------------------------------------------------------------------
<br>1. Which of the following range of short is correct?
<br>A. -27 -- 27-1
<br>B. 0 -- 216-1
<br>C. ?215 -- 215-1
<br>D. ?231 -- 231-1
<br>翻译 下面哪些是short型的取值范围。
<br>答案
<br>C 解析
<br>短整型的数据类型的长度是16 bits,有符号。另外需要说明的是java中所有的整(Integral)数(包括byte,short,int,long)全是有符号的。
<br>
<br>
<br>
<br>
<br>2. Which declarations of identifiers are legal?
<br>A. $persons
<br>B. TwoUsers
<br>C. *point
<br>D. this
<br>E. _endline
<br>翻译 下面哪些是合法的标识符。
<br>答案
<br>A,B,E 解析
<br>Java的标识符可以以一个Unicode字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字。
<br>
<br>
<br>
<br>
<br>3. Which statement of assigning a long type variable to a hexadecimal value is correct?
<br>A. long number = 345L;
<br>
<br>B. long number = 0345;
<br>
<br>C. long number = 0345L;
<br>
<br>D. long number = 0x345L
<br>翻译 哪些是将一个十六进制值赋值给一个long型变量。
<br>答案
<br>D 解析
<br>
<br>十六进制数以0x开头,long型数以L(大小写均可,一般使用大写,因为小写的l和数字1不易区分)。
<br>4.Which of the following fragments might cause errors?
<br>A. String s = "Gone with the wind";
<br> String t = " good ";
<br> String k = s + t;
<br>
<br>B. String s = "Gone with the wind";
<br> String t;
<br> t = s[3] + "one";
<br>
<br>C. String s = "Gone with the wind";
<br> String standard = s.toUpperCase();
<br>
<br>D. String s = "home directory";
<br> String t = s - "directory";
<br>
<br>翻译 下面的哪些程序片断可能导致错误。
<br>答案B,D 解析
<br>A:String类型可以直接使用+进行连接运算。
<br>
<br>B:String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误。
<br>
<br>C:toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String类型)。
<br>
<br>D:String类型不能进行减(-)运算,错误。
<br>
<br>
<br>
<br>
<br>5. Which are syntactically valid statement at// point x?
<br>class Person {
<br> private int a;
<br> public int change(int m){ return m; }
<br>}
<br>public class Teacher extends Person {
<br> public int b;
<br> public static void main(String arg[]){
<br> Person p = new Person();
<br> Teacher t = new Teacher();
<br> int i;
<br> // point x
<br> }
<br>}
<br>
<br>A. i = m;
<br>
<br>B. i = b;
<br>
<br>C. i = p.a;
<br>
<br>D. i = p.change(30);
<br>
<br>E. i = t.b.
<br>翻译 在// point x处的哪些申明是句法上合法的。
<br>答案D,E 解析
<br>A:m没有被申明过,不能使用。
<br>
<br>B:虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的非静态成员。
<br>
<br>C:a是类Person的private成员,在类外不能直接引用。
<br>
<br>D:change(int m)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。
<br>
<br>E:b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。
<br>
<br>
<br>
<br>
<br>6. Which layout manager is used when the frame is resized the buttons´s position in the Frame might be changed?
<br>A. BorderLayout
<br>
<br>B. FlowLayout
<br>
<br>C. CardLayout
<br>
<br>D. GridLayout
<br>翻译 当Frame的大小被改变时Frame中的按钮的位置可能被改变时使用的哪一个布局管理器。
<br>答案
<br>B 解析
<br>A:该布局管理器将容器划分为五个部分,容器大小的改变不会影响其中的组件的位置而是影响他们的大小。
<br>
<br>B:该布局管理器根据放入其中的组件的最合适大小调整组件的位置,根据组件放入的顺序安排,一行不能容纳时放入下一行,因此容器的大小改变可能改变组件的位置。
<br>
<br>C:该布局管理器显示放入该容器的当前页中的组件,一次显示一个,容器大小的改变不能影响其中组件的位置。
<br>D:该布局管理器将容器划分为固定的网格,组件加入后占据一个单元,各组件的相对位置不会因为容器的大小变化而变化,改变的只是组件的大小。
<br>
<br>
<br>
<br>7. Given the following code fragment:
<br>
<br> 1) public void create() {
<br>
<br> 2) Vector myVect;
<br>
<br> 3) myVect = new Vector();
<br>
<br> 4) }
<br>
<br>Which of the following statements are true?
<br>A. The declaration on line 2 does not allocate memory space for the variable myVect.
<br>
<br>B. The declaration on line 2 allocates memory space for a reference to a Vector object.
<br>
<br>C. The statement on line 2 creates an object of class Vector.
<br>
<br>D. The statement on line 3 creates an object of class Vector.
<br>
<br>E. The statement on line 3 allocates memory space for an object of class Vector
<br>翻译
<br>给出下面的代码片断。。。下面的哪些陈述为true(真)?
<br>A. 第二行的声明不会为变量myVect分配内存空间。
<br>B. 第二行的声明分配一个到Vector对象的引用的内存空间。
<br>C. 第二行语句创建一个Vector类对象。
<br>D. 第三行语句创建一个Vector类对象。
<br>E. 第三行语句为一个Vector类对象分配内存空间。
<br>答案A,D,E 解析
<br>SL-275中指出:要为一个新对象分配空间必须执行new Xxx()调用,new调用执行以下 的操作:
<br>
<br>1. 为新对象分配空间并将其成员初始化为0或者null。
<br>
<br>2. 执行类体中的初始化。(例如在类中有一个成员声明int a=10;在第一步后a=0 ,执行到第二步后a=10)
<br>
<br>3. 执行构造函数。
<br>
<br>4. 变量被分配为一个到内存堆中的新对象的引用。
<br>
<br>
<br>
<br>
<br>8. Which of the following answer is correct to express the value 8 in octal number?
<br>A. 010
<br>
<br>B. 0x10
<br>
<br>C. 08
<br>
<br>D. 0x8
<br>翻译
<br>下面的哪些答案可以用以表示八进制值8。
<br>答案
<br>A 解析
<br>八进制值以0开头,以0x开头的为十六进制值,八进制中不能出现数字8,最大只有7。
<br>
<br>
<br>
<br>
<br>9. Which are not Java keywords?
<br>A. TRUE
<br>
<br>B. sizeof
<br>
<br>C. const
<br>
<br>D. super
<br>
<br>E. void
<br>翻译
<br>哪些不是Java关键字。
<br>答案A,B 解析
<br>A: 不是,Java中有true,但是这也不是关键字而是字面量(literal)。
<br>
<br>B: 不是,Java中不需要这个操作符,所有的类型(原始类型)的大小都是固定的。
<br>
<br>C、D、E都是,需要说明的是const是java中未被使用的关键字。
<br>
<br>
<br>
<br>
<br>10. Which of the following statements are true?
<br>A. The equals() method determines if reference values refer to the same object.
<br>
<br>B. The == operator determines if the contents and type of two separate objects match.
<br>
<br>C. The equals() method returns true only when the contents of two objects match.
<br>
<br>D. The class File overrides equals() to return true if the contents and type of two separate objects match.
<br>翻译
<br>下面的哪些叙述为真。A. equals()方法判定引用值是否指向同一对象。
<br>
<br>B. == 操作符判定两个分立的对象的内容和类型是否一致。
<br>
<br>C. equals()方法只有在两个对象的内容一致时返回true。
<br>
<br>D. 类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。
<br>答案A,D 解析
<br>严格来说这个问题的答案是不确定的,因为equals()方法是可以被重载的,但是按照java语言的本意来说:如果没有重写(override)新类的equals(),则该方法和 == 操作符一样在两个变量指向同一对象时返回真,但是java推荐的是使用equals()方法来判断两个对象的内容是否一样,就像String类的equals()方法所做的那样:判定两个String对象的内容是否相同,而==操作符返回true的唯一条件是两个变量指向同一对象。从这个意义上来说选择给定的答案。从更严格的意义来说正确答案应该只有d。
<br>
<br>
<br>
<br>
<br>11. Which statements about inheritance are true?
<br>A. In Java programming language only allows single inheritance.
<br>
<br>B. In Java programming language allows a class to implement only one
<br>interface.
<br>
<br>C. In Java programming language a class cannot extend a class and implement
<br>a interface together.
<br>
<br>D. In Java programming language single inheritance makes code more
<br>reliable.
<br>翻译
<br>下面关于继承的哪些叙述是正确的。
<br>
<br>A. 在java中只允许单一继承。
<br>
<br>B. 在java中一个类只能实现一个接口。
<br>
<br>C. 在java中一个类不能同时继承一个类和实现一个接口。
<br>
<br>D. java的单一继承使代码更可靠。
<br>答案A,D 解析
<br>在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。
<br>
<br>
<br>
<br>
<br>12.
<br> 1) class Person {
<br>
<br> 2) public void printValue(int i, int j) {/*…*/ }
<br>
<br> 3) public void printValue(int i){/*...*/ }
<br>
<br> 4) }
<br>
<br> 5) public class Teacher extends Person {
<br>
<br> 6) public void printValue() {/*...*/ }
<br>
<br> 7) public void printValue(int i) {/*...*/}
<br>
<br> 8) public static void main(String args[]){
<br>
<br> 9) Person t = new Teacher();
<br>
<br>10) t.printValue(10);
<br>
<br>11) }
<br>
<br>12) }
<br>
<br>Which method will the statement on line 10 call?
<br>A. on line 2
<br>
<br>B. on line 3
<br>
<br>C. on line 6
<br>
<br>D. on line 7
<br>翻译
<br>第十行的声明将调用哪些方法。
<br>答案
<br>D 解析
<br>变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。
<br>
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -