java 知识补给

http://hi.baidu.com/xfyhpygidhajkrr/item/dca0e74b08d9b797823ae1cd

JAVA访问权限(proteced与default)  

在java中对于public和private的权限访问很明显不用再详细讨论,对于proteced和private的权限访问总是有一些不太确定的边界。下边有一些文字的定义来说明一下:

1、protected只可以用于修饰method和data(private也一样) 不可修饰class(内部类除外)

     default  可以用于修饰 class、method、data (也就是不加修饰符,就默认为default)

2、protected修饰的 method、data 除了在同包中可以被取用,在其他包中的子类也可以取用。

      default 修饰的class、method、data 只可以在同一个包中被取用,包外无法看到,也包括其子类


9.  Character流与Byte流的区别是(C)
A) 每次读入的字节数不同                       B) 前者带有缓冲,后者没有
C) 前者是字符读写,后者是字节读写   D) 二者没有区别,可以互换使用

10.     以下声明合法的是(      D     )

A、default  String  s;                    B、public  final  static  native  int  w( )

C、abstract  double  d;                  D、abstract  final  double  hyperbolicCosine( )


11.     关于以下application的说明,正确的是(    C    )

1.  class   StaticStuff

2. {

3.                  static  int  x=10;

4.                  static  { x+=5;}

5.                  public  static  void  main(String  args[ ])

6.                  {

7.                       System.out.println(“x=” + x);

8.                  }

9.                  static  { x/=3;}

10.   }

A、4行与9行不能通过编译,因为缺少方法名和返回类型 

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:x=5

D、编译通过,执行结果为:x=3

解题须知:1.静态方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,
因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员方法),只能访问所属类的静态成员变量和成员方法。
因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!!
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。

3、static代码块

 static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

利用静态代码块可以对一些static变量进行赋值。

12.     关于以下程序代码的说明正确的是(   D   )

1.class  HasStatic{

2.    private  static  int  x=100;

3.    public  static  void  main(String  args[  ]){

4.        HasStatic  hs1=new  HasStatic(  );

5.        hs1.x++;

6.        HasStatic  hs2=new  HasStatic(  );

7.        hs2.x++;

8.        hs1=new  HasStatic( );

9.        hs1.x++;

10.       HasStatic.x- -;

11.       System.out.println(“x=”+x);

12.    }

13. }

A、 5行不能通过编译,因为引用了私有静态变量

B、 10行不能通过编译,因为x是私有静态变量

C、 程序通过编译,输出结果为:x=103

D、 程序通过编译,输出结果为:x=102

13.     以下选项中循环结构合法的是(    C    )

A、while (int  i<7)

{     i++;

     System.out.println(“i is “+i);

 }

B、 int  j=3;

while(j)

   {  System.out.println(“ j  is “+j);

}

C、int  j=0;

for(int  k=0; j + k !=10; j++,k++)

{    System.out.println(“ j  is “+ j + “k  is”+ k);

}

D、  int  j=0;

do{

              System.out.println( “j  is “+j++);

              if (j = = 3) {continue  loop;}

              }while  (j<10);

这是java中标签的用法。Java 的标签只能定义在三种循环 (for() {}, do{} while(), while() {}) 的开始位置,在循环前面加上标签而后,在循环中使用 break 或者 continue 语句的时候,就可以带上这个标签做为参数,指明跳出 (break) 或者继续 (continue) 哪一个循环。就是说在do的前面必须有标签loop:才行,这样后面的continue才能带上标签作为参数使用,


你可能感兴趣的:(java 知识补给)