9.switch()后只能为byte,short,int,char四种类型。
(jdk7.0版本支持字符串类型)
10.static详谈(static可以修饰属性,方法,语句块,内部类《不能修饰局部变量》)
<1>.被static修饰的成员变量和成员方法独立于该类的任何对象,也就是说,它不依赖类特定的实例,被类的所有实例共享。
<2>.static对象可以在它的任何对象创建之前访问,无需引用任何对象。
<3>.用static修饰的代码块表示静态代码块,当java虚拟机加载类时,就会执行该代码块,一个类中可以有多个静态代码块,java虚拟机加载类时会按照它们出现顺序执行,每个代码块只会被执行一次。
<4>.静态变量:
java虚拟机只会为其分配一次内存,在加载类的过程中,完成静态变量的内存分配。
实例变量:
每创建一个实例就会为实例变量分配一次内存。
在对象共享值时或方便访问变量时一般使用静态变量。
<5>.静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和成员方法。
<6>.类属性存放于方法区内,属性在堆中。
<7>static应用:(单例模式:使一个类只能实例化一次)
public class C{
private static C c = new C();
public static C getC(){
return c;
}
//private类型构造器
private C(){
}
}
public class TestC(){
C c = C.getC();
}
11.final详谈
<1>.final可以修饰变量,方法,类,修饰的变量不能被重新赋值(在声明时赋值),修饰的方法不能被覆盖,修饰的类不能被继承。
<2>.final修饰的属性若是在构造器中赋值,如果一个类中有多个构造器,则final修饰的变量在每个构造器中都要赋值,赋的值可以不同。