final
fianl关键字可以修饰类、方法和变量。
a. 修饰类
final修饰的类,该类没有子类,该类不能被继承。
b. 修饰方法
final可以修饰方法。final修饰的方法不能被重写。
c. 修饰变量
final修饰的变量,是一个常量,且只能被赋值 一次,可以是成员变量和局部变量。
static
a. static用于修饰成员,可以是成员变量和成员方法。
b. 被static修饰后的成员,可以直接被类调用。 类名.静态成员
c. 随着类的加载而加载,随着类的消失而消失。类一加载,就有静态成员,比对象先存在。静态成员生命周期长。
d. 被所有对象所共有。
e. 静态变量(也就是类变量)存在于方法区中,非静态变量(实例对象)存在于堆内存中。
f. 静态方法只能调用静态成员。(因为静态成员优先于对象存在,在静态方法生成时,非静态的成员还没有存在,故不能调用非静态的)
g. 静态方法中不能使用this super关键字。因为this super代表对象,对象还没有存在。
h. 静态优点:对对象的共享数据进行单独空间的存储,节省空间。缺点,生命周期过长,访问有局限性。
本文出自 “司马囧” 博客,请务必保留此出处http://9274590.blog.51cto.com/9264590/1695658
原文地址:http://9274590.blog.51cto.com/9264590/1695658