SCJP考题16

1.             Wich three are valid declarations of a char?(choose three)

A   char c1=064770;

B   char c2=’face’;

C   char c3=0Xbeef;

D   char c4=/u0022;

E   char c5=’/iface’;

F   char c6=’/uface’;

 

A

C

F

2.what is the numerical range of a char ?(choose one)

 A -128 to 127

 B –(2^15)to(2^15)-1

 C 0 to 32767

 D platform dependent

 E 0 to 65535

 

E

 

3. which three are valid declarations of a float?(choose three)

 A float f1= -343;

 B float f2=3.14;

 C float f3=0X12345;

 D float f4=42e7;

 E float f5=2001.0D;

 F float f6= 2.81F ;

 

A

C

F

 

4. which two of the following are legal declarations for nonnested (非嵌套)class and interface (choose two)

A final abstract class test{}  final abstract 不能同时用在一个类中

B public static interface test{}  接口和类不能声明为static

C final public class test{}

D protected abstract class test{}

E protected interface test{}   protected 不能标识类和接口

F abstract public class test{}

 

C

E

5How many of the following are legal method declarations?

A  protected abstract void m1();

B  static final void m1(){}

C  transient private native void m1(){}  transient 只适用于变量声明,而不适用于类和方法声明。

D  synchronized public final void m1(){}

E  private native void m1();

F  static final synchronized protected void m1(){}

A

B

D

E

F

 

6.which two are valid declarations within an interface?(choose two)

A  public static short stop=23;

B  protected short stop=23;

C  transient short stop=23;

D  final void madness(short stop);

E  public Boolean madness(long bow);

F  static char madness(double duty);

接口不能是protected, transient,final , static

 

A

E

7Which three are valid method signatures in an interface?(choose three)

A  private int get Area();  接口方法必须是public

B  public float getVol(float x);

C  public void main(String[] args);

D  public static void main(String[] args); 不能是static

E  Boolean setFlag(Boolean [] test[]);

B

C

D

 

 

 

 

 

 

 

 

 

1以如下方式构造一个二维数组

 

数组名称 = new 元素数据类型[元素数N][];

数组名称[0] = new 元素数据类型[元素个数];

           … …

数组名称[N-1] = new 元素数据类型[元素个数];

 

例如: aArray = new String[2][];

        aArray[0] = new String[3];

        aArray[1] = new String[2];

2.一个二维数组如下:

            int[][] aArray;

            aArray = new int[1][];

            aArray[0] = new int[3]; : aArray.length 得到 1

            aArray[0].length 得到 3

3.         第一种方法

int[] max = {3,6,9};

String[][] s = {{“Hello”, “Java”}, {“北大方正”, “软件技术”, “网络”}};

第二种方法:

int[] max;

max = new int[]{3,6,9};

4.数组的合法赋值

      一.对于原始数据类型的数组,其元素在赋值时,既可以使用数组声明的那个类型的值,也可以使用那些可以自动转换成该类型的值

具体地说,如果声明了一个整型数值int类型的数组,则我们可以用,byte,char,short,int等类型的值来给这个数组赋值

      二.对于非原始数据类型的数组,其元素在赋值时,既可以使用数组声明的那个类型的值,也可以使用那些与该类型具有IS-A关系的类型的值

具体地说,如果声明了一个A类型的数组,则我们可以用A的子类类型来给这个数组赋值,如果A是一个接口(interface)类型,则所有实现了这个接口的类都是合法的

      三.对于原始数据类型的数组,对其引用赋值时,只能使用相同类型的数组,而且维数也必须相同,但数组的长度可以是任意的

不要被自动类型转换所蒙骗,自动类型转换是在原始数据类型之间进行的,而数组尽管保存的是原始数据类型的量,但它本身是一个对象,不是原始数据类型,数组的引用是对一个对象的引用,也不是原始数据类型

四.对于非原始数据类型的数组,在对其引用进行赋值,既可以使用相同类型的数组,也可以使用那些与该类型具有IS-A关系的类型的数组,只要它们的维数相同

具体地说,如果R是一个A类型数组的引用,则我们可以将A的子类类型的数组赋值给R,如果A是一个接口(interface)类型,则所有实现了这个接口的类型的数组都是合法的

5.修饰符分为访问修饰符和非访问修饰符

访问修饰符:public,   protected   ,private

非访问修饰符:strictfp   ,final,    abstract

6

一.Java的类来说,只有public和默认的访问控制是有意义的,也就是说,在类的定义前面,或者使用public的访问控制,或者什么也不写,使用默认的访问控制

 

7.最终:final

final用于修饰方法,则该方法不能在子类中被重写

final用于修饰变量,则该变量表示一个常量,只能在初始化时被赋值,不能再在其它地方被赋值

final还可以用于修饰方法的参数,指出这个参数在方法体中不能被赋值修改

 

同步方法:synchronized

synchronized用于修饰方法,表明该方法一次只能被一个线程所访问

synchronized不能与abstract一起使用,也不能用于变量和类,但它可以和public,protected,private,final等一起使用

 

本地方法:native

native用于修饰方法,表明该方法是用其它与平台相关的语言设计的,比如C

native不能与abstract一起使用,也不能用于变量和类

 

strictfp

strictfp用于修饰方法,表明该方法中的浮点操作遵守IEEE754标准

strictfp可以用来修饰类和非抽象方法

strictfp不能与abstract一起使用,也不能用于变量

 

瞬态变量:transient

在对包含用transient修饰的实例变量的对象作串行化处理时应该跳过这个变量

 

挥发变量:volatileJVM,访问该变量的线程要使其私有拷贝与内存中的主拷贝一致,在考试中,对上述两个修饰符的要求基本上就是:它们是保留关键字,只能应用于实例变量

 

8abstract不能与final一起使用

abstract不能与private一起使用

abstract不能与synchronized一起使用

abstract不能与native一起使用

abstract不能与strictfp一起使用

abstract不能与static一起使用

最后:abstract不能用于成员变量

 

9.在interface中定义的变量都是final,虽然它前面也许什么都没写,实际上所有接口变量都是

public static final

 

10.局部变量不可以使用任何访问修饰符

局部变量也不可以使用除final以外的任何其它非访问修饰符

任何在局部变量上使用不法修饰符的代码都会得到一个编译错误

 

11instanceof比较其左边的对象是不是右边的类型

 例如: a instanceof String;

 测试对象a是不是一个字符串类型的对象

 

实际上,左边的对象如果与右边的类型具有is-a的关系时,都将返回true

 

 

 

12.断言语句非常简单,有两种格式:

1.     assert(布尔表达式);

2.     assert(布尔表达式):信息字符串

 

如果布尔表达式为false,就产生一个AssertionError,第二种情况时,那个信息字符串会被放到栈里

1.     在编译时使用参数 –source1.4

2.             在运行时使用参数 –ea 开启断言

3.             在运行时使用参数 –da 关闭断言

 

 javac –source 1.4 Hello.java

 java –ea Hello

 java –da Hello

 

13 IS-A的关系来自于继承

子类IS-A父类,子类父类

       HAS-A的关系来自于对象之间的调用

一个类A HAS-A 另一个类B,是指在类A中有对B的对象的调用

14

在重写中,所谓子类中方法的访问控制不能比父类中方法的访问控制范围窄是指:

Ø     一个package方法可以被重写为packageprotectedpublic

Ø     一个protected方法可以被重写为protectedpublic

Ø     一个public方法只可以被重写为public

 

15

1.用this(…)调用重载的构造函数

2.用super(…)调用父类的构造函数

3this(…)或者super(…)调用必须是构造函数的第一条语句

4.子类的构造函数会自动调用父类无参数的构造函数

8.        抽象类可以有构造函数,但只能用来被子类的构造函数调用

9.     接口/interface没有构造函数

10.    构造函数可以有任意的访问控制符,甚至是private

11.    在一个构造函数里面,可以有this(…),也可以有super(…),但不能同时有都有

 

 

 

 

 

 

你可能感兴趣的:(SCJP考题16)