Java中的static
Static
static表示静态的意思。
static关键字可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类。
静态字段
static修饰的字段称为静态字段或静态属性。
静态字段属于类,不属于类中的任何对象。所有对象共同使用唯一一份静态的成员变量。
如果一个成员变量是static的,那么可以通过:类名.成员变量名的形式使用。(也可以用变量名.成员变量名的形式,但是使用类名更好一些)。
静态方法
static修饰的方法称为静态方法。
静态方法可以使用类名.方法名的方式来访问。
静态方法只能继承,不能重写(Override)。
多态调用时,静态方法属于一种特殊情况,父类的引用指向子类的对象,调用静态方法时,调用的仍是父类中的版本。因为子类不能覆写父类的静态方法。如果子类和父类中定义了同样的静态方法,起到的仅仅是隐藏的作用。
(http://www.cnblogs.com/mengdd/archive/2012/12/25/2832288.html)
静态方法只能访问静态的成员变量,因为非静态的成员与特定的对象相关联,而静态方法并不能明确是哪个对象。
但是非静态的方法静态非静态的成员都可以访问。
不能在静态方法中使用this关键字。
static代码块
静态代码块:
static
{
//内容
}
静态代码块的作用一般是完成一些初始化工作。
静态代码块在类被加载的时候执行。要想调用某个类来生成对象,首先需要将类加载到Java虚拟机(JVM)上,然后用JVM加载这个类来生成对象。
因为每个类只会被加载一次,所以静态代码块也只会被执行一次。而构造方法是在生成对象的时候被执行,每次生成对象都会调用构造方法。
如果继承体系中有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层的类的静态代码块;然后再去执行最顶层的类的构造方法,一直执行到最底层的类的构造方法。注意,静态代码只会执行一次。
如果有多个static代码块,JVM将按照它们在类中出现的顺序依次执行它们。
补充说明一下:如果有非静态的初始化语句,这些语句将在构造方法之前执行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了