java关键字总结
https://www.cnblogs.com/AloneZ/p/java1.html
Static:
1.为什么需要static关键字:
如果只想要为某一特定域分配单一存储空间,而不管需要创建多少对象。
希望没有创建这个类的对象时,也能调用这个方法或变量。
关注类加载顺序
2.static修饰变量:类变量
static修饰方法:类方法
static修饰类:static关键字在不能修饰普通类,只能修饰内部类。static修饰的内部类和普通类的区别:
1 public class StaticClassTest { 2 public static void main(String[] args) { 3 //静态内部类可以直接new 4 StaticInner si=new StaticInner(); 5 //非静态内部类需创建一个父类的实例,方能new 6 StaticClassTest sct=new StaticClassTest(); 7 Inner i=sct.new Inner(); 8 } 9 class Inner{ 10 11 } 12 static class StaticInner{ 13 14 } 15 16 }
instanceOf:
进行类型检查:检查规则,如果该类是该类,或其父类则为true。
final:
1.为什么需要final关键字:
一个永不改变的编译时常量。todo:编译时常量
一个运行时被初始化的值,不希望被改变。
2.如果使用编译时不能确定的数值来初始化final修饰的的变量,则为运行时常量。
一般即用static又用final修饰的域用大写字母表示。
final修饰类,数组表明的是引用不可变,而不是类不可变。
3.空白final:声明为fianl但又没给定初值的域,但是编译器要确保final在使用前必须要初始化。
优点:对一个类的不同对象定制final
方法:在构造器中进行赋值。
4.final修饰方法参数:方法参数所指向的引用或值不可改变。主要用来向匿名内部类传递数据。todo:匿名内部类。
5.final修饰方法:想要明确禁止方法被覆盖(被继承时被重写),就声明成final吧!
private和fianl关键字,访问权限为private的方法默认情况下就是final的。
6.final类:明确禁止类被继承。比如说String.
代码分析:学习static域的初始化顺序。
1 //: reusing/Beetle.java 2 // The full process of initialization. 3 import static net.mindview.util.Print.*; 4 5 class Insect { 6 private int i = 9; 7 protected int j; 8 Insect() { 9 print("i = " + i + ", j = " + j); 10 j = 39; 11 } 12 private static int x1 = 13 printInit("static Insect.x1 initialized"); 14 static int printInit(String s) { 15 print(s); 16 return 47; 17 } 18 } 19 20 public class Beetle extends Insect { 21 private int k = printInit("Beetle.k initialized"); 22 public Beetle() { 23 print("k = " + k); 24 print("j = " + j); 25 } 26 private static int x2 = 27 printInit("static Beetle.x2 initialized"); 28 public static void main(String[] args) { 29 print("Beetle constructor"); 30 Beetle b = new Beetle(); 31 } 32 } /* Output: 33 static Insect.x1 initialized 34 static Beetle.x2 initialized 35 Beetle constructor 36 i = 9, j = 0 37 Beetle.k initialized 38 k = 47 39 j = 39 40 *///:~
default:http://blog.csdn.net/MOVIE14/article/details/76559479
Abstract:http://blog.csdn.net/Mithrandir_One/article/details/53404431