Java中static的用法

在Java中,static可以修饰成员变量、成员方法、代码块和内部类

1. static修饰成员变量

static修饰成员变量,可以达到全局变量的效果(Java没有全局变量的概念),当一个类定义了static变量,其实就是申请一个内存地址,所有该类的对象共享这个静态成员变量。
静态变量和实例变量的区别: 静态变量:用static修饰,属于类,只要类被加载就会被分配内存空间;实例变量:没有static修饰,只有对象被创建了,才会分配内存空间,每一个对象的实例变量互不相关

2. static修饰成员方法

static修饰的方法是类的方法,不需要创建对象就可以调用;静态方法不能使用this,super关键字,不能调用非static的成员变量,非static的成员方法,只能访问static修饰的成员变量,成员方法。因为没有static修饰的成员变量,成员方法,这个类的对象还没被创建,即使创建了也无法确定是哪个对象的。

3. static修饰代码块

static修饰代码块,会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法

4. static修饰内部类

这样可以不依赖与外部类实例对象而被实例化,而通常的内部类需要外部类实例化后才能实例化。静态内部类不能与外部类有相同的类名,不能访问外部类的成员变量,只能访问外部类的static成员变量和static方法(包括外部类的私有)。实例内部类格式:Outer.Inner name = new Outer.Innner();


Java类加载顺序:父类静态成员变量,父类静态代码块,子类静态成员变量,子类静态代码块,父类非静态成员变量,父类非静态代码块,父类构造函数,子类非静态成员变量,子类非静态代码块,子类构造函数

即 静态成员变量 > 静态代码块 > 普通成员变量 > 普通代码块 > 构造器

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,555评论 0 6
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,844评论 0 10
  • 主料:前腿瘦肉(比后腿嫩,吃起来不柴,1斤肉出3两肉松,量自行决定) 辅料:盐、料酒、酱油、姜块 步骤:1、前腿肉...
    2018我们在一起阅读 444评论 0 0
  • 《小王子》里狐狸拥有了麦田的颜色,麦田的颜色是金色,金色让它想起小王子的头发。 如果我是狐狸,麦田的颜色让我想到什...
    很多人都叫张宁阅读 624评论 0 0