scjp认证套题解析之二.htm

来自「详细介绍scjp考试指南包括基础语法和文件读取」· HTM 代码 · 共 721 行 · 第 1/4 页

HTM
721
字号
<br>                        D. Declaration of nonprimitive types such as String, 
<br>                        Vector ans so on allocates memory space for the object.
<br>                        (bc)
<br>                        题目:下面的有关声明的哪些叙述是对的。
<br>                        A.    对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。
<br>                        B.    对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。
<br>                        C.    非原始数据类型例如String,Vector的变量的声明不会为该对象分配内存。
<br>                        D.    非原始数据类型例如String,Vector的变量的声明会为该对象分配内存。
<br>                        对原始数据类型的变量的声明将为之分配内存并赋予一个缺省值,参见23题的叙述,而非原始数据类型的变量必须用new 
<br>                        Xxxx()分配内存及初始化。但是严格来讲此题的答案有待确定,因为只有原始类型的实例变量和类变量的声明在类对象被创建/类被加载时完成内存的自动分配,而原始类型的局部变量必须显式初始化,从这点来看原始类型的局部变量没有被自动分配内存,SL275中只提出了非原始数据类型的变量必须使用new 
<br>                        Xxxx()完成内存的分配而没有指出原始数据类型的变量是否在声明时即自动进行内存分配,而从局部变量不能在显式初始化前使用这点来看在声明时没有进行内存分配。因此答案b的正确性还有待官方的确定。
<br>
<br>                        27、In the Java API documentation which sections are 
<br>                        included in a class document?
<br>                        A. The description of the class and its purpose
<br>                        B. A list of methods in its super class
<br>                        C. A list of member variable
<br>                        D. The class hierarchy
<br>                        (acd)
<br>                        题目:在Java API文档中下面的哪些部分被包括在内
<br>                        A.    类及用途的描述
<br>                        B.    父类的方法的列表
<br>                        C.    成员变量的列表
<br>                        D.    类层次
<br>                        类文档的内容主要是:类层次、类及用途描述、成员变量列表、构造方法列表、成员方法列表、从类层次上继承的方法列表、成员变量的详细说明、构造方法详细说明、成员方法详细说明。
<br>
<br>                        28、Given the following code:
<br>                             1) public void modify() {
<br>                             2)   int i, j, k;
<br>                             3)   i = 100;
<br>                             4)   while ( i &gt; 0 ) {
<br>                             5)      j = i * 2;
<br>                             6)      System.out.println (" The value of j is " + 
<br>                        j );
<br>                             7)      k = k + 1;
<br>                             8)      i--;
<br>                             9)   }
<br>                             10) }
<br>                        Which line might cause an error during compilation?
<br>                        A. line 4
<br>                        B. line 6
<br>                        C. line 7
<br>                        D. line 8
<br>                        (c)
<br>                        题目:给出下面的代码:
<br>                        …
<br>                        哪些行在编译时可能产生错误。
<br>                        这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必须显式初始化,而代码中的变量k在使用前没有。
<br>
<br>                        29、Which of the following statements about variables and 
<br>                        scope are true?
<br>                        A. Local variables defined inside a method are destroyed 
<br>                        when the method is exited.
<br>                        B. Local variables are also called automatic variables.
<br>                        C. Variables defined outside a method are created when 
<br>                        the object is constructed.
<br>                        D. A method parameter variable continues to exist for as 
<br>                        long as the object is needed in which the method is 
<br>                        defined.
<br>                        (abc)
<br>                        题目:下面有关变量及其作用域的陈述哪些是对的。
<br>                        A.    在方法里面定义的局部变量在方法退出的时候被撤销。
<br>                        B.    局部变量也叫自动变量。
<br>                        C.    在方法外面定义的变量(译注:即实例变量)在对象被构造时创建。
<br>                        D.    在方法中定义的方法的参变量只要该对象被需要就一直存在。
<br>                        本题还是讨论变量的类型及作用域,参看前面的叙述。
<br>
<br>                        30、A class design requires that a member variable cannot 
<br>                        be accessible directly outside the class. Which modifier 
<br>                        should be used to obtain the access control?
<br>                        A. public
<br>                        B. no modifier
<br>                        C. protected
<br>                        D. private
<br>                        (d)
<br>                        题目:类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制。
<br>                        这个在前面也有叙述,java有四种访问类型,分别为:public,protected,default,private,其中public变量可以被所有的外部类访问,而pretected的可以被同一个包及该类的子类访问,default即没有任何修饰符的变量可以被同一个包中的类访问,而private变量只能在被该类内部被访问。题目中的外部类应该理解为除该类自身的所有其它类,因此只有使用private可以达到要求。
<br>
<br>                        31Given the following code fragment:
<br>                            1) String str = null;
<br>                            2) if ((str != null) && (str.length() &gt; 10)) {
<br>                            3)   System.out.println("more than 10");
<br>                            4) } 
<br>                            5) else if ((str != null) & (str.length() &lt; 5)) {
<br>                            6)        System.out.println("less than 5");
<br>                            7)      }
<br>                            8)      else { System.out.println("end"); }
<br>                        Which line will cause error?
<br>                        A. line 1
<br>                        B. line 2
<br>                        C. line 5
<br>                        D. line 8
<br>                        (c)
<br>                        题目:给出下面的代码片断:
<br>                        …
<br>                        哪些行将导致错误。
<br>                        此题需要将代码仔细看清楚,查询没有逻辑错误,if 
<br>                        …else的使用没有问题,也没有拼写错误,错误在于第5行的“与”操作符的使用,逻辑操作符(logical 
<br>                        operator)的“与”应该是&&,而在执行“与”操作的时候,如果第一个条件为false,那么第二个条件判断运算是不做的,但是这里是位逻辑操作符(bitwise 
<br>                        logical 
<br>                        operator)的“与”,在进行这个运算时,无论第一个条件的结果是什么都会执行第二个的运算,因此,假设str=null,那么第5句的str.length()就会导致NullPointerException,因此本题的错误在于此。
<br>
<br>                        32、Which statements about Java code security are true?
<br>
<br>                        A. The bytecode verifier loads all classes needed for 
<br>                        the execution of a program.
<br>                        B. Executing code is performed by the runtime 
<br>                        interpreter.
<br>                        C. At runtime the bytecodes are loaded, checked and run 
<br>                        in an interpreter.
<br>                        D. The class loader adds security by separating the 
<br>                        namespaces for the classes of the local file system from 
<br>                        those imported from network sources.
<br>                        (bcd)
<br>                        题目:下面有关java代码安全性的叙述哪些是对的。
<br>                        A.    字节码校验器加载查询执行需要的所有类。
<br>                        B.    运行时解释器执行代码。
<br>                        C.    在运行时,字节码被加载,验证然后在解释器里面运行。
<br>                        D.    类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。
<br>                        SL275中描述的Java程序运行的过程是这样的:类加载器(class 
<br>                        loader)加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序,因为本机类总是先被加载,一旦所有的类被加载完,执行文件的内存划分就固定了,在这个时候特定的内存地址被分配给对应的符号引用,查找表(lookuo 
<br>                        table)也被建立,由于内存划分发生在运行时,解释器在受限制的代码区增加保护防止未授权的访问;然后字节码校验器(byte 
<br>                        code 
<br>                        verifier)进行校验,主要执行下面的检查:类符合JVM规范的类文件格式,没有违反访问限制,代码没有造成堆栈的上溢或者下溢,所有操作代码的参数类型都是正确的,没有非法的数据类型转换(例如将整型数转换成对象类型)发生;校验通过的字节码被解释器(interpreter)执行,解释器在必要时通过运行时系统执行对底层硬件的合适调用。后三个答案是SL275中的原话。
<br>
<br>                        33、Given the following code:
<br>                            public class Person{
<br>                               static int arr[] = new int[10];
<br>                               public static void main(String a[]) {
<br>                                  System.out.println(arr[1];)
<br>                               }
<br>                            }
<br>                        Which statement is correct?
<br>                        A. When compilation some error will occur.
<br>                        B. It is correct when compilation but will cause error 
<br>                        when running.
<br>                        C. The output is zero.
<br>                        D. The output is null.
<br>                        (c)
<br>                        题目:给出下面的代码:
<br>                        …
<br>                        那个叙述是对的。
<br>                        A.    编译时将发生错误。
<br>                        B.    编译时正确但是运行时出错。
<br>                        C.    输出为0。
<br>                        D.    输出为null
<br>                        int型数组是类对象,它在类被加载时完成初始化,在前面题目中已经有叙述,由于是原始数据类型int,其初始值为0。
<br>                        34、Given the following code:
<br>                            public class Person{
<br>                               int arr[] = new int[10];
<br>                               public static void main(String a[]) {
<br>                                  System.out.println(arr[1]);
<br>                               }
<br>                            }
<br>                        Which statement is correct?
<br>                        A. When compilation some error will occur.
<br>                        B. It is correct when compilation but will cause error 
<br>                        when running.
<br>                        C. The output is zero.
<br>                        D. The output is null.
<br>                        (a)
<br>                        给出下面的代码:
<br>                        …
<br>                        哪些叙述是对的。
<br>                        A.    编译时出错。
<br>                        B.    编译时正确而运行时出错。
<br>                        C.    输出0。
<br>                        D.    输出null。
<br>                        实例变量在类的一个实例构造时完成初始化,而且在类的静态方法中不能直接访问类的非静态成员而只能访问类成员(像上题中一样),类的普通方法可以访问类的所有成员和方法,而静态方法只能访问类的静态成员和方法,因为静态方法属于类,而普通方法及成员变量属于类的实例,类方法(静态方法)不能使用属于某个不确定的类的实例的方法和变量,在静态方法里面没有隐含的this,而普通方法有。
<br>
<br>                        35、public class Parent {
<br>                             public int addValue( int a, int b) {
<br>                                 int s;
<br>                                 s = a+b;
<br>                                 return s;
<br>                             }
<br>                           }
<br>                           class Child extends Parent {
<br>                           
<br>                           }
<br>                        Which methods can be added into class Child?

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?