Java中有很多被虚拟机保留的单词  这些单词就是java中的关键字。

本篇介绍final,static,continue,break这几个常用关键字的应用。

final关键字:

关键字可以使用在变量声明时,表示该变量一旦设定之后,就不可以再改变该变量的值,例如在下面的程序码中,PI这个变量一旦设定,就不可以再有指定值给 PI的动作:

final double PI = 3.14;
如果在方法成员声明时使用"final",表示该方法成员在无法被子类覆盖,例如:

public class Demo { 
 private double radius; 
 public final double getRadius() { 
 return radius; 
 } 
 // .... 
 }


如果您在声明类时加上"final"关键字,则表示这个类不可以被其它类继承,例如:

public final class Demo { 
 // .... 
 }


如果在数据成员上加上final关键字,但未给予该数据成员初值,则初值的初始化被延迟,该数据成员必须在构造方法中进行初始化,且初始化之后不得改变其值,例如:

public class Demo{
 private final int some;
 public Demo() {
 some = 10; 
 }....
 }

static关键字:

static对需要被共享的变量进行修饰了。

static修饰的变量,随着类的加载会被存储在内存中一个叫做共享区的地方,共享区中的数据生命周期是最长的,一直到程序结束,共享区的数据才会消失。

被static修饰的函数在本类中可以直接进行调用,在其他类中调用需要使用

类名.函数名   进行调用,它不能调用非静态的成员变量,但是可以对局部

变量进行操作

还可以使用static来定义一个代码块,叫做静态代码块。静态代码块可以在

类加载的时候对类进行初始化,当类第一次被调用加载时,静态代码块就会

被执行,例如下面的代码:

public class Demo
{
static{ 
//一些初始化的代码
}
………….
}

由于static成员属于类而不不是对象,所以在调用static方法时,并不会传入对象的位置引用,所以static成员中不会有this引用,所以在java中的static方法成员中不允许使用非静态成员,因为程序没有this来指向对象地址,也就无法辨别要存取哪一个对象的成员。

break与continue关键字:

在switch语句中主要用来结束当前的比对,进行下一个case的比对,在for,while与do while中,主要用于中断目前的循环执行。

的作用与break类似,主要使用于循环,所不同的是break会离开循环而continue

只会结束当前的循环,并调回循环开头继续下一个循环,而不会离开循环。例如:

class Demo
{
   public static void main(String[] args){  
   for(int i=0;i<5;i++){ 
       if(i=4){
      break;
   }
   System.out.println(i);
   }  
   }
}

这段代码会输出0,1,2,3因为当i=4的时候,使用了break结束了循环,所以输出不了4,5。

class Demo
{
   public static void main(String[] args){  
   for(int i=0;i<5;i++){ 
       if(i=4){
      continue;
   }
   System.out.println(i);
   }  
   }
}

而这段代码会输出1,2,3,5;当i=4的时候,使用continue会跳出当前循环,并进入下一个循环。

break 和 continue还可以配合标签使用,例如:

class Demo
{
   public static void main(String[] args){  
a: {  for(int i=0;i<5;i++){ 
       if(i=4){
      break  a;
   }
   System.out.println(i);
   } 
  System.out.println("It's Demo");
} 
   }
}

a是个标签  当运行到break a时,会跳出标签的区域,System.out.println("It's Demo");

不会被执行。

continue也有类似的方法,但是标签只能设定在for之前

class Demo
{ 
   public static void main(String[] args){  
a:
   for(int i=0;i<5;i++){ 
b:
       for(int j=0;j<3;j++){
              if(i=j){
            continue a; 
                  }
                    }
   System.out.println(i);
   }  
   }
}

continue配合标签使用可以跳至任何一层for循环。