在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.静态方法
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才能带上标签作为参数使用,