Java手记——static

1、static变量

静态变量在内存中只有一个拷贝(节省内存)

在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)

所以一般在需要实现以下两个功能时使用静态变量:

  • [x] 在对象之间共享值时
  • [x] 方便访问变量时

2、static静态方法

静态方法可以直接通过类名调用,任何的实例也都可以调用。

不能用this和super关键字,只能访问所属类的静态成员变量和成员方法。。

静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的

了方便方法的调用会声明为static

3、static代码块

独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

4、static final 修饰成员变量和成员方法

可简单理解为“全局常量”

对于变量,表示一旦给值就不可修改,并且通过类名可以访问。

对于方法,表示不可覆盖,并且可以通过类名直接访问。

5、static静态类

如果一个类要被声明为static的,只有一种情况,就是静态内部类

1.静态内部类跟静态方法一样,只能访问静态的成员变量和方法

2.静态内部类可以声明普通成员变量和方法

3.静态内部类可以单独初始化:

使用场景

  1. 内部类初始化无需实例化外部类;

  2. 当某个类需要接受多个参数进行初始化时,推荐使用静态类Builder构建。

6、import static和import的区别

一般我们导入一个类都用 import com.....ClassName;

而静态导入是这样:import static com.....ClassName.;

这里的多了个static,还有就是类名ClassName后面多了个 . ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。

同理也可以导入静态变量

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

推荐阅读更多精彩内容

  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,564评论 0 6
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,867评论 0 10
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,733评论 0 11
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 497评论 0 2
  • 1、也许,当我们对自身和宇宙的认识越来越丰富和深刻的时候,也正是认识到我们自身局限性的时候。就如同井里的青蛙认识天...
    草石阅读 362评论 0 2