java中的常用关键字

一. 关键字
  1. static表示”全局”和”静态”的意思.可以用来修饰以下
  1. 成员变量(属性)
  2. 成员方法(方法)
  3. 代码块(单纯被{}包含的代码块)
  4. 修饰内部类
  5. 用来做静态导入: import static Integer.*; 这样就可以直接调用Integer种的所有静态属性与方法,而不需要通过类名来调用.
    注意
    被static修饰的成员变量或者成员方法是独立于对象实例的.被所有实例共享.
    可以直接使用类名.属性名或者类名.方法名直接调用.
  1. final
  1. final表示最终的,在编译期恒定不变,在运行时不能改变的值与指向, 可以修饰如下:
  2. 成员变量, 成员变量被定以后,无法修改
  3. 成员方法, 此方法不能被重写.
  4. 修饰类, 该类不能被继承
  1. transient
  1. 表示一个域不是该对象串行化(序列化)的一部分, 也就是在使用Serialize序列化对象的时候, 会忽略使用
    transient修饰的成员变量,只能用来修饰成员变量
二. foreach的原理

在传统for循环时,我们如下实现:

int[] arrs = new int[]{1, 2, 3, 4, 5, 6};
  for(int index = 0; index < arrs.length, index ++)
  {
    System.out.println(arrs[index]);
  }

在JDK1.5之后,我们可以使用foreach, 我们可以如下实现:

for(int val : arrs)
  {
    System.out.println(val);
  }

对于foreach方式,需要java.lang.Iterable或者数组.
从foreach的要求来看,foreach的实现是基于Iterable接口实现的.
那么数组没有实现Iterable接口,为什么可以使用foreach循环方式呢?
因为在遍历数组的时候, 编译器会转换为数组种的每一个元素的循环引用,相当于for语法循环遍历一样.
总结对于foreach的实现原理如下:
1.对于实现了Iterable接口的数据结构时,通过Iterator中的next()方法和hasNext)方法来来做循环遍历.也就是Java中的”迭代器模式”的设计模式.如:

while(list.hasNext()){
  Object obj = list.next();
}

或者:

for(;list.hasNext();){
  Object obj = list.next();
}

2.对于数组,就是转化为对数组中的每一个元素的循环引用.相当于for循环一遍.