static和final修饰符

曾经终败给现在 2022-05-29 12:55 286阅读 0赞

final修饰符

final具有“最终、不可变”的含义,它用来修饰非抽象类、非抽象成员方法和变量。

  • 用final修饰的类不能被继承,如java.lang.String类
  • 用final修饰的方法不能被子类覆盖,如Object类中的getClass()方法
  • 用final修饰的变量表示常量,只能被赋值一次,如java.lang.Integer类中的MAX_VALUE

    public static final int MAX_VALUE = 2147483647;

static修饰符

static可以用来修饰类的成员变量、成员方法和代码块。

static变量
类的成员变量有两种:一种是被static修饰的变量,叫类变量或者静态变量;一种是没有被static修饰的变量,叫实例变量。
静态变量和实例变量存在以下区别:

  • 静态变量是属于类的,java虚拟机在加载类的时候会完成静态变量的内存分配,且只会分配一次,可以直接通过类名访问静态变量;
  • 对于实例变量,没创建一个对象,虚拟机就会为实例变量分配一次内存;实例变量之间互不影响。

static方法
成员方法分为静态方法和实例方法。
用static修饰的方法就静态方法或类方法;没有用static修饰的方法叫实例方法。

  1. 静态方法可以访问的内容
    因为静态方法不需要通过类的实例就可以调用,所以与具体实例对象相关的属性,在静态方法中都不可以使 用,如:this关键字,实例变量和实例方法等,但是可以直接访问静态变量和静态方法。
  2. 实例方法可以访问的内容
    实例方法中可以直接访问类中的静态变量、静态方法、实例变量和实例方法。
  3. 静态方法必须被实现,因为静态方法用来表示类特有的功能,这种功能不依赖于类的具体实例,更不依赖于它的子类。换句话说,static不能用来修饰抽象方法。

static代码块
java虚拟机在加载类的时候,会按顺序加载静态代码块,静态代码块只会被执行一次。

发表评论

表情:
评论列表 (有 0 条评论,286人围观)

还没有评论,来说两句吧...

相关阅读

    相关 修饰符static

    static的定义 static关键字是静态的意思,可以修饰成员方法,成员变量。 Static修饰的特点:被所有对象共享,可以通过类名调用。 static使用演示