static

static 关键字

Java 中 static 关键字主要用于内存管理。Java 中 static 关键字可用于修饰 变量、方法、代码块、嵌套类。static 关键字修饰的对象属于类,而不是类的实例。
static 可以是:

  1. 变量(类变量或静态变量)
  2. 方法(类方法或静态方法)
  3. 代码块(静态代码块)
  4. 嵌套类(静态内部类)

类变量 - 静态变量

用 static 修饰的变量称为静态变量(类变量)。
静态变量的优点:

  • 静态变量使程序存储器更高效(节省内存)
    注:
    静态变量属于类,不属于类的实例,所有类的实例共享静态变量,所以不会在每个类的实例创建多个副本,这就是节省内存的原因。因为静态变量是类的实例共享的,这也是它的缺点,有可能造成线程不安全的。

静态方法 - 类方法

用 static 修饰的方法称为静态方法(类方法)。

  • 静态方法属于类,不属于类的实例。
  • 静态方法可以用类直接调用,无需创建类的实例,当然也可以用类的实例调用。
  • 静态方法可以访问静态变量、静态方法,但不能直接访问非静态变量和非静态方法。
    静态方法限制:
  • 静态方法不能直接使用非静态变量或调用非静态方法。
  • this 和 super 两个关键字不能在静态上下文中使用。
    为什么 Java main 方法是静态的 ?
    @TODO

静态代码块

Java 中静态代码块主要有两个作用:

  • 用于初始化静态变量
  • 在类加载是在 main 方法之前执行

注:
静态代码快在main方法和构造方法之前初始化。

静态内部类

静态内部类是指使用 static 修饰的内部类。例如:

public class OuterClass {
	static class InnerClass {
		// ...
	}
}
  • 创建静态内部类的实例时,不需要创建外部类的实例。
  • 静态内部类中可以定义静态成员和实例成员。
  • 静态内部类可以直接访问外部类的静态成员,若要访问外部类的实例成员,则需要通过外部类的实例访问。
  • 其它类可以创建静态内部类,但需要加上外部类名作为前缀,且静态内部类受外部类的权限修饰符(public, protected, private, default) 的限制。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值