static详解

本文详细讲解了Java中的静态特性,包括静态变量、静态方法、静态代码块和静态内部类。重点阐述了静态资源加载时机、静态方法的限制以及静态内部类在单例模式中的应用。适合初学者和进阶开发者了解静态概念。

static是干啥的?

静态的,
静态有啥用。

说白了就是声明一个变量,一个方法是类本身的,是这个类的所有对象所共有的。

最重要的是,静态的资源是随着类的加载就被加载。

简单小结

因为Java 中的静态方法在编译时解析,静态方法不能被重写(方法重写发生在运行时阶段,为了多态)。

所以,抽象方法不能是静态的。(抽象的东西的目的就是为了被继承)

静态方法不能使用 this 和 super 关键字。(没有必要,this是要找到调用者,super是要找到父类)

成员方法可以直接访问其他成员方法和成员变量,成员方法也可以直接方法静态方法和静态变量。(要不怎么说静态资源是共有的资源呢)

静态方法可以访问所有其他静态方法和静态变量,静态方法无法直接访问成员方法和成员变量。(很简单的逻辑,所有人都可以去公园,公园是公开的共有的,但是不是所有公园里的人都能去你家,家是每个人私有的)

除了变量和方法,还有代码块

静态代码块,
啥玩意?

这玩意就是用来初始化静态变量的,也可以理解是类加载阶段就需要去完成的一些工作就可以放在这里去做。

简单小结

一个类可以有多个静态代码块。

静态代码块的解析和执行顺序和它在类中的位置保持一致。

还有一个,静态内部类

这玩意就比较实用了,
为什么呢?

因为类在加载时并不会加载静态内部类的资源。
而是会等待初次被访问时再再去载入。
最典型不过创建型模式中单例模式的懒汉方式之一:静态内部类创建单例对象。

简单小结

静态内部类不能访问外部类的所有成员变量。

静态内部类可以访问外部类的所有静态变量,包括私有静态变量。

外部类不能声明为 static。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值