static是干啥的?
静态的,
静态有啥用。
说白了就是声明一个变量,一个方法是类本身的,是这个类的所有对象所共有的。
最重要的是,静态的资源是随着类的加载就被加载。
简单小结
因为Java 中的静态方法在编译时解析,静态方法不能被重写(方法重写发生在运行时阶段,为了多态)。
所以,抽象方法不能是静态的。(抽象的东西的目的就是为了被继承)
静态方法不能使用 this 和 super 关键字。(没有必要,this是要找到调用者,super是要找到父类)
成员方法可以直接访问其他成员方法和成员变量,成员方法也可以直接方法静态方法和静态变量。(要不怎么说静态资源是共有的资源呢)
静态方法可以访问所有其他静态方法和静态变量,静态方法无法直接访问成员方法和成员变量。(很简单的逻辑,所有人都可以去公园,公园是公开的共有的,但是不是所有公园里的人都能去你家,家是每个人私有的)
除了变量和方法,还有代码块
静态代码块,
啥玩意?
这玩意就是用来初始化静态变量的,也可以理解是类加载阶段就需要去完成的一些工作就可以放在这里去做。
简单小结
一个类可以有多个静态代码块。
静态代码块的解析和执行顺序和它在类中的位置保持一致。
还有一个,静态内部类
这玩意就比较实用了,
为什么呢?
因为类在加载时并不会加载静态内部类的资源。
而是会等待初次被访问时再再去载入。
最典型不过创建型模式中单例模式的懒汉方式之一:静态内部类创建单例对象。
简单小结
静态内部类不能访问外部类的所有成员变量。
静态内部类可以访问外部类的所有静态变量,包括私有静态变量。
外部类不能声明为 static。
本文详细讲解了Java中的静态特性,包括静态变量、静态方法、静态代码块和静态内部类。重点阐述了静态资源加载时机、静态方法的限制以及静态内部类在单例模式中的应用。适合初学者和进阶开发者了解静态概念。
5472

被折叠的 条评论
为什么被折叠?



